You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by rp...@apache.org on 2010/04/30 22:19:20 UTC
svn commit: r939801 -
/openjpa/branches/1.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java
Author: rpalache
Date: Fri Apr 30 20:19:20 2010
New Revision: 939801
URL: http://svn.apache.org/viewvc?rev=939801&view=rev
Log:
OpenJPA-1535 Applying patch to 1.1.x branch
Modified:
openjpa/branches/1.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java
Modified: openjpa/branches/1.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java
URL: http://svn.apache.org/viewvc/openjpa/branches/1.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java?rev=939801&r1=939800&r2=939801&view=diff
==============================================================================
--- openjpa/branches/1.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java (original)
+++ openjpa/branches/1.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java Fri Apr 30 20:19:20 2010
@@ -140,7 +140,7 @@ public class MetaDataRepository
new InheritanceOrderedMetaDataList();
private final InheritanceOrderedMetaDataList _mapping =
new InheritanceOrderedMetaDataList();
- private final List _errs = new LinkedList();
+ private final List<RuntimeException> _errs = new LinkedList<RuntimeException>();
// system listeners
private LifecycleEventManager.ListenerList _listeners =
@@ -555,14 +555,19 @@ public class MetaDataRepository
err &= resolveMapping((ClassMetaData) resolved.get(i));
// throw errors encountered
+ // OPENJPA-1535 Always throw a MetaDataException because callers
+ // of loadRegisteredClassMetaData expect only MetaDataException
+ // to be thrown.
if (err && !_errs.isEmpty()) {
RuntimeException re;
- if (_errs.size() == 1)
- re = (RuntimeException) _errs.get(0);
- else
- re = new MetaDataException(_loc.get("resolve-errs")).
- setNestedThrowables((Throwable[]) _errs.toArray
- (new Exception[_errs.size()]));
+ if ((_errs.size() == 1)
+ && (_errs.get(0) instanceof MetaDataException)) {
+ re = _errs.get(0);
+ } else {
+ re = new MetaDataException(_loc.get("resolve-errs"))
+ .setNestedThrowables((Throwable[]) _errs
+ .toArray(new Exception[_errs.size()]));
+ }
_errs.clear();
throw re;
}