You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by sk...@apache.org on 2006/08/10 10:14:19 UTC

svn commit: r430303 - in /incubator/openjpa/trunk/openjpa-kernel/src/main: java/org/apache/openjpa/enhance/PCEnhancer.java java/org/apache/openjpa/kernel/DetachManager.java resources/org/apache/openjpa/enhance/localizer.properties

Author: skim
Date: Thu Aug 10 01:14:18 2006
New Revision: 430303

URL: http://svn.apache.org/viewvc?rev=430303&view=rev
Log:
Clean up detach on serialize and ensure declared constructors are properly
public for externalize

Modified:
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java
    incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManager.java
    incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/enhance/localizer.properties

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java?rev=430303&r1=430302&r2=430303&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java Thu Aug 10 01:14:18 2006
@@ -2892,6 +2892,15 @@
     private void addDetachExternalize(boolean parentDetachable,
         boolean detachedState)
         throws NoSuchMethodException {
+        // ensure that the declared default constructor is public 
+        // for externalization
+        BCMethod meth = _pc.getDeclaredMethod("<init>", (String[]) null);
+        if (!meth.isPublic()) {
+            if (_log.isWarnEnabled())
+                _log.warn(_loc.get("enhance-defcons-extern", 
+                  _meta.getDescribedType()));
+            meth.makePublic();
+        }
         // declare externalizable interface
         if (!Externalizable.class.isAssignableFrom(_meta.getDescribedType()))
             _pc.declareInterface(Externalizable.class);

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManager.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManager.java?rev=430303&r1=430302&r2=430303&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManager.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManager.java Thu Aug 10 01:14:18 2006
@@ -89,9 +89,9 @@
         if (setState) {
             sm.getPersistenceCapable().pcSetDetachedState(getDetachedState
                 (sm, idxs));
-            return true;
+            return false; // don't null state
         }
-        return false;
+        return true;
     }
 
     /**

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/enhance/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/enhance/localizer.properties?rev=430303&r1=430302&r2=430303&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/enhance/localizer.properties (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/enhance/localizer.properties Thu Aug 10 01:14:18 2006
@@ -44,6 +44,8 @@
 	class that implements java.io.Serializable. If compatibility with \
 	non-enhanced versions of "{0}" is not needed, this warning can be ignored.
 enhance-oid: Enhancing object id type "{0}" to allow member access. 
+enhance-defcons-extern: Type "{0}" requires a public constructor to support \
+    detach on serialize.  Making default constructor public.
 cons-access: An error occurred trying to instantiate a custom storage class.
 pcdata-generate: Generating dynamic PCData for type: "{0}"
 pcdata-created: Dynamic PCData created: name="{0}", for type="{1}"