Author: pcl
Date: Thu Nov 16 11:33:06 2006
New Revision: 475891

URL: http://svn.apache.org/viewvc?view=rev&rev=475891
Log:
improved error messages; made NonPersistentMetaData serializable

Modified:
    
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NonPersistentMetaData.java
    
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
    
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java

Modified: 
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NonPersistentMetaData.java
URL: 
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NonPersistentMetaData.java?view=diff&rev=475891&r1=475890&r2=475891
==============================================================================
--- 
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NonPersistentMetaData.java
 (original)
+++ 
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NonPersistentMetaData.java
 Thu Nov 16 11:33:06 2006
@@ -16,6 +16,7 @@
 package org.apache.openjpa.meta;
 
 import java.io.File;
+import java.io.Serializable;
 
 import org.apache.openjpa.lib.meta.SourceTracker;
 import org.apache.openjpa.lib.xml.Commentable;
@@ -26,7 +27,8 @@
  * @author Pinaki Poddar
  */
 public class NonPersistentMetaData 
-       implements Comparable, SourceTracker, Commentable, MetaDataContext {
+       implements Comparable, SourceTracker, Commentable, MetaDataContext,
+        Serializable {
     public static final int TYPE_PERSISTENCE_AWARE = 1;
     public static final int TYPE_NON_MAPPED_INTERFACE = 2;
 

Modified: 
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
URL: 
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java?view=diff&rev=475891&r1=475890&r2=475891
==============================================================================
--- 
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
 (original)
+++ 
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
 Thu Nov 16 11:33:06 2006
@@ -334,7 +334,7 @@
                                first.indexOf('.') == -1) {
                                // if there's just one misspelling and this is 
not a
                                // path traversal, check for near misses.
-                               Collection options = 
Options.findOptionsFor(obj.getClass());
+                               Collection options = 
findOptionsFor(obj.getClass());
                                String close = 
StringDistance.getClosestLevenshteinDistance
                                        (first, options, 0.75f);
                                if (close != null)
@@ -347,12 +347,25 @@
                 msg = _loc.get("invalid-config-params", new String[]{
                     configurationName, obj.getClass().getName(),
                     invalidEntries.keySet().toString(),
-                    Options.findOptionsFor(obj.getClass()).toString(), });
+                    findOptionsFor(obj.getClass()).toString(), });
             }
             throw new ParseException(msg);
         }
         if (configurable != null)
             configurable.endConfiguration();
+    }
+
+    private static Collection findOptionsFor(Class cls) {
+        Collection c = Options.findOptionsFor(cls);
+        
+        // remove Configurable.setConfiguration() and 
+        // GenericConfigurable.setInto() from the set, if applicable.
+        if (Configurable.class.isAssignableFrom(cls))
+            c.remove("Configuration");
+        if (GenericConfigurable.class.isAssignableFrom(cls))
+            c.remove("Into");
+        
+        return c;
     }
 
     /**

Modified: 
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
URL: 
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java?view=diff&rev=475891&r1=475890&r2=475891
==============================================================================
--- 
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
 (original)
+++ 
incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/XMLMetaDataParser.java
 Thu Nov 16 11:33:06 2006
@@ -667,7 +667,9 @@
         if (cause != null && _log != null && _log.isTraceEnabled())
             _log.trace(_loc.get("sax-exception",
                 getSourceName(), _location.getLocation()), cause);
-        return new SAXException(getSourceName() + currentLocation() +
+        SAXException e = new SAXException(getSourceName() + currentLocation() +
             ": " + msg + " [" + cause + "]");
+        e.initCause(cause);
+        return e;
     }
 }


Reply via email to