diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java index f8461f274..fa546e3ff 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java @@ -815,9 +815,9 @@ public class AnnotationPersistenceMetaDataParser int e = events[i]; if (callbacks[e] == null) callbacks[e] = new ArrayList(3); + MetaDataParsers.validateMethodsForSameCallback(cls, + callbacks[e], m, tag, def, repos.getLog()); if (listener) { - MetaDataParsers.validateMethodsForSameCallback(cls, - callbacks[e], m, tag, def, repos.getLog()); callbacks[e].add(new BeanLifecycleCallbacks(cls, m, false)); } else { diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java index 0a114ef36..907f929a3 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java @@ -61,7 +61,7 @@ import org.apache.openjpa.util.MetaDataException; public class PersistenceMetaDataDefaults extends AbstractMetaDataDefaults { - private boolean _allowsMultipleMethodsForSameCallback = true; + private boolean _allowsMultipleMethodsForSameCallback = false; private static Localizer _loc = Localizer.forPackage (PersistenceMetaDataDefaults.class); diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java index d75f1e9df..209e15e22 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java @@ -86,7 +86,8 @@ public class XMLPersistenceMetaDataParser protected static final String ELEM_CASCADE_REF = "cascade-refresh"; protected static final String ELEM_PU_META = "persistence-unit-metadata"; protected static final String ELEM_PU_DEF = "persistence-unit-defaults"; - protected static final String ELEM_XML_MAP_META_COMPLETE = "xml-mapping-metadata-complete"; + protected static final String ELEM_XML_MAP_META_COMPLETE = + "xml-mapping-metadata-complete"; private static final Map _elems = new HashMap(); @@ -1582,6 +1583,11 @@ public class XMLPersistenceMetaDataParser MetaDataParsers.validateMethodsForSameCallback(_listener, _callbacks[event], ((BeanLifecycleCallbacks) adapter). getCallbackMethod(), callback, def, getLog()); + } else { + MetaDataParsers.validateMethodsForSameCallback(_cls, + _callbacks[event], ((MethodLifecycleCallbacks) adapter). + getCallbackMethod(), callback, def, getLog()); + } if (_callbacks[event] == null) _callbacks[event] = new ArrayList(3);