Author: andrey
Date: Wed Apr 15 15:35:25 2009
New Revision: 765245

URL: http://svn.apache.org/viewvc?rev=765245&view=rev
Log:
CAY-979 ROP client serialization mechanism dependencies
Fixing default java deserialization for EntityResolver

Modified:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java?rev=765245&r1=765244&r2=765245&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java
 Wed Apr 15 15:35:25 2009
@@ -19,6 +19,8 @@
 
 package org.apache.cayenne.map;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -85,6 +87,13 @@
      * Creates new EntityResolver.
      */
     public EntityResolver() {
+        init();
+    }
+    
+    /**
+     * Initialization of EntityResolver. Used in constructor and in Java 
deserialization process
+     */
+    private void init() {
         this.indexedByClass = true;
         this.maps = new ArrayList<DataMap>(3);
         this.embeddableCache = new HashMap<String, Embeddable>();
@@ -647,6 +656,7 @@
      * @return the required DbEntity, or null if none matches the specifier
      * @deprecated since 3.0 - lookup DbEntity via ObjEntity instead.
      */
+    @Deprecated
     public synchronized DbEntity lookupDbEntity(Class<?> aClass) {
         ObjEntity oe = lookupObjEntity(aClass);
         return oe != null ? oe.getDbEntity() : null;
@@ -659,6 +669,7 @@
      * @return the required DbEntity, or null if none matches the specifier
      * @deprecated since 3.0 - lookup DbEntity via ObjEntity instead.
      */
+    @Deprecated
     public synchronized DbEntity lookupDbEntity(Persistent dataObject) {
         return lookupDbEntity(dataObject.getClass());
     }
@@ -731,6 +742,7 @@
      * @return the required ObjEntity or null if there is none that matches 
the specifier
      * @deprecated since 3.0 - use getObjEntity() instead.
      */
+    @Deprecated
     public synchronized ObjEntity lookupObjEntity(String entityName) {
         return _lookupObjEntity(entityName);
     }
@@ -897,4 +909,13 @@
     public void setEntityListenerFactory(EntityListenerFactory 
entityListenerFactory) {
         this.entityListenerFactory = entityListenerFactory;
     }
+
+    /**
+     * Java default deserialization seems not to invoke constructor by default 
- 
+     * invoking it manually
+     */
+    private void readObject(ObjectInputStream in) throws IOException, 
ClassNotFoundException {
+        init();
+        in.defaultReadObject();
+    }
 }


Reply via email to