You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by ma...@apache.org on 2007/08/29 06:43:46 UTC

svn commit: r570635 - in /db/jdo/trunk: api2-legacy/src/java/javax/jdo/Bundle.properties api2-legacy/src/java/javax/jdo/JDOHelper.java api2/src/java/javax/jdo/Bundle.properties api2/src/java/javax/jdo/JDOHelper.java

Author: madams
Date: Tue Aug 28 21:43:45 2007
New Revision: 570635

URL: http://svn.apache.org/viewvc?rev=570635&view=rev
Log:
JDO-523, Misleading error msg raised by JDOHelper.getPersistenceManagerFactory(arg) if the resource in arg does not exist

Modified:
    db/jdo/trunk/api2-legacy/src/java/javax/jdo/Bundle.properties
    db/jdo/trunk/api2-legacy/src/java/javax/jdo/JDOHelper.java
    db/jdo/trunk/api2/src/java/javax/jdo/Bundle.properties
    db/jdo/trunk/api2/src/java/javax/jdo/JDOHelper.java

Modified: db/jdo/trunk/api2-legacy/src/java/javax/jdo/Bundle.properties
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api2-legacy/src/java/javax/jdo/Bundle.properties?rev=570635&r1=570634&r2=570635&view=diff
==============================================================================
--- db/jdo/trunk/api2-legacy/src/java/javax/jdo/Bundle.properties (original)
+++ db/jdo/trunk/api2-legacy/src/java/javax/jdo/Bundle.properties Tue Aug 28 21:43:45 2007
@@ -112,5 +112,8 @@
 "listener" missing value in {0}
 EXC_InvalidJDOConfigNoRoot:  No root <jdoconfig> element found in {0}
 EXC_NoPMFConfigurableViaPropertiesOrXML: No PersistenceManagerFactory \
-configurable via properties resource "{0}" or no named PMF or persistence unit\
+configurable via properties resource "{0}" or no named PMF or persistence unit \
 named "{0}" found using resource loader {1}
+EXC_JavaxPersistencePersistenceAbsentOrNoPUFound=\
+Class javax.persistence.Persistence or one of its dependencies was not found, \
+or the given persistence unit name "{0}" was not found.

Modified: db/jdo/trunk/api2-legacy/src/java/javax/jdo/JDOHelper.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api2-legacy/src/java/javax/jdo/JDOHelper.java?rev=570635&r1=570634&r2=570635&view=diff
==============================================================================
--- db/jdo/trunk/api2-legacy/src/java/javax/jdo/JDOHelper.java (original)
+++ db/jdo/trunk/api2-legacy/src/java/javax/jdo/JDOHelper.java Tue Aug 28 21:43:45 2007
@@ -768,13 +768,22 @@
         }
         
         // else no PMF class name given; check PU name
-        String puName = (String) props.get(
-                PROPERTY_PERSISTENCE_UNIT_NAME);
+        String puName = (String) props.get(PROPERTY_PERSISTENCE_UNIT_NAME);
 
         if (puName != null && !"".equals(puName.trim())) {
-            return getPMFFromEMF(puName, props, pmfClassLoader);
-        }
+            PersistenceManagerFactory pmf =
+                    getPMFFromEMF(puName, props, pmfClassLoader);
 
+            if (pmf != null) {
+                return pmf;
+            }
+            // else pmf was null, which means that
+            // either javax.persistence.Persistence wasn't on classpath
+            // or there was no PU found with the given name
+            throw new JDOFatalUserException(msg.msg(
+                    "EXC_JavaxPersistencePersistenceAbsentOrNoPUFound"),
+                    puName);
+        }
         // else no PMF class name or PU name
         throw new JDOFatalUserException(msg.msg(
                 "EXC_GetPMFNoPMFClassNamePropertyOrPUNameProperty"));
@@ -948,9 +957,15 @@
         }
 
         if (properties != null) {
+            // see if there's already a name property in properties
             String nameInProperties = (String) properties.get(PROPERTY_NAME);
-            nameInProperties = nameInProperties == null ? "" : nameInProperties;
-            if (nameInProperties == null) {
+            if (nameInProperties != null) {
+                // name given in properties; go ahead & use it
+                nameInProperties = nameInProperties.trim();
+            }
+            else {
+                // no name property given; put one for the anonymous PMF
+                name = name == null ? "" : name.trim();
                 properties.put(PROPERTY_NAME, name);
             }
             return getPersistenceManagerFactory(
@@ -958,7 +973,7 @@
         }
 
         // else no properties found; next, assume name is a PU name
-        if (name != null && !"".equals(name.trim())) {
+        if (name != null && !"".equals(name = name.trim())) {
             PersistenceManagerFactory pmf =
                     getPMFFromEMF(name, null, pmfLoader);
             if (pmf != null) {
@@ -1215,8 +1230,12 @@
                 createEntityManagerFactoryMethod.invoke(
                     persistenceClass, new Object[] { name, properties });
         }
-        catch (RuntimeException x) {
-            if (persistenceExceptionClass.isAssignableFrom(x.getClass())) {
+        catch (InvocationTargetException x) {
+            Throwable cause = x.getCause();
+            if (cause != null &&
+                    persistenceExceptionClass.isAssignableFrom(
+                            cause.getClass()))
+            {
                 // named persistence unit not found
                 return null;
             }

Modified: db/jdo/trunk/api2/src/java/javax/jdo/Bundle.properties
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api2/src/java/javax/jdo/Bundle.properties?rev=570635&r1=570634&r2=570635&view=diff
==============================================================================
--- db/jdo/trunk/api2/src/java/javax/jdo/Bundle.properties (original)
+++ db/jdo/trunk/api2/src/java/javax/jdo/Bundle.properties Tue Aug 28 21:43:45 2007
@@ -112,5 +112,8 @@
 "listener" missing value in {0}
 EXC_InvalidJDOConfigNoRoot:  No root <jdoconfig> element found in {0}
 EXC_NoPMFConfigurableViaPropertiesOrXML: No PersistenceManagerFactory \
-configurable via properties resource "{0}" or no named PMF or persistence unit\
+configurable via properties resource "{0}" or no named PMF or persistence unit \
 named "{0}" found using resource loader {1}
+EXC_JavaxPersistencePersistenceAbsentOrNoPUFound=\
+Class javax.persistence.Persistence or one of its dependencies was not found, \
+or the given persistence unit name "{0}" was not found.

Modified: db/jdo/trunk/api2/src/java/javax/jdo/JDOHelper.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api2/src/java/javax/jdo/JDOHelper.java?rev=570635&r1=570634&r2=570635&view=diff
==============================================================================
--- db/jdo/trunk/api2/src/java/javax/jdo/JDOHelper.java (original)
+++ db/jdo/trunk/api2/src/java/javax/jdo/JDOHelper.java Tue Aug 28 21:43:45 2007
@@ -768,13 +768,22 @@
         }
         
         // else no PMF class name given; check PU name
-        String puName = (String) props.get(
-                PROPERTY_PERSISTENCE_UNIT_NAME);
+        String puName = (String) props.get(PROPERTY_PERSISTENCE_UNIT_NAME);
 
         if (puName != null && !"".equals(puName.trim())) {
-            return getPMFFromEMF(puName, props, pmfClassLoader);
-        }
+            PersistenceManagerFactory pmf =
+                    getPMFFromEMF(puName, props, pmfClassLoader);
 
+            if (pmf != null) {
+                return pmf;
+            }
+            // else pmf was null, which means that
+            // either javax.persistence.Persistence wasn't on classpath
+            // or there was no PU found with the given name
+            throw new JDOFatalUserException(msg.msg(
+                    "EXC_JavaxPersistencePersistenceAbsentOrNoPUFound"),
+                    puName);
+        }
         // else no PMF class name or PU name
         throw new JDOFatalUserException(msg.msg(
                 "EXC_GetPMFNoPMFClassNamePropertyOrPUNameProperty"));
@@ -948,9 +957,15 @@
         }
 
         if (properties != null) {
+            // see if there's already a name property in properties
             String nameInProperties = (String) properties.get(PROPERTY_NAME);
-            nameInProperties = nameInProperties == null ? "" : nameInProperties;
-            if (nameInProperties == null) {
+            if (nameInProperties != null) {
+                // name given in properties; go ahead & use it
+                nameInProperties = nameInProperties.trim();
+            }
+            else {
+                // no name property given; put one for the anonymous PMF
+                name = name == null ? "" : name.trim();
                 properties.put(PROPERTY_NAME, name);
             }
             return getPersistenceManagerFactory(
@@ -958,7 +973,7 @@
         }
 
         // else no properties found; next, assume name is a PU name
-        if (name != null && !"".equals(name.trim())) {
+        if (name != null && !"".equals(name = name.trim())) {
             PersistenceManagerFactory pmf =
                     getPMFFromEMF(name, null, pmfLoader);
             if (pmf != null) {
@@ -1215,8 +1230,12 @@
                 createEntityManagerFactoryMethod.invoke(
                     persistenceClass, new Object[] { name, properties });
         }
-        catch (RuntimeException x) {
-            if (persistenceExceptionClass.isAssignableFrom(x.getClass())) {
+        catch (InvocationTargetException x) {
+            Throwable cause = x.getCause();
+            if (cause != null &&
+                    persistenceExceptionClass.isAssignableFrom(
+                            cause.getClass()))
+            {
                 // named persistence unit not found
                 return null;
             }