joafip-svn Mailing List for java data object persistence in file (Page 21)
Brought to you by:
luc_peuvrier
You can subscribe to this list here.
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
(102) |
Nov
(52) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2012 |
Jan
(4) |
Feb
|
Mar
(14) |
Apr
(116) |
May
(100) |
Jun
(14) |
Jul
|
Aug
|
Sep
(30) |
Oct
|
Nov
(108) |
Dec
(2) |
|
From: <luc...@us...> - 2011-10-18 02:55:34
|
Revision: 2929
http://joafip.svn.sourceforge.net/joafip/?rev=2929&view=rev
Author: luc_peuvrier
Date: 2011-10-18 02:55:27 +0000 (Tue, 18 Oct 2011)
Log Message:
-----------
some instances of same class can be kept in memory and other not
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel300/TestKeptInMemory.java
Added Paths:
-----------
trunk/joafip/src/test/java/net/sf/joafip/entity/rel300/
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java 2011-10-17 08:46:43 UTC (rev 2928)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java 2011-10-18 02:55:27 UTC (rev 2929)
@@ -79,15 +79,8 @@
return originalObject;
}
- public Object substituteObject(final Object originalObject)
- throws ObjectIOException {
- final KeptInMemoryObjectKey substitute = keyByObjectMap
- .get(originalObject);
- if (substitute == null) {
- throw new ObjectIOException("no substitute for original object "
- + identityString(originalObject));
- }
- return substitute;
+ public Object substituteObject(final Object originalObject) {
+ return keyByObjectMap.get(originalObject);
}
private String identityString(final Object object) {
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 08:46:43 UTC (rev 2928)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-18 02:55:27 UTC (rev 2929)
@@ -512,19 +512,20 @@
public DataRecordIdentifier getDataRecordIdentifierAssociatedToObject(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException, ObjectIODataCorruptedException {
- final ObjectAndPersistInfo substituteObjectAndPersistInfo;
+ ObjectAndPersistInfo substituteObjectAndPersistInfo;
final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
- if (classInfo.isKeptInMemory()) {
- substituteObjectAndPersistInfo = keptInMemorysubstituteObject(objectAndPersistInfo);
- } else if (classInfo.isSubstituted()) {
- substituteObjectAndPersistInfo = substituteObject(objectAndPersistInfo);
- } else if (classInfo.isWriteSubstituted()) {
+ if (classInfo.isWriteSubstituted()) {
substituteObjectAndPersistInfo = substituteForWrite(objectAndPersistInfo);
} else {
- substituteObjectAndPersistInfo = objectAndPersistInfo;
+ substituteObjectAndPersistInfo = keptInMemorysubstituteObject(objectAndPersistInfo);
+ if (substituteObjectAndPersistInfo == null) {
+ substituteObjectAndPersistInfo = substituteObject(objectAndPersistInfo);
+ if (substituteObjectAndPersistInfo == null) {
+ substituteObjectAndPersistInfo = objectAndPersistInfo;
+ }
+ }
}
- return localGetDataRecordIdentifierAssociatedToObject(
- /**/substituteObjectAndPersistInfo);
+ return localGetDataRecordIdentifierAssociatedToObject(substituteObjectAndPersistInfo);
}
public ObjectAndPersistInfo substituteForWrite(
@@ -1097,7 +1098,6 @@
ObjectIODataRecordNotFoundException,
ObjectIOClassNotFoundException, ObjectIODataCorruptedException,
ObjectIOTooBigForSerializationException {
- final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
/*
* tested by store saver, can prepare write of not storable but will not
* be write
@@ -1107,26 +1107,17 @@
// + objectAndPersistInfo.toString());
// }
// final Object object = objectAndPersistInfo.getObject();
- // ASSERTX
- final ClassInfo toWriteClassInfo;
- final ObjectAndPersistInfo toWriteObjectAndPersistInfo;
- if (classInfo.isKeptInMemory()) {
- toWriteObjectAndPersistInfo = keptInMemorysubstituteObject(objectAndPersistInfo);
- toWriteClassInfo = toWriteObjectAndPersistInfo.objectClassInfo;
- } else if (classInfo.isSubstituted()) {
- // write substitute object
- final ObjectAndPersistInfo substituteObjectAndPersistInfo =
+ ObjectAndPersistInfo toWriteObjectAndPersistInfo;
+ toWriteObjectAndPersistInfo = keptInMemorysubstituteObject(objectAndPersistInfo);
+ if (toWriteObjectAndPersistInfo == null) {
+ toWriteObjectAndPersistInfo =
/**/substituteObject(objectAndPersistInfo);
- toWriteClassInfo = substituteObjectAndPersistInfo.objectClassInfo;
- toWriteObjectAndPersistInfo = substituteObjectAndPersistInfo;
-
- } else {
- // write original object
- toWriteClassInfo = classInfo;
- toWriteObjectAndPersistInfo = objectAndPersistInfo;
+ if (toWriteObjectAndPersistInfo == null) {
+ toWriteObjectAndPersistInfo = objectAndPersistInfo;
+ }
}
-
+ final ClassInfo toWriteClassInfo = toWriteObjectAndPersistInfo.objectClassInfo;
assert assertWritable(toWriteObjectAndPersistInfo);
final Object object = toWriteObjectAndPersistInfo.getObject();
final IObjectOutput objectOutput;
@@ -1150,21 +1141,27 @@
protected ObjectAndPersistInfo substituteObject(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException, ObjectIODataCorruptedException {
- ObjectAndPersistInfo substituteObjectAndPersistInfo = objectAndPersistInfo
- .getSubstituteObjectAndPersistInfo();
- if (substituteObjectAndPersistInfo == null) {
- final Object object = objectAndPersistInfo.getObject();
- final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
- final ISubstituteObjectManager substituteObjectManager = classInfo
- .getSubstituteObjectManager();
- final Object substituteObject = substituteObjectManager
- .substituteObject(object);
- final ClassInfo substituteClassInfo = classInfo
- .getSubstituteClassInfo();
- substituteObjectAndPersistInfo = getOrCreateObjectPersistInfoOfObject(
- substituteObject, Boolean.FALSE, substituteClassInfo, true/* persisted */);
- objectAndPersistInfo
- .setSubstituteObjectAndPersistInfo(substituteObjectAndPersistInfo);
+ ObjectAndPersistInfo substituteObjectAndPersistInfo;
+ if (objectAndPersistInfo.objectClassInfo.isSubstituted()) {
+ substituteObjectAndPersistInfo = objectAndPersistInfo
+ .getSubstituteObjectAndPersistInfo();
+ if (substituteObjectAndPersistInfo == null) {
+ final Object object = objectAndPersistInfo.getObject();
+ final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
+ final ISubstituteObjectManager substituteObjectManager = classInfo
+ .getSubstituteObjectManager();
+ final Object substituteObject = substituteObjectManager
+ .substituteObject(object);
+ final ClassInfo substituteClassInfo = classInfo
+ .getSubstituteClassInfo();
+ substituteObjectAndPersistInfo = getOrCreateObjectPersistInfoOfObject(
+ substituteObject, Boolean.FALSE, substituteClassInfo,
+ true/* persisted */);
+ objectAndPersistInfo
+ .setSubstituteObjectAndPersistInfo(substituteObjectAndPersistInfo);
+ }
+ } else {
+ substituteObjectAndPersistInfo = null;// NOPMD
}
return substituteObjectAndPersistInfo;
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java 2011-10-17 08:46:43 UTC (rev 2928)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java 2011-10-18 02:55:27 UTC (rev 2929)
@@ -83,14 +83,24 @@
protected ObjectAndPersistInfo keptInMemorysubstituteObject(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException, ObjectIODataCorruptedException {
+ final ObjectAndPersistInfo substituteObjectAndPersistInfo;
+ if (objectAndPersistInfo.objectClassInfo.isKeptInMemory()) {
- final Object originalObject = objectAndPersistInfo.getObject();
- final Object substituteObject = keptInMemorySubstituteObjectManager
- .substituteObject(originalObject);
- final ObjectAndPersistInfo substituteObjectAndPersistInfo = getOrCreateObjectPersistInfoOfObject(
- substituteObject, Boolean.FALSE, substituteClassInfo, true/* persisted */);
- objectAndPersistInfo
- .setSubstituteObjectAndPersistInfo(substituteObjectAndPersistInfo);
+ final Object originalObject = objectAndPersistInfo.getObject();
+ final Object substituteObject = keptInMemorySubstituteObjectManager
+ .substituteObject(originalObject);
+ if (substituteObject == null) {
+ substituteObjectAndPersistInfo = null;
+ } else {
+ substituteObjectAndPersistInfo = getOrCreateObjectPersistInfoOfObject(
+ substituteObject, Boolean.FALSE, substituteClassInfo,
+ true/* persisted */);
+ objectAndPersistInfo
+ .setSubstituteObjectAndPersistInfo(substituteObjectAndPersistInfo);
+ }
+ } else {
+ substituteObjectAndPersistInfo = null;
+ }
return substituteObjectAndPersistInfo;
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java 2011-10-17 08:46:43 UTC (rev 2928)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java 2011-10-18 02:55:27 UTC (rev 2929)
@@ -393,13 +393,13 @@
ObjectIOTooBigForSerializationException {
final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
- final ObjectAndPersistInfo toWrite;
- if (classInfo.isKeptInMemory()) {
- toWrite = keptInMemorysubstituteObject(objectAndPersistInfo);
- } else if (classInfo.isSubstituted()) {
+ ObjectAndPersistInfo toWrite;
+ toWrite = keptInMemorysubstituteObject(objectAndPersistInfo);
+ if (toWrite == null) {
toWrite = substituteObject(objectAndPersistInfo);
- } else {
- toWrite = objectAndPersistInfo;
+ if (toWrite == null) {
+ toWrite = objectAndPersistInfo;
+ }
}
if (!objectAndPersistInfo.isLoadedOrNotAProxy()) {
throw new ObjectIOException("can not store not loaded object");
Modified: trunk/joafip/src/test/java/net/sf/joafip/service/rel300/TestKeptInMemory.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/rel300/TestKeptInMemory.java 2011-10-17 08:46:43 UTC (rev 2928)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/rel300/TestKeptInMemory.java 2011-10-18 02:55:27 UTC (rev 2929)
@@ -22,12 +22,15 @@
*/
package net.sf.joafip.service.rel300;
+import java.util.Map;
+
import net.sf.joafip.AbstractDeleteFileTestCase;
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestConstant;
import net.sf.joafip.TestException;
import net.sf.joafip.entity.EnumFilePersistenceCloseAction;
+import net.sf.joafip.java.util.PTreeMap;
import net.sf.joafip.service.FilePersistenceBuilder;
import net.sf.joafip.service.FilePersistenceClassNotFoundException;
import net.sf.joafip.service.FilePersistenceDataCorruptedException;
@@ -50,6 +53,8 @@
@StorableAccess
public class TestKeptInMemory extends AbstractDeleteFileTestCase {
+ private static final String MUST_BE_SAME_INSTANCE = "must be same instance";
+
private static final String KEY1 = "key1";
private static final String KEY2 = "key2";
@@ -65,7 +70,7 @@
}
@Override
- protected void setUp() throws Exception {
+ protected void setUp() throws Exception { // NOPMD
super.setUp();
// filePersistence = new FilePersistence(1, null, path,
// /**/true/* remove files */,
@@ -80,7 +85,7 @@
}
@Override
- protected void tearDown() throws Exception {
+ protected void tearDown() throws Exception { // NOPMD
try {
filePersistence.close();
} catch (final Throwable throwable) {// NOPMD
@@ -116,12 +121,12 @@
dataAccessSession.open();
bobContainer1 = (BobContainer) dataAccessSession.getObject(KEY1);
- assertSame("must be same instance", keptInMemoryObject,
+ assertSame(MUST_BE_SAME_INSTANCE, keptInMemoryObject,
bobContainer1.getObject1());
final Bob1 bob1Read = (Bob1) bobContainer1.getObject2();
assertNotSame("must no be same object", bob1, bob1Read);
bobContainer2 = (BobContainer) dataAccessSession.getObject(KEY2);
- assertSame("must be same instance", keptInMemoryObject,
+ assertSame(MUST_BE_SAME_INSTANCE, keptInMemoryObject,
bobContainer2.getObject1());
}
@@ -148,7 +153,40 @@
dataAccessSession.open();
bobSerializable = (BobSerializable) dataAccessSession.getObject(KEY1);
- assertSame("must be same instance", keptInMemoryObject,
+ assertSame(MUST_BE_SAME_INSTANCE, keptInMemoryObject,
bobSerializable.getObject());
}
+
+ @SuppressWarnings("unchecked")
+ public void testClassPersistedAndOneInstanceKeptInMemory()
+ throws FilePersistenceException,
+ FilePersistenceClassNotFoundException,
+ FilePersistenceInvalidClassException,
+ FilePersistenceDataCorruptedException,
+ FilePersistenceNotSerializableException,
+ FilePersistenceTooBigForSerializationException {
+ final Map<String, String> keptInMemoryMap = new PTreeMap<String, String>();
+ keptInMemoryMap.put("key1", "value1");
+ filePersistence.keptInMemory("map", keptInMemoryMap);
+ BobContainer bobContainer = new BobContainer();
+ bobContainer.setObject1(keptInMemoryMap);
+ Map<String, String> storedmap = new PTreeMap<String, String>();
+ storedmap.put("key2", "value2");
+ bobContainer.setObject2(storedmap);
+ final IDataAccessSession dataAccessSession = filePersistence
+ .createDataAccessSession();
+
+ dataAccessSession.open();
+ dataAccessSession.setObject(KEY1, bobContainer);
+ dataAccessSession.close(EnumFilePersistenceCloseAction.SAVE);
+ storedmap.clear();
+
+ dataAccessSession.open();
+ bobContainer = (BobContainer) dataAccessSession.getObject(KEY1);
+ assertSame(MUST_BE_SAME_INSTANCE, keptInMemoryMap,
+ bobContainer.getObject1());
+ storedmap = (Map<String, String>) bobContainer.getObject2();
+ assertEquals("bad content", "value2", storedmap.get("key2"));
+ dataAccessSession.close(EnumFilePersistenceCloseAction.SAVE);
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-18 02:55:33
|
Revision: 2929
http://joafip.svn.sourceforge.net/joafip/?rev=2929&view=rev
Author: luc_peuvrier
Date: 2011-10-18 02:55:27 +0000 (Tue, 18 Oct 2011)
Log Message:
-----------
some instances of same class can be kept in memory and other not
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel300/TestKeptInMemory.java
Added Paths:
-----------
trunk/joafip/src/test/java/net/sf/joafip/entity/rel300/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-17 08:46:53
|
Revision: 2928
http://joafip.svn.sourceforge.net/joafip/?rev=2928&view=rev
Author: luc_peuvrier
Date: 2011-10-17 08:46:43 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
kept in memory management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java 2011-10-17 04:43:22 UTC (rev 2927)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java 2011-10-17 08:46:43 UTC (rev 2928)
@@ -272,6 +272,8 @@
private final Set<String> notCheckedMethodSet = new TreeSet<String>();
+ private boolean keptInMemory;
+
/**
*
* @param objectClass
@@ -951,10 +953,22 @@
return substituted;
}
+ public void setKeptInMemory(final boolean keptInMemory) {
+ this.keptInMemory = keptInMemory;
+ }
+
+ public boolean isKeptInMemory() {
+ return keptInMemory;
+ }
+
public ClassInfo getSubstituteOfClassInfo() {
return substituteOfClassInfo;
}
+ public void setIsSubstitution() {
+ this.substitution = true;
+ }
+
public boolean isSubstitution() {
return substitution;
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-10-17 04:43:22 UTC (rev 2927)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-10-17 08:46:43 UTC (rev 2928)
@@ -38,7 +38,6 @@
import net.sf.joafip.store.entity.classinfo.ClassInfo;
import net.sf.joafip.store.entity.classinfo.FieldInfo;
import net.sf.joafip.store.entity.heaprecordable.IHeapRecordable;
-import net.sf.joafip.store.entity.kept.KeptInMemoryObjectKey;
import net.sf.joafip.store.entity.kept.SubstituteOfEnum;
import net.sf.joafip.store.entity.objectio.IObjectStateMapCLeanListener;
import net.sf.joafip.store.entity.objectio.ObjectAndPersistInfo;
@@ -578,8 +577,13 @@
public void keptInMemory(final String key, final Object object)
throws StoreException {
final Class<? extends Object> objectClass = object.getClass();
- setSubstituteObjectManager(objectClass, KeptInMemoryObjectKey.class,
- objectIOManager.getKeptInMemorySubstituteObjectManager());
+ ClassInfo classInfo;
+ try {
+ classInfo = classInfoFactory.getNoProxyClassInfo(objectClass);
+ } catch (ClassInfoException exception) {
+ throw new StoreException(exception);
+ }
+ classInfo.setKeptInMemory(true);
objectIOManager.addObject(key, object);
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java 2011-10-17 04:43:22 UTC (rev 2927)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java 2011-10-17 08:46:43 UTC (rev 2928)
@@ -30,7 +30,6 @@
import net.sf.joafip.store.entity.kept.KeptInMemoryObjectKey;
import net.sf.joafip.store.service.StoreException;
import net.sf.joafip.store.service.objectio.ObjectIOException;
-import net.sf.joafip.store.service.objectio.manager.ISubstituteObjectManager;
/**
* to manage object kept in memory, may be referenced by persisted object
@@ -39,7 +38,7 @@
*
*/
@NotStorableClass
-public class KeptInMemoryObjectManager implements ISubstituteObjectManager {
+public class KeptInMemoryObjectManager {
private final Map<KeptInMemoryObjectKey, Object> objectByKeyMap =
/**/new TreeMap<KeptInMemoryObjectKey, Object>();
@@ -70,7 +69,6 @@
.getKey();
}
- @Override
public Object originalObject(final Object substitute)
throws ObjectIOException {
final Object originalObject = objectByKeyMap.get(substitute);
@@ -81,7 +79,6 @@
return originalObject;
}
- @Override
public Object substituteObject(final Object originalObject)
throws ObjectIOException {
final KeptInMemoryObjectKey substitute = keyByObjectMap
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java 2011-10-17 04:43:22 UTC (rev 2927)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java 2011-10-17 08:46:43 UTC (rev 2928)
@@ -43,7 +43,7 @@
*/
@NotStorableClass
public abstract class AbstractObjectIOManagerDelegatingToStateMap extends
- AbstractObjectIOManagerKeptInMemory {
+ AbstractObjectIOManagerIOForObject {
private final ObjectStateMgr objectStateMgr = new ObjectStateMgr();
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 04:43:22 UTC (rev 2927)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 08:46:43 UTC (rev 2928)
@@ -35,6 +35,7 @@
import net.sf.joafip.store.entity.classinfo.ClassInfo;
import net.sf.joafip.store.entity.classinfo.FieldInfo;
import net.sf.joafip.store.entity.conversion.ClassReplacementDef;
+import net.sf.joafip.store.entity.kept.KeptInMemoryObjectKey;
import net.sf.joafip.store.entity.objectio.EnumObjectInput;
import net.sf.joafip.store.entity.objectio.EnumObjectOutput;
import net.sf.joafip.store.entity.objectio.ObjectAndItsClassInfo;
@@ -47,7 +48,6 @@
import net.sf.joafip.store.service.classinfo.ClassInfoFactory;
import net.sf.joafip.store.service.copier.CopierException;
import net.sf.joafip.store.service.copier.DeepCopier;
-import net.sf.joafip.store.service.copier.IDeepCopyServiceDelegate;
import net.sf.joafip.store.service.objectio.ObjectIOClassNotFoundException;
import net.sf.joafip.store.service.objectio.ObjectIODataCorruptedException;
import net.sf.joafip.store.service.objectio.ObjectIODataRecordNotFoundException;
@@ -95,9 +95,8 @@
*
*/
@NotStorableClass
-public abstract class AbstractObjectIOManagerIOForObject implements
- IObjectIOManagerForObjectIO, IObjectIOManagerForSave,
- IDeepCopyServiceDelegate, IObjectIoManagerForGarbage {
+public abstract class AbstractObjectIOManagerIOForObject extends
+ AbstractObjectIOManagerKeptInMemory {
protected final JoafipLogger logger = JoafipLogger.getLogger(getClass());// NOPMD
@@ -144,8 +143,6 @@
private final IProxyManagerForObjectIO proxyManager2;
- protected final ClassInfoFactory classInfoFactory;
-
protected final ObjectInputForEnum objectInputEnum;
protected final int currentDataModelIdentifier;
@@ -171,11 +168,10 @@
final HelperBinaryConversion helperBinaryConversion,
final IProxyManagerForObjectIO proxyManager2)
throws ObjectIOException {
- super();
+ super(classInfoFactory);
this.currentDataModelIdentifier = currentDataModelIdentifier;
this.classNameManager = classNameManager;
this.proxyMode = proxyMode;
- this.classInfoFactory = classInfoFactory;
this.proxyManager2 = proxyManager2;
try {
objectIOOutputStream = new ObjectIOOutputStream(this,
@@ -518,7 +514,9 @@
throws ObjectIOException, ObjectIODataCorruptedException {
final ObjectAndPersistInfo substituteObjectAndPersistInfo;
final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
- if (classInfo.isSubstituted()) {
+ if (classInfo.isKeptInMemory()) {
+ substituteObjectAndPersistInfo = keptInMemorysubstituteObject(objectAndPersistInfo);
+ } else if (classInfo.isSubstituted()) {
substituteObjectAndPersistInfo = substituteObject(objectAndPersistInfo);
} else if (classInfo.isWriteSubstituted()) {
substituteObjectAndPersistInfo = substituteForWrite(objectAndPersistInfo);
@@ -932,23 +930,39 @@
ObjectIOClassNotFoundException, ObjectIONotSerializableException {
final ObjectAndPersistInfo result;
if (objectAndPersistInfo.isSubstitution()) {
+
final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
- final ISubstituteObjectManager substituteObjectManager = classInfo
- .getSubstituteObjectManager();
- /*
- * substituted in storage, the original object before to be
- * persisted
- */
final Object object = objectAndPersistInfo.getObject();
- final Object substitutedObject = originalObject(
- substituteObjectManager, object);
+ final Object substitutedObject;
+ final ClassInfo substituteOfClassInfo;
+ if (KeptInMemoryObjectKey.class.equals(classInfo.getObjectClass())) {
+ substitutedObject = keptInMemoryoriginalObject(object);
+ try {
+ substituteOfClassInfo = classInfoFactory
+ .getNoProxyClassInfo(substitutedObject.getClass());
+ } catch (ClassInfoException exception) {
+ throw new ObjectIOException(exception);
+ }
+ } else {
+
+ final ISubstituteObjectManager substituteObjectManager = classInfo
+ .getSubstituteObjectManager();
+ /*
+ * substituted in storage, the original object before to be
+ * persisted
+ */
+
+ substitutedObject = originalObject(substituteObjectManager,
+ object);
+ substituteOfClassInfo = classInfo.getSubstituteOfClassInfo();
+ }
+
/* original/substituted in storage is not persisted, never a proxy */
result = getOrCreateObjectPersistInfoOfObject(substitutedObject,
- Boolean.FALSE, classInfo.getSubstituteOfClassInfo(), false/*
- * not
- * persisted
- */);
+ Boolean.FALSE, substituteOfClassInfo, false/*
+ * not persisted
+ */);
} else {
result = objectAndPersistInfo;
}
@@ -1097,7 +1111,10 @@
final ClassInfo toWriteClassInfo;
final ObjectAndPersistInfo toWriteObjectAndPersistInfo;
- if (classInfo.isSubstituted()) {
+ if (classInfo.isKeptInMemory()) {
+ toWriteObjectAndPersistInfo = keptInMemorysubstituteObject(objectAndPersistInfo);
+ toWriteClassInfo = toWriteObjectAndPersistInfo.objectClassInfo;
+ } else if (classInfo.isSubstituted()) {
// write substitute object
final ObjectAndPersistInfo substituteObjectAndPersistInfo =
/**/substituteObject(objectAndPersistInfo);
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java 2011-10-17 04:43:22 UTC (rev 2927)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java 2011-10-17 08:46:43 UTC (rev 2928)
@@ -22,36 +22,47 @@
*/
package net.sf.joafip.store.service.objectio.manager;
+import net.sf.joafip.store.entity.classinfo.ClassInfo;
+import net.sf.joafip.store.entity.kept.KeptInMemoryObjectKey;
+import net.sf.joafip.store.entity.objectio.ObjectAndPersistInfo;
import net.sf.joafip.store.service.StoreException;
-import net.sf.joafip.store.service.binary.HelperBinaryConversion;
+import net.sf.joafip.store.service.classinfo.ClassInfoException;
import net.sf.joafip.store.service.classinfo.ClassInfoFactory;
+import net.sf.joafip.store.service.copier.IDeepCopyServiceDelegate;
import net.sf.joafip.store.service.kept.KeptInMemoryObjectManager;
+import net.sf.joafip.store.service.objectio.ObjectIODataCorruptedException;
import net.sf.joafip.store.service.objectio.ObjectIOException;
-import net.sf.joafip.store.service.proxy.IProxyManagerForObjectIO;
/**
*
* @author luc peuvrier
*
*/
-public abstract class AbstractObjectIOManagerKeptInMemory extends
- AbstractObjectIOManagerIOForObject {
+public abstract class AbstractObjectIOManagerKeptInMemory implements
+ IObjectIOManagerForObjectIO, IObjectIOManagerForSave,
+ IDeepCopyServiceDelegate, IObjectIoManagerForGarbage {
private final KeptInMemoryObjectManager keptInMemorySubstituteObjectManager =
/**/new KeptInMemoryObjectManager();
+ protected final ClassInfoFactory classInfoFactory;
+
+ private final ClassInfo substituteClassInfo;
+
public AbstractObjectIOManagerKeptInMemory(
- final int currentDataModelIdentifier,
- final IClassNameManager classNameManager, final boolean proxyMode,
- final ClassInfoFactory classInfoFactory,
- final HelperBinaryConversion helperBinaryConversion,
- final IProxyManagerForObjectIO proxyManager2)
- throws ObjectIOException {
- super(currentDataModelIdentifier, classNameManager, proxyMode,
- classInfoFactory, helperBinaryConversion, proxyManager2);
+ final ClassInfoFactory classInfoFactory) throws ObjectIOException {
+ super();
+ this.classInfoFactory = classInfoFactory;
+ try {
+ substituteClassInfo = classInfoFactory
+ .getNoProxyClassInfo(KeptInMemoryObjectKey.class);
+ } catch (ClassInfoException exception) {
+ throw new ObjectIOException(exception);
+ }
+ substituteClassInfo.setIsSubstitution();
}
- public KeptInMemoryObjectManager getKeptInMemorySubstituteObjectManager() {
+ protected KeptInMemoryObjectManager getKeptInMemorySubstituteObjectManager() {
return keptInMemorySubstituteObjectManager;
}
@@ -64,15 +75,23 @@
return keptInMemorySubstituteObjectManager.keyOfObject(object);
}
- public Object originalObject(final Object substitute)
+ protected Object keptInMemoryoriginalObject(final Object substitute)
throws ObjectIOException {
return keptInMemorySubstituteObjectManager.originalObject(substitute);
}
- public Object substituteObject(final Object originalObject)
- throws ObjectIOException {
- return keptInMemorySubstituteObjectManager
+ protected ObjectAndPersistInfo keptInMemorysubstituteObject(
+ final ObjectAndPersistInfo objectAndPersistInfo)
+ throws ObjectIOException, ObjectIODataCorruptedException {
+
+ final Object originalObject = objectAndPersistInfo.getObject();
+ final Object substituteObject = keptInMemorySubstituteObjectManager
.substituteObject(originalObject);
+ final ObjectAndPersistInfo substituteObjectAndPersistInfo = getOrCreateObjectPersistInfoOfObject(
+ substituteObject, Boolean.FALSE, substituteClassInfo, true/* persisted */);
+ objectAndPersistInfo
+ .setSubstituteObjectAndPersistInfo(substituteObjectAndPersistInfo);
+ return substituteObjectAndPersistInfo;
}
@Override
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java 2011-10-17 04:43:22 UTC (rev 2927)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java 2011-10-17 08:46:43 UTC (rev 2928)
@@ -394,7 +394,9 @@
final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
final ObjectAndPersistInfo toWrite;
- if (classInfo.isSubstituted()) {
+ if (classInfo.isKeptInMemory()) {
+ toWrite = keptInMemorysubstituteObject(objectAndPersistInfo);
+ } else if (classInfo.isSubstituted()) {
toWrite = substituteObject(objectAndPersistInfo);
} else {
toWrite = objectAndPersistInfo;
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java 2011-10-17 04:43:22 UTC (rev 2927)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java 2011-10-17 08:46:43 UTC (rev 2928)
@@ -54,7 +54,7 @@
*/
@NotStorableClass
public class SerializerObjectIOManager extends
- AbstractObjectIOManagerKeptInMemory {
+ AbstractObjectIOManagerIOForObject {
private static final String MUST_NOT_BE_CALLED = "must not be called";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-17 08:46:52
|
Revision: 2928
http://joafip.svn.sourceforge.net/joafip/?rev=2928&view=rev
Author: luc_peuvrier
Date: 2011-10-17 08:46:43 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
kept in memory management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-17 04:43:29
|
Revision: 2927
http://joafip.svn.sourceforge.net/joafip/?rev=2927&view=rev
Author: luc_peuvrier
Date: 2011-10-17 04:43:22 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/AbstractDeepCopy.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/DeepCopier.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/IDeepCopyServiceDelegate.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/ToProxyDeepCopier.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java
Added Paths:
-----------
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -237,9 +237,6 @@
private final Map<Integer, Map<Integer, Deque<ClassReplacementDef>>> conversionMap =
/**/new TreeMap<Integer, Map<Integer, Deque<ClassReplacementDef>>>();
- /** true if this is a class of object kept in memory */
- private boolean keptInMemory;
-
private AbstractConverter binaryConverter;
/** binary form size, -1 for unknown size */
@@ -657,7 +654,7 @@
|| stringType || storeNotLazy
|| storeSerializeAndGZippedInOneRecord
|| storeSerializeAndZippedInOneRecord
- || storeSerializeInOneRecord || keptInMemory;
+ || storeSerializeInOneRecord;
}
private void initializeFieldInfo() throws ClassInfoException {
@@ -1456,8 +1453,6 @@
stringBuilder.append(allDeclaredFieldsForGenericIO);
stringBuilder.append("\nconversionMap=");
stringBuilder.append(conversionMap);
- stringBuilder.append("\nkeptInMemory=");
- stringBuilder.append(keptInMemory);
return stringBuilder.toString();
}
@@ -1587,14 +1582,6 @@
return proxyable;
}
- public void setKeptInMemory() {
- keptInMemory = true;
- }
-
- public boolean isKeptInMemory() {
- return keptInMemory;
- }
-
public void setBinaryConverter(final AbstractConverter binaryConverter) {
this.binaryConverter = binaryConverter;
this.binarySize = binaryConverter.byteSize();
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -74,7 +74,6 @@
import net.sf.joafip.store.service.heaprecordable.HeapRecordableException;
import net.sf.joafip.store.service.heaprecordable.HeapRecordableManager;
import net.sf.joafip.store.service.kept.EnumSubstituteManager;
-import net.sf.joafip.store.service.kept.KeptInMemoryObjectManager;
import net.sf.joafip.store.service.objectio.ObjectIOClassNotFoundException;
import net.sf.joafip.store.service.objectio.ObjectIODataCorruptedException;
import net.sf.joafip.store.service.objectio.ObjectIODataRecordNotFoundException;
@@ -156,9 +155,6 @@
private ConversionManager conversionManager;
- private final KeptInMemoryObjectManager keptInMemorySubstituteObjectManager =
- /**/new KeptInMemoryObjectManager();
-
private final EnumSubstituteManager enumSubstituteManager =
/**/new EnumSubstituteManager();
@@ -582,20 +578,17 @@
public void keptInMemory(final String key, final Object object)
throws StoreException {
final Class<? extends Object> objectClass = object.getClass();
- ClassInfo classInfo;
- try {
- classInfo = classInfoFactory.getNoProxyClassInfo(objectClass);
- } catch (final ClassInfoException exception) {
- throw new StoreException(exception);
- }
- // FIXMELUC ___________________not good classInfo.setKeptInMemory()
- classInfo.setKeptInMemory();
setSubstituteObjectManager(objectClass, KeptInMemoryObjectKey.class,
- keptInMemorySubstituteObjectManager);
- keptInMemorySubstituteObjectManager.addObject(key, object);
+ objectIOManager.getKeptInMemorySubstituteObjectManager());
+ objectIOManager.addObject(key, object);
}
@Override
+ public boolean isKeptInMemory(final Object object) {
+ return objectIOManager.isKeptInMemory(object);
+ }
+
+ @Override
public void referencedByPesistedStaticField(
final Class<?> classHavingStaticFieldReferenced)
throws StoreException {
@@ -632,7 +625,7 @@
@Override
public String keyOfObjectKeptInMemory(final Object object) {
- return keptInMemorySubstituteObjectManager.keyOfObject(object);
+ return objectIOManager.keyOfObject(object);
}
@Override
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/AbstractDeepCopy.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/AbstractDeepCopy.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/AbstractDeepCopy.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -86,6 +86,8 @@
protected transient ClassInfoFactory classInfoFactory;
+ protected transient IDeepCopyServiceDelegate deepCopyServiceDelagate;
+
protected AbstractDeepCopy() {
super();
}
@@ -105,6 +107,7 @@
final boolean forceLoad) throws CopierException {
this.rootSourceObject = rootSourceObject;
this.classInfoFactory = deepCopyServiceDelagate.getClassInfoFactory();
+ this.deepCopyServiceDelagate = deepCopyServiceDelagate;
final IProxyManagerForObjectIO proxyManager2 = deepCopyServiceDelagate
.getProxyManager2();
final Object sourceCopy;
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/DeepCopier.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/DeepCopier.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/DeepCopier.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -81,7 +81,8 @@
@Override
protected boolean mustBeCopied(final Object objectToCopy,
final ClassInfo classInfo) {
- return true ^ (classInfo.isKeptInMemory() || classInfo.isEnumType());
+ return true ^ (deepCopyServiceDelagate.isKeptInMemory(objectToCopy) || classInfo
+ .isEnumType());
}
@Override
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/IDeepCopyServiceDelegate.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/IDeepCopyServiceDelegate.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/IDeepCopyServiceDelegate.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -43,4 +43,6 @@
Object newInstance(Class<?> objectClass);
Object newInstanceNoConstruction(ClassInfo objectClassInfo);
+
+ boolean isKeptInMemory(Object object);
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/ToProxyDeepCopier.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/ToProxyDeepCopier.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/ToProxyDeepCopier.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -167,7 +167,7 @@
protected boolean mustBeCopied(final Object objectToCopy,
final ClassInfo objectToCopyClassInfo) throws CopierException {
try {
- return !(objectToCopyClassInfo.isKeptInMemory()
+ return !(deepCopyServiceDelagate.isKeptInMemory(objectToCopy)
|| objectToCopyClassInfo.isWriteSubstituted()
|| objectToCopyClassInfo.isStoreInOneReccord()
|| objectToCopyClassInfo.isBasicType()
@@ -194,7 +194,7 @@
throw new CopierException("must not copy not loaded proxy");
}
newInstance = sourceObject;
- } else if (sourceObjectClassInfo.isKeptInMemory()
+ } else if (deepCopyServiceDelagate.isKeptInMemory(sourceObject)
|| sourceObjectClassInfo.isSubstituted()
|| sourceObjectClassInfo.isStoreNotLazy()
|| sourceObjectClassInfo.isSubstituted()
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -59,6 +59,10 @@
}
}
+ public boolean isKeptInMemory(final Object object) {
+ return keyByObjectMap.containsKey(object);
+ }
+
public String keyOfObject(final Object object) {
final KeptInMemoryObjectKey keptInMemoryObjectKey = keyByObjectMap
.get(object);
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -43,7 +43,7 @@
*/
@NotStorableClass
public abstract class AbstractObjectIOManagerDelegatingToStateMap extends
- AbstractObjectIOManagerIOForObject {
+ AbstractObjectIOManagerKeptInMemory {
private final ObjectStateMgr objectStateMgr = new ObjectStateMgr();
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -1130,7 +1130,6 @@
return true;
}
- // FIXMELUC ______________________________________substituteObject
protected ObjectAndPersistInfo substituteObject(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException, ObjectIODataCorruptedException {
Added: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java (rev 0)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2011 Luc Peuvrier
+ *
+ * This file is a part of JOAFIP.
+ *
+ * JOAFIP is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License.
+ *
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
+ * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * JOAFIP is distributed in the hope that it will be useful, but
+ * unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.sf.joafip.store.service.objectio.manager;
+
+import net.sf.joafip.store.service.StoreException;
+import net.sf.joafip.store.service.binary.HelperBinaryConversion;
+import net.sf.joafip.store.service.classinfo.ClassInfoFactory;
+import net.sf.joafip.store.service.kept.KeptInMemoryObjectManager;
+import net.sf.joafip.store.service.objectio.ObjectIOException;
+import net.sf.joafip.store.service.proxy.IProxyManagerForObjectIO;
+
+/**
+ *
+ * @author luc peuvrier
+ *
+ */
+public abstract class AbstractObjectIOManagerKeptInMemory extends
+ AbstractObjectIOManagerIOForObject {
+
+ private final KeptInMemoryObjectManager keptInMemorySubstituteObjectManager =
+ /**/new KeptInMemoryObjectManager();
+
+ public AbstractObjectIOManagerKeptInMemory(
+ final int currentDataModelIdentifier,
+ final IClassNameManager classNameManager, final boolean proxyMode,
+ final ClassInfoFactory classInfoFactory,
+ final HelperBinaryConversion helperBinaryConversion,
+ final IProxyManagerForObjectIO proxyManager2)
+ throws ObjectIOException {
+ super(currentDataModelIdentifier, classNameManager, proxyMode,
+ classInfoFactory, helperBinaryConversion, proxyManager2);
+ }
+
+ public KeptInMemoryObjectManager getKeptInMemorySubstituteObjectManager() {
+ return keptInMemorySubstituteObjectManager;
+ }
+
+ public void addObject(final String key, final Object object)
+ throws StoreException {
+ keptInMemorySubstituteObjectManager.addObject(key, object);
+ }
+
+ public String keyOfObject(final Object object) {
+ return keptInMemorySubstituteObjectManager.keyOfObject(object);
+ }
+
+ public Object originalObject(final Object substitute)
+ throws ObjectIOException {
+ return keptInMemorySubstituteObjectManager.originalObject(substitute);
+ }
+
+ public Object substituteObject(final Object originalObject)
+ throws ObjectIOException {
+ return keptInMemorySubstituteObjectManager
+ .substituteObject(originalObject);
+ }
+
+ @Override
+ public boolean isKeptInMemory(final Object object) {
+ return keptInMemorySubstituteObjectManager.isKeptInMemory(object);
+ }
+}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -54,7 +54,7 @@
*/
@NotStorableClass
public class SerializerObjectIOManager extends
- AbstractObjectIOManagerIOForObject {
+ AbstractObjectIOManagerKeptInMemory {
private static final String MUST_NOT_BE_CALLED = "must not be called";
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -331,4 +331,9 @@
throws ObjectIOException {
// no implementation
}
+
+ @Override
+ public boolean isKeptInMemory(final Object object) {
+ return false;
+ }
}
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -535,4 +535,9 @@
throws ObjectIOException {
// no implementation
}
+
+ @Override
+ public boolean isKeptInMemory(final Object object) {
+ return false;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-17 04:43:28
|
Revision: 2927
http://joafip.svn.sourceforge.net/joafip/?rev=2927&view=rev
Author: luc_peuvrier
Date: 2011-10-17 04:43:22 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/AbstractDeepCopy.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/DeepCopier.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/IDeepCopyServiceDelegate.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/ToProxyDeepCopier.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java
Added Paths:
-----------
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-17 03:49:28
|
Revision: 2926
http://joafip.svn.sourceforge.net/joafip/?rev=2926&view=rev
Author: luc_peuvrier
Date: 2011-10-17 03:49:21 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java
trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfoAttributes.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/ClassInfoFactory.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/IClassInfoFactory.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java
trunk/joafip/src/test/java/net/sf/joafip/store/entity/classinfo/AbstractClassInfoTest.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/StoreForTest.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -233,43 +233,43 @@
}
@Override
- public void setSubstitution(final Class<?> replaced,
+ public void setWriteSubstitution(final Class<?> replaced,
final Class<?> substitute, final ISubsituteSynchronizer synchronizer)
throws FilePersistenceException {
try {
- store.setSubstitution(replaced, substitute, synchronizer);
+ store.setWriteSubstitution(replaced, substitute, synchronizer);
} catch (final StoreException exception) {
throw new FilePersistenceException(exception);
}
}
@Override
- public void removeSubstitution(final Class<?> replaced)
+ public void removeWriteSubstitution(final Class<?> replaced)
throws FilePersistenceException {
try {
- store.removeSubstitution(replaced);
+ store.removeWriteSubstitution(replaced);
} catch (final StoreException exception) {
throw new FilePersistenceException(exception);
}
}
@Override
- public void setSubstitution(final String replacedName,
+ public void setWriteSubstitution(final String replacedName,
final Class<?> substitute, final ISubsituteSynchronizer synchronizer)
throws FilePersistenceException {
try {
- store.setSubstitution(replacedName, substitute, synchronizer);
+ store.setWriteSubstitution(replacedName, substitute, synchronizer);
} catch (final StoreException exception) {
throw new FilePersistenceException(exception);
}
}
@Override
- public void removeSubstitution(final String replacedName)
+ public void removeWriteSubstitution(final String replacedName)
throws FilePersistenceException,
FilePersistenceClassNotFoundException {
try {
- store.removeSubstitution(replacedName);
+ store.removeWriteSubstitution(replacedName);
} catch (final StoreException exception) {
throw new FilePersistenceException(exception);
} catch (final StoreClassNotFoundException exception) {
Modified: trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -308,7 +308,7 @@
.forName(synchronizerClassName);
final ISubsituteSynchronizer synchronizer = synchronizerClass
.newInstance();
- setSubstitution(toSubstituteClass, substituteClass,
+ setWriteSubstitution(toSubstituteClass, substituteClass,
synchronizer);
} catch (final ClassNotFoundException exception) {
throw new FilePersistenceException(exception);
Modified: trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -126,7 +126,7 @@
/**
* record a class substitution at write<br>
* if class is not accessible see
- * {@link #setSubstitution(String, Class, ISubsituteSynchronizer)} <br>
+ * {@link #setWriteSubstitution(String, Class, ISubsituteSynchronizer)} <br>
* (PROPS) can be set using properties file see
* {@link net.sf.joafip.service.FilePersistence#FilePersistence(String, boolean)}
* <br>
@@ -139,11 +139,12 @@
* the state synchronizer for class and its substitute
* @throws FilePersistenceException
*/
- void setSubstitution(Class<?> replaced, Class<?> substitute,
+ void setWriteSubstitution(Class<?> replaced, Class<?> substitute,
ISubsituteSynchronizer synchronizer)
throws FilePersistenceException;
- void removeSubstitution(Class<?> replaced) throws FilePersistenceException;
+ void removeWriteSubstitution(Class<?> replaced)
+ throws FilePersistenceException;
/**
* record a class substitution at write<br>
@@ -159,11 +160,11 @@
* the state synchronizer for class and its substitute
* @throws FilePersistenceException
*/
- void setSubstitution(String replacedName, Class<?> substitute,
+ void setWriteSubstitution(String replacedName, Class<?> substitute,
ISubsituteSynchronizer synchronizer)
throws FilePersistenceException;
- void removeSubstitution(String replacedName)
+ void removeWriteSubstitution(String replacedName)
throws FilePersistenceException,
FilePersistenceClassNotFoundException;
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -940,24 +940,20 @@
notCheckedMethodSet.add(absoluteMethodName);
}
- public void setSubstitute(final ClassInfo substituteClassInfo,
+ public void setSubstituted(final ClassInfo substituteClassInfo,
final ISubstituteObjectManager substituteObjectManager) {
substituted = true;
this.substituteObjectManager = substituteObjectManager;
this.substituteClassInfo = substituteClassInfo;
+ substituteClassInfo.substituteObjectManager = substituteObjectManager;
+ substituteClassInfo.substitution = true;
+ substituteClassInfo.substituteOfClassInfo = this;
}
public boolean isSubstituted() {
return substituted;
}
- public void setSubstituteOf(final ClassInfo substituteOfClassInfo,
- final ISubstituteObjectManager substituteObjectManager) {
- substitution = true;
- this.substituteObjectManager = substituteObjectManager;
- this.substituteOfClassInfo = substituteOfClassInfo;
- }
-
public ClassInfo getSubstituteOfClassInfo() {
return substituteOfClassInfo;
}
@@ -1139,7 +1135,7 @@
this.useSpecificObjectIO = useSpecificObjectIO;
}
- public void setSubstitution(final ClassInfo substituteClassInfo,
+ public void setWriteSubstituted(final ClassInfo substituteClassInfo,
final ISubsituteSynchronizer subsituteSynchronizer) {
this.substituteClassInfo = substituteClassInfo;
this.subsituteSynchronizer = subsituteSynchronizer;
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfoAttributes.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfoAttributes.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfoAttributes.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -63,7 +63,7 @@
private ISubstituteObjectManager substituteObjectManager;
- private Class<?> substitute;
+ private Class<?> writeSubstitution;
private ISubsituteSynchronizer synchronizer;
@@ -172,14 +172,14 @@
return substituteObjectManager;
}
- public void setSubstitution(final Class<?> substitute,
+ public void setWriteSubstitution(final Class<?> writeSubstitution,
final ISubsituteSynchronizer synchronizer) {
- this.substitute = substitute;
+ this.writeSubstitution = writeSubstitution;
this.synchronizer = synchronizer;
}
- public Class<?> getSubstitute() {
- return substitute;
+ public Class<?> getWriteSubstition() {
+ return writeSubstitution;
}
public ISubsituteSynchronizer getSynchronizer() {
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -135,15 +135,15 @@
* the state synchronizer for class and its substitute
* @throws StoreException
*/
- void setSubstitution(Class<?> replaced, Class<?> substitute,
+ void setWriteSubstitution(Class<?> replaced, Class<?> substitute,
ISubsituteSynchronizer synchronizer) throws StoreException;
- void removeSubstitution(Class<?> replaced) throws StoreException;
+ void removeWriteSubstitution(Class<?> replaced) throws StoreException;
- void setSubstitution(String replacedName, Class<?> substitute,
+ void setWriteSubstitution(String replacedName, Class<?> substitute,
ISubsituteSynchronizer synchronizer) throws StoreException;
- void removeSubstitution(String replacedName) throws StoreException,
+ void removeWriteSubstitution(String replacedName) throws StoreException,
StoreClassNotFoundException;
/**
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -224,54 +224,56 @@
final MapSynchronizer mapSynchronizer = new MapSynchronizer();
final ListSynchronizer listSynchronizer = new ListSynchronizer();
- setSubstitution(Vector.class, PVector.class, listSynchronizer);
+ setWriteSubstitution(Vector.class, PVector.class, listSynchronizer);
- setSubstitution(LinkedList.class, PLinkedList.class,
+ setWriteSubstitution(LinkedList.class, PLinkedList.class,
listSynchronizer);
- setSubstitution(ArrayList.class, PArrayList.class, listSynchronizer);
+ setWriteSubstitution(ArrayList.class, PArrayList.class,
+ listSynchronizer);
- setSubstitution(HashSet.class, PHashSet.class, setSynchronizer);
+ setWriteSubstitution(HashSet.class, PHashSet.class, setSynchronizer);
- setSubstitution(LinkedHashSet.class, PLinkedHashSet.class,
+ setWriteSubstitution(LinkedHashSet.class, PLinkedHashSet.class,
setSynchronizer);
- setSubstitution(TreeSet.class, PTreeSet.class, setSynchronizer);
+ setWriteSubstitution(TreeSet.class, PTreeSet.class, setSynchronizer);
- setSubstitution(Hashtable.class, PHashMap.class, mapSynchronizer);
+ setWriteSubstitution(Hashtable.class, PHashMap.class,
+ mapSynchronizer);
- setSubstitution(HashMap.class, PHashMap.class, mapSynchronizer);
+ setWriteSubstitution(HashMap.class, PHashMap.class, mapSynchronizer);
- setSubstitution(ConcurrentHashMap.class, PConcurrentHashMap.class,
- mapSynchronizer);
+ setWriteSubstitution(ConcurrentHashMap.class,
+ PConcurrentHashMap.class, mapSynchronizer);
- setSubstitution(LinkedHashMap.class, PLinkedHashMap.class,
+ setWriteSubstitution(LinkedHashMap.class, PLinkedHashMap.class,
mapSynchronizer);
- setSubstitution(TreeMap.class, PTreeMap.class, mapSynchronizer);
+ setWriteSubstitution(TreeMap.class, PTreeMap.class, mapSynchronizer);
} else {
- removeSubstitution(Vector.class);
+ removeWriteSubstitution(Vector.class);
- removeSubstitution(LinkedList.class);
+ removeWriteSubstitution(LinkedList.class);
- removeSubstitution(ArrayList.class);
+ removeWriteSubstitution(ArrayList.class);
- removeSubstitution(HashSet.class);
+ removeWriteSubstitution(HashSet.class);
- removeSubstitution(LinkedHashSet.class);
+ removeWriteSubstitution(LinkedHashSet.class);
- removeSubstitution(TreeSet.class);
+ removeWriteSubstitution(TreeSet.class);
- removeSubstitution(Hashtable.class);
+ removeWriteSubstitution(Hashtable.class);
- removeSubstitution(HashMap.class);
+ removeWriteSubstitution(HashMap.class);
- removeSubstitution(ConcurrentHashMap.class);
+ removeWriteSubstitution(ConcurrentHashMap.class);
- removeSubstitution(LinkedHashMap.class);
+ removeWriteSubstitution(LinkedHashMap.class);
- removeSubstitution(TreeMap.class);
+ removeWriteSubstitution(TreeMap.class);
}
}
@@ -349,7 +351,7 @@
}
@Override
- public final void setSubstitution(final Class<?> replacedClass,
+ public final void setWriteSubstitution(final Class<?> replacedClass,
final Class<?> substituteClass,
final ISubsituteSynchronizer subsituteSynchronizer)
throws StoreException {
@@ -359,7 +361,7 @@
.getNoProxyClassInfo(replacedClass);
final ClassInfo substituteClassInfo = classInfoFactory
.getNoProxyClassInfo(substituteClass);
- replacedClassInfo.setSubstitution(substituteClassInfo,
+ replacedClassInfo.setWriteSubstituted(substituteClassInfo,
subsituteSynchronizer);
} catch (final ClassInfoException exception) {
throw new StoreException(exception);
@@ -368,7 +370,7 @@
}
@Override
- public void removeSubstitution(final Class<?> replacedClass)
+ public void removeWriteSubstitution(final Class<?> replacedClass)
throws StoreException {
synchronized (mutex) {
try {
@@ -382,12 +384,12 @@
}
@Override
- public void setSubstitution(final String replacedName,
+ public void setWriteSubstitution(final String replacedName,
final Class<?> substitute, final ISubsituteSynchronizer synchronizer)
throws StoreException {
synchronized (mutex) {
try {
- classInfoFactory.setSubstitution(replacedName, substitute,
+ classInfoFactory.setWriteSubstitution(replacedName, substitute,
synchronizer);
} catch (final ClassInfoException exception) {
throw new StoreException(exception);
@@ -396,7 +398,7 @@
}
@Override
- public void removeSubstitution(final String replacedName)
+ public void removeWriteSubstitution(final String replacedName)
throws StoreException, StoreClassNotFoundException {
synchronized (mutex) {
try {
@@ -773,10 +775,8 @@
.getNoProxyClassInfo(objectClass);
final ClassInfo substituteClassInfo = classInfoFactory
.getNoProxyClassInfo(substituteObjectClass);
- classInfo.setSubstitute(substituteClassInfo,
+ classInfo.setSubstituted(substituteClassInfo,
substituteObjectManager);
- substituteClassInfo.setSubstituteOf(classInfo,
- substituteObjectManager);
} catch (final Exception exception) {
throw new StoreException(exception);
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/ClassInfoFactory.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/ClassInfoFactory.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/ClassInfoFactory.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -394,15 +394,13 @@
if (classInfoAttributes.haveSubstituteObjectManager()) {
final ClassInfo substituteClassInfo = getNoProxyClassInfo(classInfoAttributes
.getSubstituteObjectClass());
- classInfo.setSubstitute(substituteClassInfo,
+ classInfo.setSubstituted(substituteClassInfo,
classInfoAttributes.getSubstituteObjectManager());
- substituteClassInfo.setSubstituteOf(classInfo,
- classInfoAttributes.getSubstituteObjectManager());
}
- if (classInfoAttributes.getSubstitute() != null) {
+ if (classInfoAttributes.getWriteSubstition() != null) {
final ClassInfo substituteClassInfo = getNoProxyClassInfo(classInfoAttributes
- .getSubstitute());
- classInfo.setSubstitution(substituteClassInfo,
+ .getWriteSubstition());
+ classInfo.setWriteSubstituted(substituteClassInfo,
classInfoAttributes.getSynchronizer());
}
if (classInfoAttributes.getObjectInput() != null
@@ -556,24 +554,24 @@
substituteObjectClass, substituteObjectManager);
} else {
final ClassInfo substituteClassInfo = getNoProxyClassInfo(substituteObjectClass);
- classInfo.setSubstitute(substituteClassInfo,
+ classInfo.setSubstituted(substituteClassInfo,
substituteObjectManager);
- substituteClassInfo.setSubstituteOf(classInfo,
+ substituteClassInfo.setSubstituted(classInfo,
substituteObjectManager);
}
}
@Override
- public void setSubstitution(final String replacedName,
+ public void setWriteSubstitution(final String replacedName,
final Class<?> substitute, final ISubsituteSynchronizer synchronizer)
throws ClassInfoException {
final ClassInfo classInfo = classInfoMap.get(replacedName);
if (classInfo == null) {
final ClassInfoAttributes classInfoAttributes = getOrCreateClassInfoAttribute(replacedName);
- classInfoAttributes.setSubstitution(substitute, synchronizer);
+ classInfoAttributes.setWriteSubstitution(substitute, synchronizer);
} else {
final ClassInfo substituteClassInfo = getNoProxyClassInfo(substitute);
- classInfo.setSubstitution(substituteClassInfo, synchronizer);
+ classInfo.setWriteSubstituted(substituteClassInfo, synchronizer);
}
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/IClassInfoFactory.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/IClassInfoFactory.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/IClassInfoFactory.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -101,7 +101,7 @@
ISubstituteObjectManager substituteObjectManager)
throws ClassInfoException;
- void setSubstitution(String replacedName, Class<?> substitute,
+ void setWriteSubstitution(String replacedName, Class<?> substitute,
ISubsituteSynchronizer synchronizer) throws ClassInfoException;
void setObjectIOForClass(String objectClassName, IObjectInput objectInput,
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -595,10 +595,8 @@
if (objectAndPersistInfo == null) {
objectAndPersistInfo = createObjectReadingInStore(
dataRecordIdentifier, notLazy);
- } else if (objectAndPersistInfo.isSubstitution()) {
- objectAndPersistInfo = substitutionOrOriginal(objectAndPersistInfo);
}
- return objectAndPersistInfo;
+ return original(objectAndPersistInfo);
}
/**
@@ -710,7 +708,7 @@
}
notToGarbage(dataRecordIdentifier, objectAndPersistInfo);
- return substitutionOrOriginal(objectAndPersistInfo);
+ return original(objectAndPersistInfo);
}
private boolean assertOriginalClassInfo(final ClassInfo classInfo,
@@ -927,15 +925,15 @@
return replacementDefList;
}
- protected ObjectAndPersistInfo substitutionOrOriginal(
+ protected ObjectAndPersistInfo original(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException, ObjectIODataCorruptedException,
ObjectIODataRecordNotFoundException, ObjectIOInvalidClassException,
ObjectIOClassNotFoundException, ObjectIONotSerializableException {
final ObjectAndPersistInfo result;
if (objectAndPersistInfo.isSubstitution()) {
- final ClassInfo classInfo2 = objectAndPersistInfo.objectClassInfo;
- final ISubstituteObjectManager substituteObjectManager = classInfo2
+ final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
+ final ISubstituteObjectManager substituteObjectManager = classInfo
.getSubstituteObjectManager();
/*
* substituted in storage, the original object before to be
@@ -947,10 +945,10 @@
/* original/substituted in storage is not persisted, never a proxy */
result = getOrCreateObjectPersistInfoOfObject(substitutedObject,
- Boolean.FALSE, classInfo2.getSubstituteOfClassInfo(), false/*
- * not
- * persisted
- */);
+ Boolean.FALSE, classInfo.getSubstituteOfClassInfo(), false/*
+ * not
+ * persisted
+ */);
} else {
result = objectAndPersistInfo;
}
Modified: trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -96,7 +96,7 @@
}
@Override
- protected void tearDown() throws Exception {
+ protected void tearDown() throws Exception { // NOPMD
try {
filePersistence.close();
} catch (final Exception exception) {// NOPMD
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/entity/classinfo/AbstractClassInfoTest.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/entity/classinfo/AbstractClassInfoTest.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/entity/classinfo/AbstractClassInfoTest.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -189,7 +189,7 @@
}
@Override
- public void setSubstitution(final String replacedName,
+ public void setWriteSubstitution(final String replacedName,
final Class<?> substitute, final ISubsituteSynchronizer synchronizer)
throws ClassInfoException {
throw new UnsupportedOperationException();
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/StoreForTest.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/StoreForTest.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/StoreForTest.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -624,12 +624,12 @@
public void removeSubstitution(final Class<?> replacedClass)
throws StoreException {
- store.removeSubstitution(replacedClass);
+ store.removeWriteSubstitution(replacedClass);
}
public void removeSubstitution(final String replacedName)
throws StoreException, StoreClassNotFoundException {
- store.removeSubstitution(replacedName);
+ store.removeWriteSubstitution(replacedName);
}
public void save(final boolean closing, final boolean autoSave)
@@ -899,18 +899,18 @@
substituteObjectClass, substituteObjectManager);
}
- public final void setSubstitution(final Class<?> replacedClass,
+ public final void setWriteSubstitution(final Class<?> replacedClass,
final Class<?> substituteClass,
final ISubsituteSynchronizer subsituteSynchronizer)
throws StoreException {
- store.setSubstitution(replacedClass, substituteClass,
+ store.setWriteSubstitution(replacedClass, substituteClass,
subsituteSynchronizer);
}
- public void setSubstitution(final String replacedName,
+ public void setWriteSubstitution(final String replacedName,
final Class<?> substitute, final ISubsituteSynchronizer synchronizer)
throws StoreException {
- store.setSubstitution(replacedName, substitute, synchronizer);
+ store.setWriteSubstitution(replacedName, substitute, synchronizer);
}
public void setSubstitutionOfJavaUtilCollection(final boolean enabled)
Modified: trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
===================================================================
--- trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java 2011-10-17 02:46:26 UTC (rev 2925)
+++ trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java 2011-10-17 03:49:21 UTC (rev 2926)
@@ -24,13 +24,13 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import net.sf.joafip.service.TestExportImport;
-import net.sf.joafip.service.rel310.TestImport301ConversionA;
-import net.sf.joafip.service.rel310.TestImport301ConversionB;
-import net.sf.joafip.service.rel310.TestUseRuntime301LazyConversionA;
-import net.sf.joafip.service.rel310.TestUseRuntime301LazyConversionB;
-import net.sf.joafip.service.rel310.TestUseRuntime301NotLazyConversionA;
-import net.sf.joafip.service.rel310.TestUseRuntime301NotLazyConversionB;
+import net.sf.joafip.service.bug.savenum.TestEnumKeptInMemory;
+import net.sf.joafip.service.rel300.TestClassLoaderPersistence;
+import net.sf.joafip.service.rel300.TestKeptInMemory;
+import net.sf.joafip.service.rel300.TestSubstitutionSerialize;
+import net.sf.joafip.service.rel300.TestSubstitutionSerializeReadWriteMethod;
+import net.sf.joafip.service.rel300.TestSubstitutionSubstitutedSerializable;
+import net.sf.joafip.service.rel300.TestSubstitutionWithDataAccessSession;
/**
*
@@ -47,13 +47,13 @@
public static Test suite() {
final TestSuite suite = new TestSuite("in error Tests");
// $JUnit-BEGIN$
- suite.addTestSuite(TestExportImport.class);
- suite.addTestSuite(TestImport301ConversionA.class);
- suite.addTestSuite(TestImport301ConversionB.class);
- suite.addTestSuite(TestUseRuntime301LazyConversionA.class);
- suite.addTestSuite(TestUseRuntime301LazyConversionB.class);
- suite.addTestSuite(TestUseRuntime301NotLazyConversionA.class);
- suite.addTestSuite(TestUseRuntime301NotLazyConversionB.class);
+ suite.addTestSuite(TestEnumKeptInMemory.class);
+ suite.addTestSuite(TestSubstitutionWithDataAccessSession.class);
+ suite.addTestSuite(TestSubstitutionSubstitutedSerializable.class);
+ suite.addTestSuite(TestSubstitutionSerialize.class);
+ suite.addTestSuite(TestSubstitutionSerializeReadWriteMethod.class);
+ suite.addTestSuite(TestClassLoaderPersistence.class);
+ suite.addTestSuite(TestKeptInMemory.class);
// suite.addTest(xxxx.suite());
// $JUnit-END$
return suite;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-17 03:49:27
|
Revision: 2926
http://joafip.svn.sourceforge.net/joafip/?rev=2926&view=rev
Author: luc_peuvrier
Date: 2011-10-17 03:49:21 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java
trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfoAttributes.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/ClassInfoFactory.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/classinfo/IClassInfoFactory.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java
trunk/joafip/src/test/java/net/sf/joafip/store/entity/classinfo/AbstractClassInfoTest.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/StoreForTest.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-17 02:46:32
|
Revision: 2925
http://joafip.svn.sourceforge.net/joafip/?rev=2925&view=rev
Author: luc_peuvrier
Date: 2011-10-17 02:46:26 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-16 10:31:27 UTC (rev 2924)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 02:46:26 UTC (rev 2925)
@@ -1103,8 +1103,6 @@
// write substitute object
final ObjectAndPersistInfo substituteObjectAndPersistInfo =
/**/substituteObject(objectAndPersistInfo);
- objectAndPersistInfo
- .setSubstituteObjectAndPersistInfo(substituteObjectAndPersistInfo);
toWriteClassInfo = substituteObjectAndPersistInfo.objectClassInfo;
toWriteObjectAndPersistInfo = substituteObjectAndPersistInfo;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-17 02:46:32
|
Revision: 2925
http://joafip.svn.sourceforge.net/joafip/?rev=2925&view=rev
Author: luc_peuvrier
Date: 2011-10-17 02:46:26 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-16 10:31:34
|
Revision: 2924
http://joafip.svn.sourceforge.net/joafip/?rev=2924&view=rev
Author: luc_peuvrier
Date: 2011-10-16 10:31:27 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractBinaryDump.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-16 10:31:34
|
Revision: 2924
http://joafip.svn.sourceforge.net/joafip/?rev=2924&view=rev
Author: luc_peuvrier
Date: 2011-10-16 10:31:27 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractBinaryDump.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java 2011-10-16 09:31:31 UTC (rev 2923)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java 2011-10-16 10:31:27 UTC (rev 2924)
@@ -88,7 +88,7 @@
public DataRecordIdentifier dataRecordIdentifier;
/** object substitute, null if none */
- public ObjectAndPersistInfo substituteObjectAndPersistInfo;
+ private ObjectAndPersistInfo substituteObjectAndPersistInfo;
/** substitution of, null is not an object substitution */
private ObjectAndPersistInfo substitutionOfObject;
@@ -307,19 +307,43 @@
/**
* set the substitute object for an object
*
- * @param substituteObject
+ * @param substituteObjectAndPersistInfo
* the substitute object
* @throws ObjectIOException
*/
public void setSubstituteObjectAndPersistInfo(
- final ObjectAndPersistInfo substituteObject)
+ final ObjectAndPersistInfo substituteObjectAndPersistInfo)
throws ObjectIOException {
// ASSERTX
- assert substituteObject.getObject() != null : "no substitution object defined";
- this.substituteObjectAndPersistInfo = substituteObject;
- substituteObject.substitutionOfObject = this;
+ assert substituteObjectAndPersistInfo.getObject() != null : "no substitution object defined";
+ this.substituteObjectAndPersistInfo = substituteObjectAndPersistInfo;
+ substituteObjectAndPersistInfo.substitutionOfObject = this;
}
+ public ObjectAndPersistInfo getSubstituteObjectAndPersistInfo() {
+ return substituteObjectAndPersistInfo;
+ }
+
+ public void clearSubstitution() {
+ if (substitutionOfObject != null) {
+ substitutionOfObject.substituteObjectAndPersistInfo = null;// NOPMD
+ substitutionOfObject = null;// NOPMD
+ }
+ }
+
+ public ObjectAndPersistInfo getSubstitutionOfObject() {
+ return substitutionOfObject;
+ }
+
+ public void setSubstitutionOfObject(
+ final ObjectAndPersistInfo substitutionOfObject) {
+ this.substitutionOfObject = substitutionOfObject;
+ }
+
+ public boolean isSubstituted() {
+ return substituteObjectAndPersistInfo != null;
+ }
+
public void clearSonReadObject() {
sonReadObjectList.clear();
}
@@ -435,13 +459,6 @@
return object != null;
}
- public void clearSubstitution() {
- if (substitutionOfObject != null) {
- substitutionOfObject.substituteObjectAndPersistInfo = null;// NOPMD
- substitutionOfObject = null;// NOPMD
- }
- }
-
public boolean isWeak() {
return weakReference != null;
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-16 09:31:31 UTC (rev 2923)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-16 10:31:27 UTC (rev 2924)
@@ -537,7 +537,7 @@
final ClassInfo classInfo = objectAndItsClassInfo.objectClassInfo;
final ClassInfo substituteClassInfo = classInfo
.getSubstituteClassInfo();
- result = objectAndItsClassInfo.substituteObjectAndPersistInfo;
+ result = objectAndItsClassInfo.getSubstituteObjectAndPersistInfo();
if (result == null) {
Class<?> substituteClass;
substituteClass = substituteClassInfo.getObjectClass();
@@ -1015,7 +1015,7 @@
ObjectIODataRecordNotFoundException, ObjectIODataCorruptedException {
// will write original object else will write the substitute
ObjectAndPersistInfo toWriteObjectAndPersistInfo =
- /**/objectAndItsPersistInfo.substituteObjectAndPersistInfo;
+ /**/objectAndItsPersistInfo.getSubstituteObjectAndPersistInfo();
if (toWriteObjectAndPersistInfo == null) {
toWriteObjectAndPersistInfo = objectAndItsPersistInfo;
}
@@ -1138,7 +1138,8 @@
protected ObjectAndPersistInfo substituteObject(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException, ObjectIODataCorruptedException {
- ObjectAndPersistInfo substituteObjectAndPersistInfo = objectAndPersistInfo.substituteObjectAndPersistInfo;
+ ObjectAndPersistInfo substituteObjectAndPersistInfo = objectAndPersistInfo
+ .getSubstituteObjectAndPersistInfo();
if (substituteObjectAndPersistInfo == null) {
final Object object = objectAndPersistInfo.getObject();
final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java 2011-10-16 09:31:31 UTC (rev 2923)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java 2011-10-16 10:31:27 UTC (rev 2924)
@@ -194,7 +194,7 @@
throws ObjectIOException {
// will write original object else will write the substitute
ObjectAndPersistInfo toWriteObjectAndItsClassInfo =
- /**/objectAndPersistInfo.substituteObjectAndPersistInfo;
+ /**/objectAndPersistInfo.getSubstituteObjectAndPersistInfo();
if (toWriteObjectAndItsClassInfo == null) {
toWriteObjectAndItsClassInfo = objectAndPersistInfo;
}
@@ -237,7 +237,7 @@
ObjectIODataRecordNotFoundException, ObjectIOClassNotFoundException {
// will write original object else will write the substitute
ObjectAndPersistInfo toWriteObjectAndItsClassInfo =
- /**/objectAndPersistInfo.substituteObjectAndPersistInfo;
+ /**/objectAndPersistInfo.getSubstituteObjectAndPersistInfo();
if (toWriteObjectAndItsClassInfo == null) {
toWriteObjectAndItsClassInfo = objectAndPersistInfo;
}
Modified: trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java 2011-10-16 09:31:31 UTC (rev 2923)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumKeptInMemory.java 2011-10-16 10:31:27 UTC (rev 2924)
@@ -61,7 +61,7 @@
}
@Override
- protected void setUp() throws Exception {
+ protected void setUp() throws Exception { // NOPMD
super.setUp();
createFilePersistence();
}
@@ -157,7 +157,8 @@
dataAccessSession.open();
bobContainer = (BobContainer) dataAccessSession.getObject("key");
- assertEquals(BAD_VALUE, EnumOrderType.BOX, bobContainer.getObject1());
+ final Object object1 = bobContainer.getObject1();
+ assertEquals(BAD_VALUE, EnumOrderType.BOX, object1);
assertEquals(BAD_VALUE, EnumStrategy.ALL_TYPES,
bobContainer.getObject2());
bobContainer.setObject1(EnumOrderType.DRAWING_ORDER_CONTAINER);
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractBinaryDump.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractBinaryDump.java 2011-10-16 09:31:31 UTC (rev 2923)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractBinaryDump.java 2011-10-16 10:31:27 UTC (rev 2924)
@@ -245,7 +245,7 @@
assertNull("reference change list must be undefined",
objectAndItsPersistInfo.referenceChangeList);
assertNull("subsititute object must not be defined",
- objectAndItsPersistInfo.substituteObjectAndPersistInfo);
+ objectAndItsPersistInfo.getSubstituteObjectAndPersistInfo());
assertEquals("son wrote list must be cleared", 0,
objectAndItsPersistInfo.sonWroteObjectArray.length);
assertNull("serialized form must be cleared",
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-16 09:31:37
|
Revision: 2923
http://joafip.svn.sourceforge.net/joafip/?rev=2923&view=rev
Author: luc_peuvrier
Date: 2011-10-16 09:31:31 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndItsClassInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-16 09:31:37
|
Revision: 2923
http://joafip.svn.sourceforge.net/joafip/?rev=2923&view=rev
Author: luc_peuvrier
Date: 2011-10-16 09:31:31 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndItsClassInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndItsClassInfo.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndItsClassInfo.java 2011-10-16 08:35:26 UTC (rev 2922)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndItsClassInfo.java 2011-10-16 09:31:31 UTC (rev 2923)
@@ -137,10 +137,6 @@
return objectClassInfo.isSubstitution();
}
- // public boolean hasProxyCallback() {
- // return objectClassInfo.hasProxyCallback();
- // }
-
public boolean classDoesNotExist() {
return objectClassInfo.classDoesNotExist();
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-16 08:35:26 UTC (rev 2922)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-16 09:31:31 UTC (rev 2923)
@@ -1096,28 +1096,31 @@
// }
// final Object object = objectAndPersistInfo.getObject();
// ASSERTX
- assert assertWritable(objectAndPersistInfo);
+ final ClassInfo toWriteClassInfo;
+ final ObjectAndPersistInfo toWriteObjectAndPersistInfo;
+
if (classInfo.isSubstituted()) {
// write substitute object
final ObjectAndPersistInfo substituteObjectAndPersistInfo =
/**/substituteObject(objectAndPersistInfo);
- final Object object = substituteObjectAndPersistInfo.getObject();
- final IObjectOutput objectOutput;
- // ASSERTX
- assert assertHasInstance(substituteObjectAndPersistInfo, object);
- objectOutput = getObjectOutput(substituteObjectAndPersistInfo.objectClassInfo);
- objectOutput.prepareWrite(substituteObjectAndPersistInfo);
objectAndPersistInfo
.setSubstituteObjectAndPersistInfo(substituteObjectAndPersistInfo);
+ toWriteClassInfo = substituteObjectAndPersistInfo.objectClassInfo;
+ toWriteObjectAndPersistInfo = substituteObjectAndPersistInfo;
+
} else {
// write original object
- final Object object = objectAndPersistInfo.getObject();
- final IObjectOutput objectOutput;
- // ASSERTX
- assert assertHasInstance(objectAndPersistInfo, object);
- objectOutput = getObjectOutput(classInfo);
- objectOutput.prepareWrite(objectAndPersistInfo);
+ toWriteClassInfo = classInfo;
+ toWriteObjectAndPersistInfo = objectAndPersistInfo;
}
+
+ assert assertWritable(toWriteObjectAndPersistInfo);
+ final Object object = toWriteObjectAndPersistInfo.getObject();
+ final IObjectOutput objectOutput;
+ // ASSERTX
+ assert assertHasInstance(toWriteObjectAndPersistInfo, object);
+ objectOutput = getObjectOutput(toWriteClassInfo);
+ objectOutput.prepareWrite(toWriteObjectAndPersistInfo);
}
private boolean assertHasInstance(
@@ -1131,6 +1134,7 @@
return true;
}
+ // FIXMELUC ______________________________________substituteObject
protected ObjectAndPersistInfo substituteObject(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException, ObjectIODataCorruptedException {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: luc p. at h. <lc...@or...> - 2011-10-16 09:26:40
|
----- Original Message ----- From: luc peuvrier at home To: joa...@li... Sent: Sunday, October 16, 2011 11:19 AM Subject: a test |
|
From: <luc...@us...> - 2011-10-16 08:35:36
|
Revision: 2922
http://joafip.svn.sourceforge.net/joafip/?rev=2922&view=rev
Author: luc_peuvrier
Date: 2011-10-16 08:35:26 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
no more static field persistence
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/entity/FilePersistenceProperties.java
trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java
trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistencePropertiesReader.java
trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/saver/StoreSaverSession.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/AbstractObjectReplacer.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerForImport.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerOnTheFly.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/InObjectsHandler.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/AbstractExporter.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/StoreAccessForExport.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/HeaderReader.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/HeaderWriter.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/IObjectIOManagerForProxyObjectIO.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectStateMgr.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/serialize/input/AbstractObjectInputGeneric.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/saver/StoreSaver3.java
trunk/joafip/src/test/java/net/sf/joafip/entity/AbstractClassForExport.java
trunk/joafip/src/test/java/net/sf/joafip/entity/ClassForExport.java
trunk/joafip/src/test/java/net/sf/joafip/entity/rel310/ClassTwo301bReplacement.java
trunk/joafip/src/test/java/net/sf/joafip/export_import/AbstractClassOne301b.java
trunk/joafip/src/test/java/net/sf/joafip/export_import/ClassOne301b.java
trunk/joafip/src/test/java/net/sf/joafip/service/TestExportImport.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel310/Abstract301Usage.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/StoreForTest.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectfortest/Bob1.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractTestIoManager.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/AbstractObjectIoManagerForProxyTest.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/ProxyCallBackForTest.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/service/rel301/ServiceRel301Tests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/service/rel400/ServiceRel400Tests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManagerTests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/store/service/objectio/serialize/ObjectIOSerializeTests.java
Removed Paths:
-------------
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/serialize/input/ObjectInputStatic.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/serialize/output/ObjectOutputStatic.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel301/TestStaticPersisted.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestAutoSaveWithStatic.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/TestObjectIOManagerStaticFieldCase.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/ObjectIOStaticTest.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/entity/FilePersistenceProperties.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/entity/FilePersistenceProperties.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/entity/FilePersistenceProperties.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -17,7 +17,6 @@
package net.sf.joafip.entity;// NOPMD
import java.io.InputStream;
-import java.util.Map;
import java.util.NavigableMap;
import java.util.Set;
import java.util.TreeMap;
@@ -76,9 +75,6 @@
private boolean recordSaveActions;
- private final Map<String, Boolean> storedStaticMap =
- /**/new TreeMap<String, Boolean>();
-
private EnumNoMoreDataAction noMoreDataAction = EnumNoMoreDataAction.DELETE_FILE;
public FilePersistenceProperties() {
@@ -336,10 +332,6 @@
return storeProperties.isUseCacheMode();
}
- public Map<String, Boolean> getStoredStaticMap() {
- return storedStaticMap;
- }
-
public void setMaintenedInMemory(final boolean maintenedInMemory) {
storeProperties.setMaintenedInMemory(maintenedInMemory);
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -736,29 +736,6 @@
storedMutableEnum((Class<? extends Enum<?>>) enumObject.getClass());
}
- @Override
- public void storedStaticField(
- final Class<?>[] classHavingStaticFieldToPersistList)
- throws FilePersistenceException {
- try {
- for (final Class<?> classHavingStaticFieldToPersist : classHavingStaticFieldToPersistList) {
- store.storedStaticField(classHavingStaticFieldToPersist);
- }
- } catch (final StoreException exception) {
- throw new FilePersistenceException(exception);
- }
- }
-
- @Override
- public void storedStaticField(final Class<?> classHavingStaticFieldToPersist)
- throws FilePersistenceException {
- try {
- store.storedStaticField(classHavingStaticFieldToPersist);
- } catch (final StoreException exception) {
- throw new FilePersistenceException(exception);
- }
- }
-
/**
* set enum state from file
*
Modified: trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -289,25 +289,6 @@
}
}
- private void setStoredStaticFromProperties()
- throws FilePersistenceClassNotFoundException,
- FilePersistenceException {
- try {
- final Map<String, Boolean> storedStaticMap = filePersistenceProperties
- .getStoredStaticMap();
- for (final Map.Entry<String, Boolean> entry : storedStaticMap
- .entrySet()) {
- if (entry.getValue().booleanValue()) {
- store.storedStaticField(entry.getKey());
- }
- }
- } catch (final StoreClassNotFoundException exception) {
- throw new FilePersistenceClassNotFoundException(exception);
- } catch (final StoreException exception) {
- throw new FilePersistenceException(exception);
- }
- }
-
private void setSubstitutionFromProperties()
throws FilePersistenceException {
final Set<FilePersistencePropertyEntry> set =
@@ -540,7 +521,6 @@
setStoreOnlyMarkedStorable(filePersistenceProperties
.isStoreOnlyMarkedStorable());
setRecordSaveActions(filePersistenceProperties.isRecordSaveActions());
- setStoredStaticFromProperties();
}
private void newAccessSessionAndReadOrCreateRootObject(
Modified: trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistencePropertiesReader.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistencePropertiesReader.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistencePropertiesReader.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -117,8 +117,6 @@
/** set substitution */
private static final String JOAFIP_SUBSTITUTE = "joafip.substitute.";
- private static final String JOAFIP_STORED_STATIC = "joafip.storedStatic.";
-
private static final String JOAFIP_MAINTENED_IN_MEMORY = "joafip.maintainedInMemory";
private static final String JOAFIP_MAINTENED_IN_MEMORY_QUOTA = "joafip.maintainedInMemoryQuota";
@@ -276,10 +274,6 @@
.setBackgroundGarbageSweepSleepTime(intValue(
key, value));
}
- } else if (key.startsWith(JOAFIP_STORED_STATIC)) {
- addStoredStatic(filePersistenceProperties,
- key.substring(JOAFIP_STORED_STATIC.length()),
- isEnabled(key, value));
} else if (key.equals(JOAFIP_MAINTENED_IN_MEMORY)) {
filePersistenceProperties.setMaintenedInMemory(isEnabled(
key, value));
@@ -422,12 +416,6 @@
value);
}
- private void addStoredStatic(
- final FilePersistenceProperties filePersistenceProperties,
- final String className, final boolean enabled) {
- filePersistenceProperties.getStoredStaticMap().put(className, enabled);
- }
-
private void addStoredMutableEnum(
final FilePersistenceProperties filePersistenceProperties,
final String enumClassName, final boolean enabled) {
Modified: trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -757,25 +757,7 @@
void storedEnum(Enum<?> enumObject) throws FilePersistenceException;
/**
- * set classes which for static field must be persisted
*
- * @param classHavingStaticFieldToPersistList
- * @throws FilePersistenceException
- */
- void storedStaticField(Class<?>[] classHavingStaticFieldToPersistList)
- throws FilePersistenceException;
-
- /**
- * set class which for static field must be persisted
- *
- * @param classHavingStaticFieldToPersist
- * @throws FilePersistenceException
- */
- void storedStaticField(Class<?> classHavingStaticFieldToPersist)
- throws FilePersistenceException;
-
- /**
- *
* @return true if manage garbage
* @throws FilePersistenceException
*/
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -123,9 +123,6 @@
private ObjectAndPersistInfoWeakReference weakReference;
- /** true if static field persistence information */
- public final boolean staticPersistence;
-
public FieldInfo[] fieldToSetInfo;
private IProxyCallBackToImplement proxyCallBack = NULL_PROXY_CALL_BACK_INSTANCE;
@@ -147,26 +144,10 @@
*/
private ObjectAndPersistInfo(final boolean valueDefined) {
super(valueDefined);
- staticPersistence = false;
proxyIntanceOrEnhanced = false;
}
/**
- * static persistence information
- *
- * @param objectClassInfo
- * @throws ObjectIOException
- */
- public ObjectAndPersistInfo(final ClassInfo objectClassInfo)
- throws ObjectIOException {
- super(objectClassInfo);
- staticPersistence = true;
- joafipReleaseId = -1;
- dataModelIdentifier = -1;
- proxyIntanceOrEnhanced = false;
- }
-
- /**
* storage info not set<br>
*
* @param object
@@ -180,7 +161,6 @@
final ClassInfo objectClassInfo) throws ObjectIOException,
ClassInfoException {
super(object, objectClassInfo);
- staticPersistence = false;
joafipReleaseId = -1;
dataModelIdentifier = -1;
this.proxyIntanceOrEnhanced = proxyIntanceOrEnhanced;
@@ -200,7 +180,6 @@
final ClassInfo objectClassInfo, final StorageInfo storageInfo)
throws ClassInfoException, ObjectIOException {
super(object, objectClassInfo);
- staticPersistence = false;
headerDataSize = storageInfo.getHeaderDataSize();
replacementDefList = storageInfo.getReplacementDefList();
joafipReleaseId = storageInfo.getJoafipReleaseId();
@@ -215,7 +194,6 @@
final int joafipReleaseId, final int dataModelIdentifier)
throws ClassInfoException {
super(object, objectClassInfo);
- staticPersistence = false;
this.replacementDefList = replacementDefList;
this.joafipReleaseId = joafipReleaseId;
this.dataModelIdentifier = dataModelIdentifier;
@@ -300,7 +278,7 @@
// ASSERTX
assert assertStoreRootDataRecordIdentifier(dataRecordIdentifier);
// ASSERTX
- assert object != null || staticPersistence : "null can not have data record identifier";
+ assert object != null : "null can not have data record identifier";
// ASSERTX
assert this.dataRecordIdentifier == null : "data record identifier already set";
this.dataRecordIdentifier = dataRecordIdentifier;
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -48,10 +48,6 @@
private final Map<IObjectIdentityKey, ObjectAndPersistInfo> stateMap =
/**/new HashMap<IObjectIdentityKey, ObjectAndPersistInfo>();
- /** map for persisted object static fields */
- private final Map<ClassInfo, ObjectAndPersistInfo> staticStateMap =
- /**/new TreeMap<ClassInfo, ObjectAndPersistInfo>();
-
/**
* map to obtains object persistence information by data record identifier
*/
@@ -152,9 +148,7 @@
// ASSERTX
assert objectAndPersistInfo.isNotWeak();
// ASSERTX
- assert staticStateMap.containsKey(objectAndPersistInfo
- .getObjectClassInfo())
- || stateMap.containsKey(objectAndPersistInfo);
+ assert stateMap.containsKey(objectAndPersistInfo);
final DataRecordIdentifier dataRecordIdentifier = objectAndPersistInfo.dataRecordIdentifier;
final ObjectAndPersistInfo previous = stateMapByIdentifier.put(
dataRecordIdentifier, objectAndPersistInfo);
@@ -312,61 +306,7 @@
referencedQueueSize++;
}
- // // FIXME-LUC _________for test
- // private boolean inQueue(final ObjectAndPersistInfo objectAndPersistInfo)
- // {
- // boolean found = false;
- // ObjectAndPersistInfo current = queueHead;
- // while (!found && current != null) {
- // found = current == objectAndPersistInfo || current.hasReferences()//
- // NOPMD
- // && current.getObject() == objectAndPersistInfo.getObject();
- // current = current.next;
- // }
- // return found;
- // }
-
/**
- *
- * @param objectClassInfo
- * the class information of the object
- * @return get or created class static field persistence information
- * @throws ObjectIOException
- */
- public ObjectAndPersistInfo getOrCreateObjectAndPersistInfoOfClass(
- final ClassInfo objectClassInfo) throws ObjectIOException {
- ObjectAndPersistInfo objectAndPersistInfo = staticStateMap
- .get(objectClassInfo);
- if (objectAndPersistInfo == null) {
- objectAndPersistInfo = createObjectAndPersistInfoOfClass(objectClassInfo);
- }
- return objectAndPersistInfo;
- }
-
- public ObjectAndPersistInfo createObjectAndPersistInfoOfClass(
- final ClassInfo objectClassInfo) throws ObjectIOException {
- ObjectAndPersistInfo objectAndPersistInfo;
- objectAndPersistInfo = new ObjectAndPersistInfo(objectClassInfo);
- objectAndPersistInfo.setObjectStateMap(this);
- staticStateMap.put(objectClassInfo, objectAndPersistInfo);
- return objectAndPersistInfo;
- }
-
- /**
- * Get existing, class static field persistence information.<br>
- *
- * @param objectClassInfo
- * the class information
- * @return get class static field persistence information, null if not
- * defined
- * @throws ObjectIOException
- */
- public ObjectAndPersistInfo getObjectAndPersistInfoOfClass(
- final ClassInfo objectClassInfo) throws ObjectIOException {
- return staticStateMap.get(objectClassInfo);
- }
-
- /**
* to know if object have persistence state associated to it
*
* @param objectAndPersistInfo
@@ -425,10 +365,6 @@
queueSize = 0;
queueNumberOfWeakRef = 0;
}
- // FIXMELUC _________________static persistence information live
- // with file persistence
- staticStateMap.clear();
- // checkNullFieldError();
}
}
@@ -542,10 +478,6 @@
}
}
- public Collection<ObjectAndPersistInfo> staticObjectAndPersistInfoSet() {
- return staticStateMap.values();
- }
-
/**
* object is accessed
*
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/saver/StoreSaverSession.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/saver/StoreSaverSession.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/saver/StoreSaverSession.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -119,12 +119,7 @@
*/
public boolean addToVisitedForSave(
final ObjectAndPersistInfo objectAndPersistInfo) {
- final boolean add;
- if (objectAndPersistInfo.staticPersistence) {
- add = true;
- } else {
- add = visitedForSave.add(objectAndPersistInfo);
- }
+ final boolean add = visitedForSave.add(objectAndPersistInfo);
if (add && keepToVisitForSaveRemoveEnabled) {
// no more keep to visit because visited for save
keepToVisitForSave.remove(objectAndPersistInfo);
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -347,12 +347,6 @@
@Deprecated
void setEnumState(Enum<?> enumObject) throws StoreException;
- void storedStaticField(Class<?> classHavingStaticFieldToPersist)
- throws StoreException;
-
- void storedStaticField(String nameOfClassHavingStaticFieldToPersist)
- throws StoreClassNotFoundException, StoreException;
-
/**
* read root object
*
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -30,7 +30,6 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;
@@ -64,7 +63,6 @@
import net.sf.joafip.store.service.binary.HelperBinaryConversion;
import net.sf.joafip.store.service.classinfo.ClassInfoException;
import net.sf.joafip.store.service.classinfo.ClassInfoFactory;
-import net.sf.joafip.store.service.garbage.GarbageException;
import net.sf.joafip.store.service.heaprecordable.HeapRecordableException;
import net.sf.joafip.store.service.objectio.ObjectIOClassNotFoundException;
import net.sf.joafip.store.service.objectio.ObjectIODataCorruptedException;
@@ -149,11 +147,6 @@
// private final Map<EnumKey, Enum> storedEnumMap = new PTreeMap<EnumKey,
// Enum>();
- /** set of class which for static field are persisted */
- private final Set<Class<?>> classHavingStaticFieldToPersistSet = new HashSet<Class<?>>();
-
- private boolean storedStaticFieldAdded = true;
-
/** exception throws in background */
private StoreException bacgroundException;
@@ -998,7 +991,6 @@
true ^ proxyMode).getObject();
assert storeRoot != null;
updateStoredEnumMap();
- updateStoredStaticField();
read = true;
} catch (final ObjectIODataRecordNotFoundException exception) {
@@ -1146,103 +1138,7 @@
}
}
- @StorableAccess
- private void addStoredStaticField() throws StoreException {
- try {
- if (!storedStaticFieldAdded) {
- storedStaticFieldAdded = true;
- Set<Long> set = storeRoot.getDataRecordIdOfpersistedStaticSet();
- if (set == null) {
- set = new PTreeSet<Long>();
- storeRoot.setDataRecordIdOfpersistedStaticSet(set);
- }
-
- for (final Class<?> classHavingStaticFieldToPersist : classHavingStaticFieldToPersistSet) {
- final ClassInfo classInfo = classInfoFactory
- .getNoProxyClassInfo(classHavingStaticFieldToPersist);
- final ObjectAndPersistInfo objectAndPersistInfo = objectIOManager
- .getOrCreateObjectAndPersistInfoOfClass(classInfo);
- if (objectAndPersistInfo.dataRecordIdentifier == null) {
- final DataRecordIdentifier dataRecordIdentifier = dataManager
- .getNewDataRecordIdentifier();
- objectAndPersistInfo
- .setDataRecordIdentifier(dataRecordIdentifier);
- set.add(dataRecordIdentifier.value);
- }
- }
- }
- } catch (final ObjectIOException exception) {
- throw new StoreException(exception);
- } catch (final ClassInfoException exception) {
- throw new StoreException(exception);
- } catch (final HeapException exception) {
- throw new StoreException(exception);
- }
- }
-
- @StorableAccess
- private void updateStoredStaticField() throws StoreException {
- try {
- final Set<Long> set = storeRoot
- .getDataRecordIdOfpersistedStaticSet();
- final List<DataRecordIdentifier> unexistingList = new LinkedList<DataRecordIdentifier>();
- if (set != null) {
- for (final long dataRecordIdentifierValue : set) {
- final DataRecordIdentifier dataRecordIdentifier = new DataRecordIdentifier(// NOPMD
- dataRecordIdentifierValue);
- if (objectIOManager.setStaticState(dataRecordIdentifier)
- .classDoesNotExist()) {
- unexistingList.add(dataRecordIdentifier);
- }
- }
- }
- if (garbageManagement) {
- for (final DataRecordIdentifier dataRecordIdentifier : unexistingList) {
- garbageManager.addToGarbage(dataRecordIdentifier);
- set.remove(dataRecordIdentifier.value);
- }
- }
-
- } catch (final ObjectIOException exception) {
- throw new StoreException(exception);
- } catch (final ObjectIODataCorruptedException exception) {
- throw new StoreException(exception);
- } catch (final ObjectIODataRecordNotFoundException exception) {
- throw new StoreException(exception);
- } catch (final ObjectIOClassNotFoundException exception) {
- throw new StoreException(exception);
- } catch (final ObjectIOInvalidClassException exception) {
- throw new StoreException(exception);
- } catch (final ObjectIONotSerializableException exception) {
- throw new StoreException(exception);
- } catch (final GarbageException exception) {
- throw new StoreException(exception);
- }
- }
-
@Override
- public void storedStaticField(final Class<?> classHavingStaticFieldToPersist)
- throws StoreException {
- classHavingStaticFieldToPersistSet.add(classHavingStaticFieldToPersist);
- storedStaticFieldAdded = false;
- }
-
- @Override
- public void storedStaticField(
- final String nameOfClassHavingStaticFieldToPersist)
- throws StoreClassNotFoundException, StoreException {
- Class<?> classHavingStaticFieldToPersist;
- try {
- classHavingStaticFieldToPersist = classInfoFactory
- .classForName(nameOfClassHavingStaticFieldToPersist);
- } catch (final ClassNotFoundException exception) {
- throw new StoreClassNotFoundException(exception);
- }
- classHavingStaticFieldToPersistSet.add(classHavingStaticFieldToPersist);
- storedStaticFieldAdded = false;
- }
-
- @Override
public void setAutoSaveEventListener(
final IAutoSaveEventListener saveEventListener) {
objectIOManager.setAutoSaveEventListener(saveEventListener);
@@ -1264,7 +1160,6 @@
throw new StoreException(FILE_ACCESS_SESSION_CLOSED);
}
- addStoredStaticField();
storeSaver.setRootOfObjectsToSave(storeRoot);
/*
* else { setStoreRootIsAlwaysUnreference(); }
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/AbstractObjectReplacer.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/AbstractObjectReplacer.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/AbstractObjectReplacer.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -47,7 +47,6 @@
/**
* @param conversionMode
- * @param staticFieldConversion
* @param objectIOManager
* @param converterList
* @param originalValuedFieldList
@@ -56,7 +55,6 @@
* @throws ConversionException
*/
public ValuedFieldList convert(final EnumConversionMode conversionMode,
- final boolean staticFieldConversion,
final IObjectIOManagerForObjectIO objectIOManager,
final Deque<ClassReplacementDef> replacementDefList,
final ValuedFieldList originalValuedFieldList,
@@ -64,14 +62,9 @@
ValuedFieldList valuedFieldList = originalValuedFieldList;
for (ClassReplacementDef replacementDef : replacementDefList) {
final ClassInfo converterClass;
- if (staticFieldConversion) {
- converterClass = replacementDef.getStaticConverterClass();
- } else {
- converterClass = replacementDef.getConverterClass();
- }
+ converterClass = replacementDef.getConverterClass();
if (ClassInfo.NULL.equals(converterClass)) {
- valuedFieldList = convertByReplacementDef(
- staticFieldConversion, valuedFieldList,
+ valuedFieldList = convertByReplacementDef(valuedFieldList,
fieldsToSetInfo, replacementDef);
if (valuedFieldList == null) {
throw new ConversionException("replacement "
@@ -92,7 +85,6 @@
}
protected abstract ValuedFieldList convertByReplacementDef(
- final boolean staticFieldConversion,
final ValuedFieldList valuedFieldList,
final FieldInfo[] fieldsToSetInfo,
final ClassReplacementDef replacementDef)
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerForImport.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerForImport.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerForImport.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -50,7 +50,6 @@
@Override
protected ValuedFieldList convertByReplacementDef(
- final boolean staticFieldConversion,
final ValuedFieldList valuedFieldList,
final FieldInfo[] fieldsToSetInfo,
final ClassReplacementDef replacementDef)
@@ -61,13 +60,8 @@
// replacement for read field by fieldInfo
final FieldInfo fieldInfo = fieldValue.getFieldInfo();
final FieldReplacementDef fieldReplacementDef;
- if (staticFieldConversion) {
- fieldReplacementDef = replacementDef
- .getReplacementStaticFieldInfo(fieldInfo);
- } else {
- fieldReplacementDef = replacementDef
- .getReplacementFieldInfo(fieldInfo);
- }
+ fieldReplacementDef = replacementDef
+ .getReplacementFieldInfo(fieldInfo);
final ObjectAndPersistInfo fiedlValue = fieldValue.getValue();
if (fieldReplacementDef == null) {
result.addNewFieldAndItsValue(index++, fieldInfo, fiedlValue);
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerOnTheFly.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerOnTheFly.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerOnTheFly.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -55,14 +55,13 @@
/**
*
- * @param staticFieldConversion
* @param objectIOManager
* @param objectAndPersistInfo
* @param fieldValueList
* @return
* @throws ConversionException
*/
- public ValuedFieldList convert(final boolean staticFieldConversion,
+ public ValuedFieldList convert(
final IObjectIOManagerForObjectIO objectIOManager,
final ObjectAndPersistInfo objectAndPersistInfo,
final List<ObjectAndPersistInfo> fieldValueList)
@@ -71,14 +70,13 @@
.getReplacementDefList();
final ValuedFieldList valuedFieldList = new ValuedFieldList(
fieldValueList);
- return convert(EnumConversionMode.ON_THE_FLY, staticFieldConversion,
- objectIOManager, replacementDefList, valuedFieldList,
+ return convert(EnumConversionMode.ON_THE_FLY, objectIOManager,
+ replacementDefList, valuedFieldList,
objectAndPersistInfo.fieldToSetInfo);
}
@Override
protected ValuedFieldList convertByReplacementDef(
- final boolean staticFieldConversion,
final ValuedFieldList valuedFieldList,
final FieldInfo[] fieldsToSetInfo,
final ClassReplacementDef replacementDef)
@@ -91,13 +89,8 @@
try {
// replacement for read field by index
final FieldReplacementDef fieldReplacementDef;
- if (staticFieldConversion) {
- fieldReplacementDef = replacementDef
- .getReplacementStaticFieldInfo(index);
- } else {
- fieldReplacementDef = replacementDef
- .getReplacementFieldInfo(index);
- }
+ fieldReplacementDef = replacementDef
+ .getReplacementFieldInfo(index);
if (fieldReplacementDef == null) {
result.setFieldValue(index, fieldValue);
} else if (!fieldReplacementDef.isDeletedField()) {
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -783,17 +783,14 @@
}
}
- protected ValuedFieldList convert(final boolean staticFieldConversion,
- final ValuedFieldList valuedFieldList,
+ protected ValuedFieldList convert(final ValuedFieldList valuedFieldList,
final Deque<ClassReplacementDef> replacementDef,
final FieldInfo[] fieldInfos) throws ImportException {
try {
final ValuedFieldList convertedValuedFieldList = OBJECT_REPLACER
- .convert(EnumConversionMode.FOR_IMPORT,
- staticFieldConversion, objectIOManager,
+ .convert(EnumConversionMode.FOR_IMPORT, objectIOManager,
replacementDef, valuedFieldList, fieldInfos);
- setFields(staticFieldConversion, fieldInfos,
- convertedValuedFieldList);
+ setFields(fieldInfos, convertedValuedFieldList);
return convertedValuedFieldList;
} catch (final ConversionException exception) {
throw new ImportException("\nfor original valued field list\n"
@@ -801,8 +798,7 @@
}
}
- private void setFields(final boolean staticFieldConversion,
- final FieldInfo[] fieldInfos,
+ private void setFields(final FieldInfo[] fieldInfos,
final ValuedFieldList convertedValuedFieldList)
throws ImportException {
// ASSERTX
@@ -812,8 +808,6 @@
// ASSERTX
assert assertFieldDefined(fieldInfo);
// ASSERTX
- assert assertStaticField(staticFieldConversion, fieldInfo);
- // ASSERTX
assert assertClassExists(fieldInfo);
Integer index = convertedValuedFieldList
.getFieldIndexByFieldInfo(fieldInfo);
@@ -886,15 +880,6 @@
return true;
}
- private boolean assertStaticField(final boolean staticFieldConversion,
- final FieldInfo fieldInfo) throws ClassInfoException,
- ImportException {
- if (fieldInfo.isStaticField() != staticFieldConversion) {
- throw new ImportException("\nbad static scope:\n" + fieldInfo);
- }
- return true;
- }
-
private boolean assertFieldDefined(final FieldInfo fieldInfo)
throws ImportException {
if (!fieldInfo.isFieldDefined()) {
@@ -1013,53 +998,6 @@
}
}
- /**
- * record class static field
- *
- * @param classInfo
- * @param dataRecordIdentifier
- * @param valuedFieldList
- * @throws ImportException
- * @throws ImportDataCorruptedException
- * @throws ImportInvalidClassException
- * @throws ImportNotSerializableException
- * @throws ImportClassNotFoundException
- * @throws ImportTooBigForSerializationException
- */
- public void recordClass(final ClassInfo classInfo,
- final DataRecordIdentifier dataRecordIdentifier,
- final ValuedFieldList valuedFieldList) throws ImportException,
- ImportDataCorruptedException, ImportInvalidClassException,
- ImportNotSerializableException, ImportClassNotFoundException,
- ImportTooBigForSerializationException {
- try {
- setObjectState(null, classInfo, valuedFieldList);
- objectIOManager.getOrCreateObjectAndPersistInfoOfClass(classInfo,
- dataRecordIdentifier);
- storeSaver.setRootOfObjectsToSave(null);
- storeSaver.saveForImport(/* null, */dummyObjectSet);
- notifyImported();
- objectIOManager.clearObjectState();
-
- } catch (final ObjectIOException exception) {
- throw new ImportException(exception);
- } catch (final StoreException exception) {
- throw new ImportException(exception);
- } catch (final StoreDataCorruptedException exception) {
- throw new ImportDataCorruptedException(exception);
- } catch (final StoreInvalidClassException exception) {
- throw new ImportInvalidClassException(exception);
- } catch (final StoreNotSerializableException exception) {
- throw new ImportNotSerializableException(exception);
- } catch (final StoreClassNotFoundException exception) {
- throw new ImportClassNotFoundException(exception);
- } catch (final StoreTooBigForSerializationException exception) {
- throw new ImportTooBigForSerializationException(exception);
- }
- objectMap.clear();
- dummyObjectSet.clear();
- }
-
protected ClassDef getClassReplacementDef(final Class<?> clazz)
throws ImportException {
try {
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/InObjectsHandler.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/InObjectsHandler.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/InObjectsHandler.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -205,36 +205,36 @@
}
private void endStaticElement() throws SAXException {
- try {
- final ClassDef classDef = currentObject.getClassDef();
- final DataRecordIdentifier dataRecordIdentifier = currentObject
- .getDataRecordIdentifier();
- final ValuedFieldList valuedFieldList = xmlImporter
- .convert(true, currentObject.getValuedFieldList(),
- classDef.getReplacementDef(),
- currentObject.getFieldsInfo());
- final ClassInfo classInfo = classDef.getReplacementClass();
- xmlImporter.recordClass(classInfo, dataRecordIdentifier,
- valuedFieldList);
- } catch (final ImportException exception) {
- logger.error(END_ELEMENT_ERROR + location(), exception);
- throw new SAXException(END_ELEMENT_ERROR + location(), exception);
- } catch (final ImportDataCorruptedException exception) {
- logger.error(END_ELEMENT_ERROR + location(), exception);
- throw new SAXException(END_ELEMENT_ERROR + location(), exception);
- } catch (final ImportInvalidClassException exception) {
- logger.error(END_ELEMENT_ERROR + location(), exception);
- throw new SAXException(END_ELEMENT_ERROR + location(), exception);
- } catch (final ImportNotSerializableException exception) {
- logger.error(END_ELEMENT_ERROR + location(), exception);
- throw new SAXException(END_ELEMENT_ERROR + location(), exception);
- } catch (final ImportClassNotFoundException exception) {
- logger.error(END_ELEMENT_ERROR + location(), exception);
- throw new SAXException(END_ELEMENT_ERROR + location(), exception);
- } catch (final ImportTooBigForSerializationException exception) {
- logger.error(END_ELEMENT_ERROR + location(), exception);
- throw new SAXException(END_ELEMENT_ERROR + location(), exception);
- }
+ // try {
+ // final ClassDef classDef = currentObject.getClassDef();
+ // final DataRecordIdentifier dataRecordIdentifier = currentObject
+ // .getDataRecordIdentifier();
+ // final ValuedFieldList valuedFieldList = xmlImporter
+ // .convert(true, currentObject.getValuedFieldList(),
+ // classDef.getReplacementDef(),
+ // currentObject.getFieldsInfo());
+ // final ClassInfo classInfo = classDef.getReplacementClass();
+ // xmlImporter.recordClass(classInfo, dataRecordIdentifier,
+ // valuedFieldList);
+ // } catch (final ImportException exception) {
+ // logger.error(END_ELEMENT_ERROR + location(), exception);
+ // throw new SAXException(END_ELEMENT_ERROR + location(), exception);
+ // } catch (final ImportDataCorruptedException exception) {
+ // logger.error(END_ELEMENT_ERROR + location(), exception);
+ // throw new SAXException(END_ELEMENT_ERROR + location(), exception);
+ // } catch (final ImportInvalidClassException exception) {
+ // logger.error(END_ELEMENT_ERROR + location(), exception);
+ // throw new SAXException(END_ELEMENT_ERROR + location(), exception);
+ // } catch (final ImportNotSerializableException exception) {
+ // logger.error(END_ELEMENT_ERROR + location(), exception);
+ // throw new SAXException(END_ELEMENT_ERROR + location(), exception);
+ // } catch (final ImportClassNotFoundException exception) {
+ // logger.error(END_ELEMENT_ERROR + location(), exception);
+ // throw new SAXException(END_ELEMENT_ERROR + location(), exception);
+ // } catch (final ImportTooBigForSerializationException exception) {
+ // logger.error(END_ELEMENT_ERROR + location(), exception);
+ // throw new SAXException(END_ELEMENT_ERROR + location(), exception);
+ // }
}
private void endArrayElement() throws SAXException {
@@ -271,7 +271,7 @@
try {
final ClassDef classDef = currentObject.getClassDef();
final ValuedFieldList valuedFieldList = xmlImporter
- .convert(false, currentObject.getValuedFieldList(),
+ .convert(currentObject.getValuedFieldList(),
classDef.getReplacementDef(),
currentObject.getFieldsInfo());
final Object object = currentObject.getObject();
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/AbstractExporter.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/AbstractExporter.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/AbstractExporter.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -291,7 +291,8 @@
.getObject();
final int dataModelIdentifier = dataModelIdentifier(storeRoot);
- final Set<Long> dataRecordIdOfpersistedStaticSet = dataRecordIdOfpersistedStaticSet(storeRoot);
+ // final Set<Long> dataRecordIdOfpersistedStaticSet =
+ // dataRecordIdOfpersistedStaticSet(storeRoot);
beginExportVisit(Version.JOAFIP_RELEASE, dataModelIdentifier,
dataRecordIdentifier.value);
@@ -305,41 +306,40 @@
dataRecordIdentifier = exportStoreQue.pollFirst();
while (dataRecordIdentifier != null) {
- if (dataRecordIdOfpersistedStaticSet != null
- && dataRecordIdOfpersistedStaticSet
- .contains(dataRecordIdentifier.value)) {
- final ClassInfo classInfo = storeAccessForExport
- .getClassInfo(dataRecordIdentifier);
- storeAccessForExport.setStaticState(dataRecordIdentifier);
- exportStatic(classInfo, dataRecordIdentifier);
+ // if (dataRecordIdOfpersistedStaticSet != null
+ // && dataRecordIdOfpersistedStaticSet
+ // .contains(dataRecordIdentifier.value)) {
+ // final ClassInfo classInfo = storeAccessForExport
+ // .getClassInfo(dataRecordIdentifier);
+ // storeAccessForExport.setStaticState(dataRecordIdentifier);
+ // exportStatic(classInfo, dataRecordIdentifier);
+ // } else {
+ objectAndItsClassInfo =
+ /**/storeAccessForExport
+ .createGenericObjectReadingInStoreNotLazy(dataRecordIdentifier);
+ final ClassInfo objectClassInfo = objectAndItsClassInfo.objectClassInfo;
+ if (exportPersistedClassByteCode) {
+ exportClass(objectClassInfo);
+ }
+ final Object object = objectAndItsClassInfo.getObject();
+ if (objectClassInfo.isStringType()) {
+ exportString(dataRecordIdentifier, (String) object);
+ } else if (objectClassInfo.isArrayType()) {
+ exportArray(dataRecordIdentifier, object, objectClassInfo);
+ } else if (objectClassInfo.isEnumType()) {
+ FieldInfo[] fieldInfos;
+ fieldInfos = objectClassInfo
+ .allDeclaredFieldsWithTransientWithoutStatic();
+ exportEnum(dataRecordIdentifier, object, objectClassInfo,
+ fieldInfos);
} else {
- objectAndItsClassInfo =
- /**/storeAccessForExport
- .createGenericObjectReadingInStoreNotLazy(dataRecordIdentifier);
- final ClassInfo objectClassInfo = objectAndItsClassInfo.objectClassInfo;
- if (exportPersistedClassByteCode) {
- exportClass(objectClassInfo);
- }
- final Object object = objectAndItsClassInfo.getObject();
- if (objectClassInfo.isStringType()) {
- exportString(dataRecordIdentifier, (String) object);
- } else if (objectClassInfo.isArrayType()) {
- exportArray(dataRecordIdentifier, object,
- objectClassInfo);
- } else if (objectClassInfo.isEnumType()) {
- FieldInfo[] fieldInfos;
- fieldInfos = objectClassInfo
- .allDeclaredFieldsWithTransientWithoutStatic();
- exportEnum(dataRecordIdentifier, object,
- objectClassInfo, fieldInfos);
- } else {
- FieldInfo[] fieldInfos;
- fieldInfos = objectClassInfo
- .allDeclaredFieldsWithTransientWithoutStatic();
- exportGeneric(dataRecordIdentifier, object,
- objectClassInfo, fieldInfos);
- }
+ FieldInfo[] fieldInfos;
+ fieldInfos = objectClassInfo
+ .allDeclaredFieldsWithTransientWithoutStatic();
+ exportGeneric(dataRecordIdentifier, object,
+ objectClassInfo, fieldInfos);
}
+ // }
storeAccessForExport.clearMemory();
numberExported = exportStoreQue.getNumberExported();
dataRecordIdentifier = exportStoreQue.pollFirst();
@@ -599,6 +599,7 @@
protected abstract void exportString(final int objectIdentifier,
final String string) throws StoreException;
+ @SuppressWarnings("unused")
private void exportStatic(final ClassInfo objectClassInfo,
final DataRecordIdentifier objectDataRecordIdentifier)
throws StoreException {
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/StoreAccessForExport.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/StoreAccessForExport.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/StoreAccessForExport.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -182,33 +182,6 @@
return objectAndItsClassInfo;
}
- public void setStaticState(final DataRecordIdentifier dataRecordIdentifier)
- throws StoreException, StoreClassNotFoundException,
- StoreInvalidClassException, StoreDataCorruptedException,
- StoreNotSerializableException {
- try {
- objectIOManager.setStaticState(dataRecordIdentifier);
- } catch (ObjectIOException exception) {
- throw new StoreException(FOR_DATA_RECORD + dataRecordIdentifier,
- exception);
- } catch (ObjectIODataRecordNotFoundException exception) {
- throw new StoreException(FOR_DATA_RECORD + dataRecordIdentifier,
- exception);
- } catch (ObjectIOClassNotFoundException exception) {
- throw new StoreClassNotFoundException(FOR_DATA_RECORD
- + dataRecordIdentifier, exception);
- } catch (ObjectIOInvalidClassException exception) {
- throw new StoreInvalidClassException(FOR_DATA_RECORD
- + dataRecordIdentifier, exception);
- } catch (ObjectIODataCorruptedException exception) {
- throw new StoreDataCorruptedException(FOR_DATA_RECORD
- + dataRecordIdentifier, exception);
- } catch (ObjectIONotSerializableException exception) {
- throw new StoreNotSerializableException(FOR_DATA_RECORD
- + dataRecordIdentifier, exception);
- }
- }
-
/**
*
* @param object
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -127,26 +127,6 @@
return dataRecordIdentifier;
}
- @Override
- public ObjectAndPersistInfo getOrCreateObjectAndPersistInfoOfClass(
- final ClassInfo objectClassInfo) throws ObjectIOException {
- return objectStateMgr
- .getOrCreateObjectAndPersistInfoOfClass(objectClassInfo);
- }
-
- @Override
- public ObjectAndPersistInfo createObjectAndPersistInfoOfClass(
- final ClassInfo objectClassInfo) throws ObjectIOException {
- return objectStateMgr
- .createObjectAndPersistInfoOfClass(objectClassInfo);
- }
-
- @Override
- public ObjectAndPersistInfo getObjectAndPersistInfoOfClass(
- final ClassInfo objectClassInfo) throws ObjectIOException {
- return objectStateMgr.getObjectAndPersistInfoOfClass(objectClassInfo);
- }
-
public void clearObjectState() throws ObjectIOException {
objectStateMgr.clear();
}
@@ -193,10 +173,6 @@
return objectStateMgr.getNumberOfReferenced();
}
- public Collection<ObjectAndPersistInfo> staticObjectAndPersistInfoSet() {
- return objectStateMgr.staticObjectAndPersistInfoSet();
- }
-
protected void objectIsAccessedDelegate(
final ObjectAndPersistInfo proxyObjectAndPersistInfo) {
objectStateMgr.objectIsAccessed(proxyObjectAndPersistInfo);
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-16 04:45:29 UTC (rev 2921)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-16 08:35:26 UTC (rev 2922)
@@ -72,7 +72,6 @@
import net.sf.joafip.store.service.objectio.serialize.input.ObjectInputSerialize;
import net.sf.joafip.store.service.objectio.serialize.input.ObjectInputSerializeGZipped;
import net.sf.joafip.store.service.objectio.serialize.input.ObjectInputSerializeZipped;
-import net.sf.joafip.store.service.objectio.serialize.input.ObjectInputStatic;
import net.sf.joafip.store.service.objectio.serialize.output.IObjectOutput;
import net.sf.joafip.store.service.objectio.serialize.output.ObjectIOOutputStream;
import net.sf.joafip.store.service.objectio.serialize.output.ObjectOutputExternalizable;
@@ -85,7 +84,6 @@
import net.sf.joafip.store.service.objectio.serialize.output.ObjectOutputSerialize;
import net.sf.joafip.store.service.objectio.serialize.output.ObjectOutputSerializeGZipped;
import net.sf.joafip.store.service.objectio.serialize.output.ObjectOutputSerializeZipped;
-import net.sf.joafip.store.service.objectio.serialize.output.ObjectOutputStatic;
import net.sf.joafip.store.service.proxy.IInstanceFactory;
import net.sf.joafip.store.service.proxy.IProxyManagerForObjectIO;
import net.sf.joafip.store.service.proxy.ProxyException;
@@ -132,10 +130,6 @@
protected final IObjectOutput[] objectOutputs;
- private final ObjectInputStatic objectInputStatic;
-
- protected ObjectOutputStatic objectOutputStatic;
-
private final ObjectIOOutputStream objectIOOutputStream;
private final ObjectIOInputStream objectIOInputStream;
@@ -325,11 +319,6 @@
objectInputs[EnumObjectInput.OBJECT_INPUT_SPECIFIC.ordinal()] = objectIODummy;
objectOutputs[EnumObjectOutput.OBJECT_OUTPUT_SPECIFIC.ordinal()] = objectIODummy;
- objectInputStatic = new ObjectInputStatic(this, classInfoFactory,
- proxyManager2, helperBinaryConversion);
- objectOutputStatic = new ObjectOutputStatic(this, classInfoFactory,
- proxyManager2, helperBinaryConversion);
-
objectIOInputStream.setObjectIOGeneric(objectInputImmediateGeneric);
objectIOOutputStream.setObjectIOGeneric(objectOutputGeneric);
@@ -666,8 +655,6 @@
headerReader.read(binary, dataRecordIdentifier);
final ClassInfo classInfo = headerReader.objectClassInfo;
assertStorable(classInfo);
- // ASSERTX
- assert assertNotStaticPersistence(classInfo);
final Deque<ClassReplacementDef> replacementDef = replacementDefForHeader(classInfo);
final ObjectAndPersistInfo objectAndPersistInfo;
@@ -767,15 +754,6 @@
return true;
}
- private boolean assertNotStaticPersistence(final ClassInfo classInfo)
- throws ObjectIOException {
- if (headerReader.staticPersistence) {
- throw new ObjectIOException("static field state of class "
- + classInfo.toString());
- }
- return true;
- }
-
protected abstract void notToGarbage(
final DataRecordIdentifier dataRecordIdentifier,
final ObjectAndPersistInfo objectAndPersistInfo)
@@ -795,8 +773,6 @@
assertNotSubstituted(objectAndPersistInfo);
// ASSERTX
assert assertHasPersistenceState(objectAndPersistInfo);
- // ASSERTX
- assert !objectAndPersistInfo.staticPersistence : "static state can not be set trought proxy";
final ClassInfo classInfo = objectAndPersistInfo.objectClassInfo;
// ASSERTX
assert assertStorable(classInfo);
@@ -1018,11 +994,7 @@
final ClassInfo classInfo = headerReader.objectClassInfo;
final IObjectInput objectInput;
try {
- if (headerReader.staticPersistence) {
- objectInput = objectInputStatic;
- } else {
- objectInput = getObjectInput(classInfo, false);
- }
+ objectInput = getObjectInput(classInfo, false);
final DataRecordIdentifier[] referencedList = objectInput
.getReferencedList(binary, headerReader.headerDataSize);
Class<?> objectClass;
@@ -1060,17 +1032,11 @@
// ASSERTX
assert classInfo != null && classInfo != ClassInfo.NULL : "class information for object not defined";
final IObjectOutput objectOutput;
- final boolean staticPersistence = objectAndItsPersistInfo.staticPersistence;
- if (staticPersistence) {
- objectOutput = objectOutputStatic;
- } else {
- objectOutput = getObjectOutput(classInfo);
- }
+ objectOutput = getObjectOutput(classInfo);
final int byteSize = objectOutput.byteSize(toWriteObjectAndPersistInfo,
HEADER_DATA_SIZE);
final byte[] binary = new byte[byteSize];
- final int offset = headerWriter.write(classInfo, binary,
- staticPersistence);
+ final int offset = headerWriter.write(classInfo, binary);
if (offset != HEADER_DATA_SIZE) {
throw new ObjectIOException("header data size missmatch");
}
@@ -1089,24 +1055,21 @@
private boolean assertWritable(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException {
- if (!objectAndPersistInfo.staticPersistence) {
- final Object object = objectAndPersistInfo.getObject();
- if (object == null) {
- throw new ObjectIOException("can not save null");
+ final Object object = objectAndPersistInfo.getObject();
+ if (object == null) {
+ throw new ObjectIOException("can not save null");
+ }
+ try {
+ if (!ProxyManager2.isLoadedOrNotAProxy(object)) {
+ throw new ObjectIOException("can not save not loaded object "
+ + object.getClass() + "@"
+ + System.identityHashCode(object)
+ + ", objectAndPersistInfo.isLoaded()="
+ + objectAndPersistInfo.isLoaded());
}
- try {
- if (!ProxyManager2.isLoadedOrNotAProxy(object)) {
- throw new ObjectIOException(
- "can not save not loaded object "
- + object.getClass() + "@"
- + System.identityHashCode(object)
- + ", objectAndPersistInfo.isLoaded()="
- + objectAndPersistInfo.isLoaded());
- }
- } catch (final ProxyException exception) {
- throw new ObjectIOException("can not save not loaded object",
- exception);
- }
+ } catch (final ProxyException exception) {
+ throw new ObjectIOException("can not save not loaded object",
+ exception);
}
return true;
}
@@ -1140,15 +1103,9 @@
/**/substituteObject(objectAndPersistInfo);
final Object object = substituteObjectAndPersistInfo.getObject();
final IObjectOutput objectOutput;
- if (objectAndPersistInfo.staticPersistence) {
- // ASSERTX
- assert assertNoInstance(substituteObjectAndPersistInfo, object);
- objectOutput = objectOutputStatic;
- } else {
- // ASSERTX
- assert assertHasInstance(substituteObjectAndPersistInfo, object);
- objectOutput = getObjectOutput(substituteObjectAndPersistInfo.objectClassInfo);
- }
+ // ASSERTX
+ assert assertHasInstance(substituteObjectAndPersistInfo, object);
+ objectOutput = getObjectOutput(substituteObjectAndPersistInfo.objectClassInfo);
objectOutput.prepareWrite(substituteObjectAndPersistInfo);
objectAndPersistInfo
.setSubstituteObjectAndPersistInfo(substituteObjectAndPersistInfo);
@@ -1156,15 +1113,9 @@
// write original object
final Object object = objectAndPersistInfo.getObject();
final IObjectOutput objectOutput;
- if (objectAndPersistInfo.staticPersistence) {
- // ASSERTX
- assert assertNoInstance(objectAndPersistInfo, object);
- objectOutput = objectOutputStatic;
- } else {
- // ASSERTX
- assert assertHasInstance(objectAndPersistInfo, object);
- objectOutput = getObjectOutput(classInfo);
- }
+ // ASSERTX
+ assert assertHasInstance(objectAndPersistInfo, object);
+ objectOutput = getObjectOutput(classInfo);
objectOutput.prepareWrite(objectAndPersistInfo);
}
}
@@ -1180,17 +1131,6 @@
return true;
}
- private boolean assertNoInstance(
- final ObjectAndPersistInfo substituteObjectAndPersistInfo,
- final Object object) throws ObjectIOException {
- if (object != null) {
- throw new ObjectIOException(
- "must not have instance for static persistence "
- + substituteObjectAndPersistInfo.toString());
- }
- return true;
- }
-
protected ObjectAndPersistInfo substituteObject(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException, ObjectIODataCorruptedException {
@@ -1212,86 +1152,6 @@
return substituteObjectAndPersistInfo;
}
- /**
- * set static state of a class
- *
- * @param dataRecordIdentifier
- * data record identifier of record containing object state
- * @return persistence information, null if class does not exist
- * @throws ObjectIOException
- * @throws ObjectIODataCorruptedException
- * @throws ObjectIODataRecordNotFoundException
- * @throws ObjectIOClassNotFoundException
- * @throws ObjectIOInvalidClassException
- * @throws ObjectIONotSerializableException
- */
- public ObjectAndPersistInfo setStaticState(
- final DataRecordIdentifier dataRecordIdentifier)
- throws ObjectIOException, ObjectIODataCorruptedException,
- ObjectIODataRecordNotFoundException,
- ObjectIOClassNotFoundException, ObjectIOInvalidClassException,
- ObjectIONotSerializableException {
- final byte[] binary = getDataOfDataRecord(dataRecordIdentifier);
- headerReader.read(binary, dataRecordIdentifier);
- final ClassInfo classInfo = headerReader.objectClassInfo;
- // ASSERTX
- assert assertStorable(classInfo);
- // ASSERTX
- assert assertStaticPersistence(classInfo);
- final Deque<ClassReplacementDef> replacementDef = replacementDefForHeader(classInfo);
- final ObjectAndPersistInfo objectAndPersistInfo;
- final int offset = headerReader.headerDataSize;
-
- if (replacementDef.isEmpty()) {
- if (classInfo.classExists()) {
- objectAndPersistInfo = createObjectAndPersistInfoOfClass(classInfo);
- objectAndPersistInfo
- .setDataRecordIdentifier(dataRecordIdentifier);
- objectAndPersistInfo.setReplacementDefList(replacementDef);
- objectInputStatic.setObjectStaticState(objectAndPersistInfo,
- binary, offset);
- // not a new object to add to storage, created reading in
- // storage
- objectAndPersistInfo.setNewObject(false);
- } else {
- objectAndPersistInfo = new ObjectAndPersistInfo(classInfo);
- }
- } else {
-
- assertOriginalClassInfo(classInfo, replacementDef);
-
- final ClassInfo replacementClassInfo = replacementDef.peekLast()
- .getReplacementClass();
-
- if (replacementClassInfo.classExists()) {
- objectAndPersistInfo = createObjectAndPersistInfoOfClass(replacementClassInfo);
- objectAndPersistInfo
- .setDataRecordIdentifier(dataRecordIdentifier);
- objectAndPersistInfo.setReplacementDefList(replacementDef);
- objectInputStatic.setObjectState(objectAndPersistInfo, binary,
- offset);
- } else {
- objectAndPersistInfo = new ObjectAndPersistInfo(
- replacementClassInfo);
- }
-
- }
- objectAndPersistInfo.setJoafipReleaseId(headerReader.joafipReleaseId);
- objectAndPersistInfo
- .setDataModelIdentifier(headerReader.dataModelIdentifier);
- return objectAndPersistInfo;
- }
-
- private boolean assertStaticPersistence(final ClassInfo classInfo)
- throws ObjectIOException {
- if (!headerReader.staticPersistence) {
- throw new ObjectIOException(
- "not a record for static field state of class "
- + classInfo.toString());
- }
- return true;
- }
-
private boolean assertStorable(final ClassInfo classInfo)
throws ObjectIOException {
if (classInfo.isNotStorable()) {
@@ -1302,43 +1162,6 @@
}
@Override
- public ObjectAndPersistInfo getOrCreateObjectAndPersistInfoOfClass(
- final ClassInfo objectClassInfo,
- final DataRecordIdentifier dataRecordIdentifier)
- throws ObjectIOException {
-
- // final ObjectAndPersistInfo objectPersistInfoOfObject =
- // /**/getOrCreateObjectAndPersistInfoOfClass(objectClassInfo);
- // objectPersistInfoOfObject.setDataRecordIdentifier(dataRecordIdentifier);
- // dataRecordIdentifierAssociatedToObjectSetted(objectPersistInfoOfObject);
- ObjectAndPersistInfo objectPersistInfoOfObject =
- /**/getObjectAndPersistInfoOfClass(objectClassInfo);
- if (objectPersistInfoOfObject == null) {
- objectPersistInfoOfObject = createObjectAndPersistInfoOfClass(objectClassInfo);
- objectPersistInfoOfObject
- .setDataRecordIdentifier(dataRecordIdentifier);
- dataRecordIdentifierAssociatedToObjectSetted(objectPersistInfoOfObject);
- } else if (objectPersistInfoOfObject.dataRecordIdentifier.value != dataRecordIdentifier.value) {
- throw new ObjectIOException("data record id...
[truncated message content] |
|
From: <luc...@us...> - 2011-10-16 08:35:34
|
Revision: 2922
http://joafip.svn.sourceforge.net/joafip/?rev=2922&view=rev
Author: luc_peuvrier
Date: 2011-10-16 08:35:26 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
no more static field persistence
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/entity/FilePersistenceProperties.java
trunk/joafip/src/main/java/net/sf/joafip/service/AbstractFilePersistenceDelegatingToStore.java
trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistencePropertiesReader.java
trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/saver/StoreSaverSession.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/Store.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/AbstractObjectReplacer.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerForImport.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/conversion/ObjectReplacerOnTheFly.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/InObjectsHandler.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/AbstractExporter.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/StoreAccessForExport.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/HeaderReader.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/HeaderWriter.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/IObjectIOManagerForProxyObjectIO.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectStateMgr.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/serialize/input/AbstractObjectInputGeneric.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/saver/StoreSaver3.java
trunk/joafip/src/test/java/net/sf/joafip/entity/AbstractClassForExport.java
trunk/joafip/src/test/java/net/sf/joafip/entity/ClassForExport.java
trunk/joafip/src/test/java/net/sf/joafip/entity/rel310/ClassTwo301bReplacement.java
trunk/joafip/src/test/java/net/sf/joafip/export_import/AbstractClassOne301b.java
trunk/joafip/src/test/java/net/sf/joafip/export_import/ClassOne301b.java
trunk/joafip/src/test/java/net/sf/joafip/service/TestExportImport.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel310/Abstract301Usage.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/StoreForTest.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectfortest/Bob1.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractTestIoManager.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/AbstractObjectIoManagerForProxyTest.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/ProxyCallBackForTest.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/service/rel301/ServiceRel301Tests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/service/rel400/ServiceRel400Tests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/store/service/objectio/manager/ObjectIOManagerTests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/store/service/objectio/serialize/ObjectIOSerializeTests.java
Removed Paths:
-------------
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/serialize/input/ObjectInputStatic.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/serialize/output/ObjectOutputStatic.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel301/TestStaticPersisted.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestAutoSaveWithStatic.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/TestObjectIOManagerStaticFieldCase.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/ObjectIOStaticTest.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-16 04:45:37
|
Revision: 2921
http://joafip.svn.sourceforge.net/joafip/?rev=2921&view=rev
Author: luc_peuvrier
Date: 2011-10-16 04:45:29 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
auto save done when create new instance
Modified Paths:
--------------
trunk/joafip/doc/_todo.txt
trunk/joafip/src/main/java/net/sf/joafip/reflect/HelperReflect.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/EnhanceCodeGenerator.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/ExportStoreQue.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/DetachedProxyCallBack.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackProxyDelegation.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackToImplement.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/NullProxyCallBack.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyCallBack.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyManager2.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/StaticProxyCallBack.java
trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/BobASDelegatingListenDelegate.java
trunk/joafip/src/test/java/net/sf/joafip/service/TestTreeListIteratorIntercept.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestAutoSave.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/ProxyCallBackForTest.java
trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/PMapKeyNavigableSet.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/service/rel400/ServiceRel400Tests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/store/service/proxy/ProxyTests.java
Added Paths:
-----------
trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/KeyDef.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestConstructEntrySetIteratorOfPMapKeyNavigableSet.java
trunk/joafip/src/test/java/net/sf/joafip/store/entity/proxy/BobCallInConstructor.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/TestProxyCreationConstructed.java
Modified: trunk/joafip/doc/_todo.txt
===================================================================
--- trunk/joafip/doc/_todo.txt 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/doc/_todo.txt 2011-10-16 04:45:29 UTC (rev 2921)
@@ -22,6 +22,7 @@
- export speed up
- kept in memory for object referenced by static field
- check field access constraints, direct field access disallow to force use of getter and/or setter
+- static field persistence feature removed because a non sense
minor changes:
- added search last in red black tree manager
@@ -94,10 +95,8 @@
garbage management error with jhupedom
-keptinmemory problem
+kept in memory problem
-static field persistence problem
-
joafip reflect project (see setAccessible )
- joafip
- joafip-log4j
Modified: trunk/joafip/src/main/java/net/sf/joafip/reflect/HelperReflect.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/reflect/HelperReflect.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/reflect/HelperReflect.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -573,6 +573,12 @@
}
stringBuilder.append('\n');
}
+ final Constructor<?>[] constructors = objectClass
+ .getDeclaredConstructors();
+ stringBuilder.append("constructors:\n");
+ for (Constructor<?> constructor : constructors) {
+ stringBuilder.append(constructor.toString());
+ }
return new ReflectException(stringBuilder.toString(), exception);
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -460,6 +460,7 @@
public void clearSubstitution() {
if (substitutionOfObject != null) {
substitutionOfObject.substituteObjectAndPersistInfo = null;// NOPMD
+ substitutionOfObject = null;// NOPMD
}
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -425,7 +425,7 @@
queueSize = 0;
queueNumberOfWeakRef = 0;
}
- // FIXMELUC ____________________static persistence information live
+ // FIXMELUC _________________static persistence information live
// with file persistence
staticStateMap.clear();
// checkNullFieldError();
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -588,7 +588,7 @@
} catch (final ClassInfoException exception) {
throw new StoreException(exception);
}
- // FIXMELUC _______________________not good classInfo.setKeptInMemory()
+ // FIXMELUC ___________________not good classInfo.setKeptInMemory()
classInfo.setKeptInMemory();
setSubstituteObjectManager(objectClass, KeptInMemoryObjectKey.class,
keptInMemorySubstituteObjectManager);
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/EnhanceCodeGenerator.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/EnhanceCodeGenerator.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/EnhanceCodeGenerator.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -85,6 +85,11 @@
private String forceLoadMethodDesc;
+ private static final String SET_IN_CONSTRUCTION_METHOD_NAME =
+ /**/"setInConstruction$JOAFIP$";
+
+ private String setInConstructionMethodDesc;
+
private static final String[] FORCE_LOAD_EXCEPTION = new String[] {
/**/Type.getInternalName(ObjectIOException.class),
/**/Type.getInternalName(ObjectIODataRecordNotFoundException.class),
@@ -189,6 +194,11 @@
forceLoadMethodDesc = Type.getMethodDescriptor(method);
method = IProxyCallBack.class.getMethod(
+ /**/SET_IN_CONSTRUCTION_METHOD_NAME,
+ /**/new Class[] { boolean.class });
+ setInConstructionMethodDesc = Type.getMethodDescriptor(method);
+
+ method = IProxyCallBack.class.getMethod(
/**/UNLOAD_METHOD_NAME,
/**/NO_PARAMETERS);
unloadMethodDesc = Type.getMethodDescriptor(method);
@@ -456,6 +466,33 @@
methodVisitor.visitEnd();
/*
+ * setInConstruction
+ */
+
+ methodVisitor = classWriter.visitMethod(
+ /**/ACC_PUBLIC,
+ /**/SET_IN_CONSTRUCTION_METHOD_NAME,
+ /**/setInConstructionMethodDesc,
+ /**/null,
+ /**/null);
+ methodVisitor.visitCode();
+ methodVisitor.visitVarInsn(ALOAD, 0);
+ methodVisitor.visitFieldInsn(
+ /**/GETFIELD,
+ /**/classInternalName,
+ /**/PROXY_CALL_BACK_FIELD_NAME, I_PROXY_CALL_BACK_DELEGATION_DESC);
+ methodVisitor.visitVarInsn(ILOAD, 1);
+ methodVisitor.visitMethodInsn(
+ /**/INVOKEINTERFACE,
+ /**/I_PROXY_CALL_BACK_INTERFACE,
+ /**/SET_IN_CONSTRUCTION_METHOD_NAME,
+ /**/setInConstructionMethodDesc);
+ methodVisitor.visitInsn(RETURN);
+ // FIXMELUC _visitmaxs call needed ?
+ methodVisitor.visitMaxs(0, 0);
+ methodVisitor.visitEnd();
+
+ /*
* unload
*/
methodVisitor = classWriter.visitMethod(
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/ExportStoreQue.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/ExportStoreQue.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/ExportStoreQue.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -80,12 +80,6 @@
heapDataManagerForSet.stopService();
}
- // FIXMELUC ___________________no more needed because of auto save
- // public void save() throws HeapException {
- // heapDataManagerForQue.flush();
- // heapDataManagerForSet.flush();
- // }
-
public DataRecordIdentifier pollFirst() throws HeapException {
return heapDataManagerForQue.removeFirstDataRecord();
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/DetachedProxyCallBack.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/DetachedProxyCallBack.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/DetachedProxyCallBack.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -121,4 +121,10 @@
public IObjectIOManagerForProxyObjectIO getObjectIOManager$JOAFIP$() {
throw new UnsupportedOperationException();
}
+
+ @SuppressWarnings("PMD")
+ @Override
+ public void setInConstruction$JOAFIP$(final boolean inConstruction) {
+ throw new UnsupportedOperationException();
+ }
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackProxyDelegation.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackProxyDelegation.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackProxyDelegation.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -110,4 +110,7 @@
@SuppressWarnings("PMD")
ObjectAndPersistInfo getInstance$JOAFIP$();
+
+ @SuppressWarnings("PMD")
+ void setInConstruction$JOAFIP$(boolean inConstruction);
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackToImplement.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackToImplement.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackToImplement.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -66,4 +66,7 @@
@Fortest
@SuppressWarnings("PMD")
int getInObjectCount$JOAFIP$();
+
+ @SuppressWarnings("PMD")
+ boolean isAutoSaveEnabled$JOAFIP$();
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/NullProxyCallBack.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/NullProxyCallBack.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/NullProxyCallBack.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -179,4 +179,16 @@
public int getInObjectCount$JOAFIP$() {
throw new UnsupportedOperationException();
}
+
+ @Override
+ @SuppressWarnings("PMD")
+ public boolean isAutoSaveEnabled$JOAFIP$() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ @SuppressWarnings("PMD")
+ public void setInConstruction$JOAFIP$(final boolean inConstruction) {
+ throw new UnsupportedOperationException();
+ }
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyCallBack.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyCallBack.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyCallBack.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -88,6 +88,8 @@
private final boolean autoSaveEnabled;
+ private boolean inConstruction;
+
public static void setUseJavaAgent(final boolean useJavaAgent) {
ProxyCallBack.useJavaAgent = useJavaAgent;
}
@@ -206,6 +208,7 @@
}
if (!loaded
+ && !inConstruction
&& !FINALIZER_THREAD_NAME.equals(Thread.currentThread()
.getName())) {
/*
@@ -277,7 +280,7 @@
ObjectIOClassNotFoundException, ObjectIODataCorruptedException,
ObjectIONotSerializableException {
synchronized (storeMutex) {
- if (!loading) {
+ if (!loading && !inConstruction) {
loading = true;
if (!loaded) {
load();
@@ -296,7 +299,7 @@
/*
* inObjectCount==0 because can not unload object when running its code
*/
- if (loaded) {
+ if (loaded && !inConstruction) {
if (!loading && inObjectCount == 0) {
loaded = false;
objectIOManager.unsetProxyObjectState(getInstance$JOAFIP$());
@@ -376,6 +379,18 @@
}
@Override
+ @SuppressWarnings("PMD")
+ public void setInConstruction$JOAFIP$(final boolean inConstruction) {
+ this.inConstruction = inConstruction;
+ }
+
+ @Override
+ @SuppressWarnings("PMD")
+ public boolean isAutoSaveEnabled$JOAFIP$() {
+ return autoSaveEnabled;
+ }
+
+ @Override
public String toString() {
return super.toString() + ", for " + getInstance$JOAFIP$().toString();
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyManager2.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyManager2.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyManager2.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -290,9 +290,12 @@
if (constructed) {
assert getProxyCallBack(instanceCreated) != NULL_PROXY_CALL_BACK_INSTANCE;
+ setNotInConstruction(instanceCreated);
+ // set is loaded last for auto save
objectAndPersistInfo.setIsLoaded();
}
} else {
+ // FIXMELUC ___________one method for objectAndPersistInfo action
// created by save
assert constructed;
objectAndPersistInfo.unWeakReferenceOnObject();
@@ -304,6 +307,9 @@
* objectAndPersistInfo.setIsLoaded() should be good to, may be
* better
*/
+ // objectAndPersistInfo.getProxyCallBackOfObject().setInConstruction$JOAFIP$(false);
+ setNotInConstruction(instanceCreated);
+ // set is loaded last for auto save
setIsLoaded(instanceCreated);
}
return objectAndPersistInfo;
@@ -394,6 +400,15 @@
}
}
+ private void setNotInConstruction(final Object object) {
+ if (useJavaAgent) {
+ StaticProxyCallBack.setInConstruction(object, false);
+ } else if (isProxy(object)) {
+ ((IProxyCallBackProxyDelegation) object)
+ .setInConstruction$JOAFIP$(false);
+ }
+ }
+
public static void setIsLoadedNoSave(final Object object)
throws ProxyException {
try {
@@ -546,6 +561,15 @@
+ object.getClass().getName()
+ "@"
+ System.identityHashCode(object);
+ // FIXMELUC _______________________old proxy call back
+ // FIXMELUC _______________________only for autosave
+ // if(proxyCallBack.isAutoSaveEnabled$JOAFIP$())
+ final IProxyCallBackToImplement oldProxyCallBack = proxy
+ .getProxyCallBack$JOAFIP$();
+ if (oldProxyCallBack == NULL_PROXY_CALL_BACK_INSTANCE) {// NOPMD
+ // in construction
+ proxyCallBack.setInConstruction$JOAFIP$(true);
+ }
proxy.setProxyCallBack$JOAFIP$(proxyCallBack);
}
proxyCallBack.setInstance$JOAFIP$(objectAndPersistInfo);
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/StaticProxyCallBack.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/StaticProxyCallBack.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/StaticProxyCallBack.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -141,6 +141,17 @@
}
}
+ public static void setInConstruction(final Object object,
+ final boolean inConstruction) {
+ final IProxyCallBackProxyDelegation proxyCallBack;
+ synchronized (StaticProxyCallBack.class) {
+ proxyCallBack = proxyCallBackOfObject(object);
+ }
+ if (proxyCallBack != null) {
+ proxyCallBack.setInConstruction$JOAFIP$(inConstruction);
+ }
+ }
+
public static void setIsLoadedNoSave(final Object object)
throws ObjectIOException {
final IProxyCallBackProxyDelegation proxyCallBack;
Modified: trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/BobASDelegatingListenDelegate.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/BobASDelegatingListenDelegate.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/BobASDelegatingListenDelegate.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -44,6 +44,7 @@
if (delegate == null) {
throw new IllegalStateException("delegate must not be null");
}
+ initialize();// NOPMD
}
public static BobASDelegatingListenDelegate newInstance(
@@ -60,6 +61,10 @@
return newInstance;
}
+ public void initialize() {
+ // no implementation
+ }
+
public void action() {
// delegate action job
delegate.action();
Added: trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/KeyDef.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/KeyDef.java (rev 0)
+++ trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/KeyDef.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2011 Luc Peuvrier
+ *
+ * This file is a part of JOAFIP.
+ *
+ * JOAFIP is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License.
+ *
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
+ * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * JOAFIP is distributed in the hope that it will be useful, but
+ * unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.sf.joafip.entity.rel400;
+
+import net.sf.joafip.StorableClass;
+
+/**
+ *
+ * @author luc peuvrier
+ *
+ */
+@StorableClass
+public class KeyDef {
+
+ private final String name;
+
+ public KeyDef(final String name) {
+ super();
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
Modified: trunk/joafip/src/test/java/net/sf/joafip/service/TestTreeListIteratorIntercept.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/TestTreeListIteratorIntercept.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/TestTreeListIteratorIntercept.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -138,4 +138,15 @@
final ObjectAndPersistInfo objectAndPersistInfo) {
// no implementation
}
+
+ @Override
+ public boolean isAutoSaveEnabled$JOAFIP$() {// NOPMD
+ // no implementation
+ return false;
+ }
+
+ @Override
+ public void setInConstruction$JOAFIP$(final boolean inConstruction) {// NOPMD
+ // no implementation
+ }
}
Modified: trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestAutoSave.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestAutoSave.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestAutoSave.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -20,8 +20,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package net.sf.joafip.service.rel400;
+package net.sf.joafip.service.rel400;//NOPMD
+import java.util.Iterator;
+import java.util.Map.Entry;
+
import net.sf.joafip.AbstractDeleteFileTestCase;
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
@@ -30,6 +33,8 @@
import net.sf.joafip.entity.rel400.BobASDelegatingListenDelegate;
import net.sf.joafip.entity.rel400.BobASWithTransientCaller;
import net.sf.joafip.entity.rel400.BobForAutoSaveTest;
+import net.sf.joafip.entity.rel400.KeyDef;
+import net.sf.joafip.java.util.PTreeMap;
import net.sf.joafip.service.FilePersistence;
import net.sf.joafip.service.FilePersistenceBuilder;
import net.sf.joafip.service.FilePersistenceClassNotFoundException;
@@ -41,6 +46,7 @@
import net.sf.joafip.service.IAutoSaveEventListener;
import net.sf.joafip.service.IExclusiveDataAccessSession;
import net.sf.joafip.store.entity.objectio.ObjectAndPersistInfo;
+import net.sf.joafip.store.entity.proxy.BobCallInConstructor;
import net.sf.joafip.store.service.objectfortest.Bob1;
import net.sf.joafip.store.service.objectfortest.Bob2;
import net.sf.joafip.store.service.objectio.ObjectIOException;
@@ -411,6 +417,49 @@
session.close();
}
+ public void testCallInConstructor() throws FilePersistenceException,
+ FilePersistenceClassNotFoundException,
+ FilePersistenceInvalidClassException,
+ FilePersistenceDataCorruptedException,
+ FilePersistenceNotSerializableException,
+ FilePersistenceTooBigForSerializationException {
+ final IInstanceFactory instanceFactory = session.getInstanceFactory();
+ session.open();
+ final Class<?> objectClass = BobCallInConstructor.class;
+ saveDoneFlag = false;
+ instanceFactory.newInstance(objectClass,
+ new Class<?>[] { String.class }, new Object[] { "a name" });
+ assertTrue(MUST_SAVE, saveDoneFlag);
+ session.close();
+ }
+
+ private static final KeyDef KEY_DEF_1 = new KeyDef("key1");
+
+ private static final KeyDef KEY_DEF_2 = new KeyDef("key2");
+
+ @SuppressWarnings("unchecked")
+ public void testRefToStatic() throws FilePersistenceException,
+ FilePersistenceClassNotFoundException,
+ FilePersistenceInvalidClassException,
+ FilePersistenceDataCorruptedException,
+ FilePersistenceNotSerializableException {
+ final IInstanceFactory instanceFactory = session.getInstanceFactory();
+ session.open();
+ final PTreeMap<String, KeyDef> map = (PTreeMap<String, KeyDef>) instanceFactory
+ .newInstance(PTreeMap.class);
+ map.put(KEY_DEF_1.getName(), KEY_DEF_1);
+ map.put(KEY_DEF_2.getName(), KEY_DEF_2);
+ final Iterator<Entry<String, KeyDef>> iterator = map.entrySet()
+ .iterator();
+ assertTrue("must has next", iterator.hasNext());
+ Entry<String, KeyDef> next = iterator.next();
+ assertEquals("bad key", KEY_DEF_1.getName(), next.getKey());
+ assertTrue("must has next", iterator.hasNext());
+ next = iterator.next();
+ assertEquals("bad key", KEY_DEF_2.getName(), next.getKey());
+ assertFalse("must not has next", iterator.hasNext());
+ }
+
@Override
public boolean doSave() {
return true;
Added: trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestConstructEntrySetIteratorOfPMapKeyNavigableSet.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestConstructEntrySetIteratorOfPMapKeyNavigableSet.java (rev 0)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestConstructEntrySetIteratorOfPMapKeyNavigableSet.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2011 Luc Peuvrier
+ *
+ * This file is a part of JOAFIP.
+ *
+ * JOAFIP is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License.
+ *
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
+ * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * JOAFIP is distributed in the hope that it will be useful, but
+ * unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.sf.joafip.service.rel400;
+
+import java.util.Iterator;
+import java.util.NavigableMap;
+
+import net.sf.joafip.AbstractJoafipCommonTestCase;
+import net.sf.joafip.TestException;
+import net.sf.joafip.java.util.PMapKeyNavigableSet;
+import net.sf.joafip.java.util.PTreeMap;
+import net.sf.joafip.reflect.HelperReflect;
+import net.sf.joafip.reflect.ReflectException;
+import net.sf.joafip.service.FilePersistenceRuntimeException;
+import net.sf.joafip.store.service.proxy.IInstanceFactory;
+
+/**
+ *
+ * @author luc peuvrier
+ *
+ */
+public class TestConstructEntrySetIteratorOfPMapKeyNavigableSet extends
+ AbstractJoafipCommonTestCase implements IInstanceFactory {
+
+ public TestConstructEntrySetIteratorOfPMapKeyNavigableSet()
+ throws TestException {
+ super();
+ }
+
+ public TestConstructEntrySetIteratorOfPMapKeyNavigableSet(final String name)
+ throws TestException {
+ super(name);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void test() { // NOPMD
+ final NavigableMap<String, String> navigableMap = new PTreeMap<String, String>();
+ final PMapKeyNavigableSet<String, String> map = PMapKeyNavigableSet
+ .newInstance(this, navigableMap);
+ final Iterator<String> iterator = map.iterator();
+ assertFalse("must be empty", iterator.hasNext());
+ final Iterator<String> descendingIterator = map.descendingIterator();
+ assertFalse("must be empty", descendingIterator.hasNext());
+ }
+
+ @Override
+ public Object newInstance(final Class<?> objectClass,
+ final Class<?>[] parameterTypes, final Object[] initargs) {
+ try {
+ return HelperReflect.getInstance().newInstanceConstruct(
+ objectClass, parameterTypes, initargs);
+ } catch (ReflectException exception) {
+ throw new FilePersistenceRuntimeException(exception);
+ }
+ }
+
+ @Override
+ public Object newInstance(final Class<?> objectClass) {
+ throw new UnsupportedOperationException("should not be used");
+ }
+}
Added: trunk/joafip/src/test/java/net/sf/joafip/store/entity/proxy/BobCallInConstructor.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/entity/proxy/BobCallInConstructor.java (rev 0)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/entity/proxy/BobCallInConstructor.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2011 Luc Peuvrier
+ *
+ * This file is a part of JOAFIP.
+ *
+ * JOAFIP is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License.
+ *
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
+ * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * JOAFIP is distributed in the hope that it will be useful, but
+ * unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.sf.joafip.store.entity.proxy;
+
+/**
+ *
+ * @author luc peuvrier
+ *
+ */
+public class BobCallInConstructor {
+
+ private String name;
+
+ private int age;
+
+ public BobCallInConstructor(final String name, final int age) {
+ super();
+ setName(name);// NOPMD
+ setAge(age);// NOPMD
+ }
+
+ public BobCallInConstructor(final String name) {
+ this(name, -1);
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(final int age) {
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+}
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/ProxyCallBackForTest.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/ProxyCallBackForTest.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/ProxyCallBackForTest.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -292,4 +292,17 @@
throws ObjectIOException {
// no implementation
}
+
+ @SuppressWarnings("PMD")
+ @Override
+ public boolean isAutoSaveEnabled$JOAFIP$() {
+ // no implementation
+ return false;
+ }
+
+ @SuppressWarnings("PMD")
+ @Override
+ public void setInConstruction$JOAFIP$(final boolean inConstruction) {
+ // no implementation
+ }
}
Added: trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/TestProxyCreationConstructed.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/TestProxyCreationConstructed.java (rev 0)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/TestProxyCreationConstructed.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2011 Luc Peuvrier
+ *
+ * This file is a part of JOAFIP.
+ *
+ * JOAFIP is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License.
+ *
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
+ * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * JOAFIP is distributed in the hope that it will be useful, but
+ * unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.sf.joafip.store.service.proxy;
+
+import net.sf.joafip.NotStorableClass;
+import net.sf.joafip.TestException;
+import net.sf.joafip.heapfile.record.entity.DataRecordIdentifier;
+import net.sf.joafip.service.ClassLoaderProvider;
+import net.sf.joafip.store.entity.classinfo.ClassInfo;
+import net.sf.joafip.store.entity.objectio.ObjectAndPersistInfo;
+import net.sf.joafip.store.entity.objectio.StorageInfo;
+import net.sf.joafip.store.entity.proxy.BobCallInConstructor;
+import net.sf.joafip.store.service.classinfo.ClassInfoException;
+import net.sf.joafip.store.service.objectio.ObjectIOClassNotFoundException;
+import net.sf.joafip.store.service.objectio.ObjectIODataCorruptedException;
+import net.sf.joafip.store.service.objectio.ObjectIODataRecordNotFoundException;
+import net.sf.joafip.store.service.objectio.ObjectIOException;
+import net.sf.joafip.store.service.objectio.ObjectIOInvalidClassException;
+import net.sf.joafip.store.service.objectio.ObjectIONotSerializableException;
+
+/**
+ *
+ * @author luc peuvrier
+ *
+ */
+@NotStorableClass
+public class TestProxyCreationConstructed extends
+ AbstractObjectIoManagerForProxyTest {
+
+ private boolean inConstruction;
+
+ public TestProxyCreationConstructed() throws TestException {
+ super();
+ }
+
+ public TestProxyCreationConstructed(final String name) throws TestException {
+ super(name);
+ }
+
+ public void test() throws ClassInfoException, ProxyException {
+ final Class<?> objectClass = BobCallInConstructor.class;
+ final ClassInfo classInfo = classInfoFactory
+ .getNoProxyClassInfo(objectClass);
+ final ProxyManager2 proxyManager2 = new ProxyManager2(
+ new ClassLoaderProvider(), classInfoFactory);
+ final StorageInfo storageInfo = new StorageInfo(0);
+ inConstruction = true;
+ final BobCallInConstructor object = (BobCallInConstructor) proxyManager2
+ .newInstanceConstruct(classInfo,
+ new Class<?>[] { String.class },
+ new Object[] { "a name" }, storageInfo, this,
+ DataRecordIdentifier.LAST, true);
+ inConstruction = false;
+ assertTrue("must say is a proxy",
+ ProxyManager2.isProxyOrEnhanced(object));
+ assertTrue("must be loaded", ProxyManager2.isLoadedOrNotAProxy(object));
+ assertEquals("bad object proxied class", objectClass, proxyManager2
+ .classInfoOfObject(object).getObjectClass());
+ ProxyManager2.unload(object);
+ setted = false;
+ object.setName("a new name");
+ assertTrue(setted);
+ }
+
+ @Override
+ public boolean isAutoSaveEnabled() {
+ return true;
+ }
+
+ @Override
+ public void setProxyObjectState(
+ final ObjectAndPersistInfo objectAndItsClassInfo)
+ throws ObjectIOException, ObjectIODataRecordNotFoundException,
+ ObjectIOInvalidClassException, ObjectIOClassNotFoundException,
+ ObjectIODataCorruptedException, ObjectIONotSerializableException {
+ if (inConstruction) {
+ throw new ObjectIOException("in construction");
+ }
+ super.setProxyObjectState(objectAndItsClassInfo);
+ }
+}
Modified: trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/PMapKeyNavigableSet.java
===================================================================
--- trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/PMapKeyNavigableSet.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/PMapKeyNavigableSet.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -57,7 +57,7 @@
this((IInstanceFactory) null, navigableMap);
}
- private PMapKeyNavigableSet(final IInstanceFactory instanceFactory,
+ protected PMapKeyNavigableSet(final IInstanceFactory instanceFactory,
final NavigableMap<K, V> navigableMap) {
super();
this.instanceFactory = instanceFactory;
@@ -83,6 +83,7 @@
return newInstance;
}
+ @StorableClass
private class EntrySetIterator implements Iterator<K> {
@AssertNotNull
@@ -119,8 +120,9 @@
.iterator());
} else {
entrySetIterator = (EntrySetIterator) instanceFactory.newInstance(
- EntrySetIterator.class, new Class[] { Iterator.class },
- new Object[] { navigableMap.entrySet().iterator() });
+ EntrySetIterator.class, new Class[] {
+ PMapKeyNavigableSet.class, Iterator.class },
+ new Object[] { this, navigableMap.entrySet().iterator() });
}
return entrySetIterator;
}
@@ -173,9 +175,12 @@
entrySetDescendingIterator = (EntrySetDescendingIterator) instanceFactory
.newInstance(
EntrySetDescendingIterator.class,
- new Class[] { Iterator.class },
- new Object[] { ((NavigableSet<Map.Entry<K, V>>) navigableMap
- .entrySet()).descendingIterator() });
+ new Class[] { PMapKeyNavigableSet.class,
+ Iterator.class },
+ new Object[] {
+ this,
+ ((NavigableSet<Map.Entry<K, V>>) navigableMap
+ .entrySet()).descendingIterator() });
}
return entrySetDescendingIterator;
}
Modified: trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
===================================================================
--- trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -24,8 +24,10 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import net.sf.joafip.store.service.TestGarbageForegroundFile;
-import net.sf.joafip.store.service.collection.subs.TestStoreCollectionHashMapSubsNoG;
+import net.sf.joafip.service.rel300.TestSubstitutionWithMethodInterception0;
+import net.sf.joafip.service.rel300.TestSubstitutionWithMethodInterception1;
+import net.sf.joafip.service.rel300.TestSubstitutionWithMethodInterception2;
+import net.sf.joafip.service.rel400.TestAutoSave;
/**
*
@@ -42,8 +44,10 @@
public static Test suite() {
final TestSuite suite = new TestSuite("in error Tests");
// $JUnit-BEGIN$
- suite.addTestSuite(TestStoreCollectionHashMapSubsNoG.class);
- suite.addTestSuite(TestGarbageForegroundFile.class);
+ suite.addTestSuite(TestSubstitutionWithMethodInterception0.class);
+ suite.addTestSuite(TestSubstitutionWithMethodInterception1.class);
+ suite.addTestSuite(TestSubstitutionWithMethodInterception2.class);
+ suite.addTestSuite(TestAutoSave.class);
// suite.addTest(xxxx.suite());
// $JUnit-END$
return suite;
Modified: trunk/joafip-testsuite/src/main/java/net/sf/joafip/service/rel400/ServiceRel400Tests.java
===================================================================
--- trunk/joafip-testsuite/src/main/java/net/sf/joafip/service/rel400/ServiceRel400Tests.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip-testsuite/src/main/java/net/sf/joafip/service/rel400/ServiceRel400Tests.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -19,6 +19,7 @@
suite.addTestSuite(TestAutoSaveWithStatic.class);
suite.addTestSuite(TestStoredImmutableEnum.class);
suite.addTestSuite(TestFileManagementOptions.class);
+ suite.addTestSuite(TestConstructEntrySetIteratorOfPMapKeyNavigableSet.class);
// $JUnit-END$
return suite;
}
Modified: trunk/joafip-testsuite/src/main/java/net/sf/joafip/store/service/proxy/ProxyTests.java
===================================================================
--- trunk/joafip-testsuite/src/main/java/net/sf/joafip/store/service/proxy/ProxyTests.java 2011-10-14 08:55:42 UTC (rev 2920)
+++ trunk/joafip-testsuite/src/main/java/net/sf/joafip/store/service/proxy/ProxyTests.java 2011-10-16 04:45:29 UTC (rev 2921)
@@ -27,12 +27,14 @@
final TestSuite suite = new TestSuite(
"Test for net.sf.joafip.store.service.proxy");
// $JUnit-BEGIN$
+ suite.addTestSuite(TestProxyAutoSave.class);
suite.addTestSuite(TestProxyCreation.class);
+ suite.addTestSuite(TestProxyCreationConstructed.class);
suite.addTestSuite(TestProxyFieldReflect.class);
+ suite.addTestSuite(TestProxyInterceptPackageVisibility.class);
suite.addTestSuite(TestProxyInterceptPrivate.class);
suite.addTestSuite(TestProxyInterceptProtected.class);
- suite.addTestSuite(TestProxyInterceptPackageVisibility.class);
- suite.addTestSuite(TestProxyAutoSave.class);
+ suite.addTestSuite(TestProxyManager2.class);
// $JUnit-END$
return suite;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-16 04:45:37
|
Revision: 2921
http://joafip.svn.sourceforge.net/joafip/?rev=2921&view=rev
Author: luc_peuvrier
Date: 2011-10-16 04:45:29 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
auto save done when create new instance
Modified Paths:
--------------
trunk/joafip/doc/_todo.txt
trunk/joafip/src/main/java/net/sf/joafip/reflect/HelperReflect.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectAndPersistInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/objectio/ObjectStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/EnhanceCodeGenerator.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/out/ExportStoreQue.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/DetachedProxyCallBack.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackProxyDelegation.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/IProxyCallBackToImplement.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/NullProxyCallBack.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyCallBack.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/ProxyManager2.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/proxy/StaticProxyCallBack.java
trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/BobASDelegatingListenDelegate.java
trunk/joafip/src/test/java/net/sf/joafip/service/TestTreeListIteratorIntercept.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestAutoSave.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/ProxyCallBackForTest.java
trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/PMapKeyNavigableSet.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/service/rel400/ServiceRel400Tests.java
trunk/joafip-testsuite/src/main/java/net/sf/joafip/store/service/proxy/ProxyTests.java
Added Paths:
-----------
trunk/joafip/src/test/java/net/sf/joafip/entity/rel400/KeyDef.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel400/TestConstructEntrySetIteratorOfPMapKeyNavigableSet.java
trunk/joafip/src/test/java/net/sf/joafip/store/entity/proxy/BobCallInConstructor.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/TestProxyCreationConstructed.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-14 08:55:48
|
Revision: 2920
http://joafip.svn.sourceforge.net/joafip/?rev=2920&view=rev
Author: luc_peuvrier
Date: 2011-10-14 08:55:42 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
tests jhupedom ok
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java
trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/HashMapEntryComparator.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java 2011-10-14 06:01:04 UTC (rev 2919)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java 2011-10-14 08:55:42 UTC (rev 2920)
@@ -127,8 +127,6 @@
}
}
- // FIXMELUC _______________________________cas du jsr/ret
-
final List<OpcodeNode> nextOpcodeNodeList = startOpcodeNode
.getNextOpcodeNodeList();
for (OpcodeNode opcodeNode : nextOpcodeNodeList) {
Modified: trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/HashMapEntryComparator.java
===================================================================
--- trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/HashMapEntryComparator.java 2011-10-14 06:01:04 UTC (rev 2919)
+++ trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/HashMapEntryComparator.java 2011-10-14 08:55:42 UTC (rev 2920)
@@ -49,7 +49,7 @@
// keyComparator = null;
// }
- private HashMapEntryComparator(final IEqualsHashComparator keyComparator) {
+ protected HashMapEntryComparator(final IEqualsHashComparator keyComparator) {
super();
this.keyComparator = keyComparator;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-14 08:55:48
|
Revision: 2920
http://joafip.svn.sourceforge.net/joafip/?rev=2920&view=rev
Author: luc_peuvrier
Date: 2011-10-14 08:55:42 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
tests jhupedom ok
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java
trunk/joafip-collection/src/main/java/net/sf/joafip/java/util/HashMapEntryComparator.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-14 06:01:10
|
Revision: 2919
http://joafip.svn.sourceforge.net/joafip/?rev=2919&view=rev
Author: luc_peuvrier
Date: 2011-10-14 06:01:04 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
direct access field access control ok
Modified Paths:
--------------
trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-14 06:01:10
|
Revision: 2919
http://joafip.svn.sourceforge.net/joafip/?rev=2919&view=rev
Author: luc_peuvrier
Date: 2011-10-14 06:01:04 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
direct access field access control ok
Modified Paths:
--------------
trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
Modified: trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java
===================================================================
--- trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java 2011-10-14 06:00:31 UTC (rev 2918)
+++ trunk/joafip-testsuite/src/main/java/net/sf/joafip/InErrorTests.java 2011-10-14 06:01:04 UTC (rev 2919)
@@ -24,7 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import net.sf.joafip.store.service.collection.nosubs.TestStoreCollectionTreeMapNosubsNoG;
+import net.sf.joafip.store.service.TestGarbageForegroundFile;
+import net.sf.joafip.store.service.collection.subs.TestStoreCollectionHashMapSubsNoG;
/**
*
@@ -41,7 +42,8 @@
public static Test suite() {
final TestSuite suite = new TestSuite("in error Tests");
// $JUnit-BEGIN$
- suite.addTestSuite(TestStoreCollectionTreeMapNosubsNoG.class);
+ suite.addTestSuite(TestStoreCollectionHashMapSubsNoG.class);
+ suite.addTestSuite(TestGarbageForegroundFile.class);
// suite.addTest(xxxx.suite());
// $JUnit-END$
return suite;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-14 06:00:38
|
Revision: 2918
http://joafip.svn.sourceforge.net/joafip/?rev=2918&view=rev
Author: luc_peuvrier
Date: 2011-10-14 06:00:31 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
direct access field access control ok
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/OpcodeNode.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/StackElement.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ForTestCheckMethodVisitor.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/TestCheckMethodVisitor.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ToCheckClass.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/OpcodeNode.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/OpcodeNode.java 2011-10-12 03:04:21 UTC (rev 2917)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/OpcodeNode.java 2011-10-14 06:00:31 UTC (rev 2918)
@@ -38,6 +38,8 @@
@NotStorableClass
public class OpcodeNode {
+ private static final String TAB = " ";
+
protected final static OpcodeInterpreter OPCODE_INTERPRETER = OpcodeInterpreter
.getInstance();
@@ -94,9 +96,20 @@
public void setBeforeExecutionStackElement(
final StackElement beforeExecutionStackElement) {
- assert this.beforeExecutionStackElement == null : "to set to\n"
- + beforeExecutionStackElement + "\n and is\n"
- + this.beforeExecutionStackElement;
+ // stack change accepted
+ // assert this.beforeExecutionStackElement == null
+ // ||
+ // this.beforeExecutionStackElement.equals(beforeExecutionStackElement)
+ // : OPCODE_INTERPRETER
+ // .mnemonic(opcode)
+ // + " line "
+ // + lineNumber
+ // + " @"
+ // + address
+ // + " to set to\n"
+ // + beforeExecutionStackElement
+ // + "\n and is\n"
+ // + this.beforeExecutionStackElement;
this.beforeExecutionStackElement = beforeExecutionStackElement;
}
@@ -137,8 +150,12 @@
@Override
public String toString() {
final StringBuilder stringBuilder = new StringBuilder();
- if (label != null) {
- stringBuilder.append(label.toString());
+ if (label == null) {
+ stringBuilder.append(TAB);
+ } else {
+ final String labelToString = label.toString();
+ stringBuilder.append(labelToString);
+ stringBuilder.append(TAB.substring(labelToString.length()));
}
stringBuilder.append('@');
stringBuilder.append(address);
@@ -159,12 +176,15 @@
stringBuilder.append(' ');
}
stringBuilder.append('\n');
+ stringBuilder.append(TAB);
if (beforeExecutionStackElement == null) {
stringBuilder.append('?');
} else {
stringBuilder.append(beforeExecutionStackElement.toString());
}
- stringBuilder.append("\n=> ");
+ stringBuilder.append('\n');
+ stringBuilder.append(TAB);
+ stringBuilder.append("=> ");
if (afterExecutionStackElement == null) {
stringBuilder.append('?');
} else {
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/StackElement.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/StackElement.java 2011-10-12 03:04:21 UTC (rev 2917)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/StackElement.java 2011-10-14 06:00:31 UTC (rev 2918)
@@ -67,6 +67,37 @@
}
@Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((type == null) ? 0 : type.hashCode());
+ return result;
+ }
+
+ @SuppressWarnings("PMD")
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ StackElement other = (StackElement) obj;
+ if (type != other.type) {
+ return false;
+ }
+ if (previous == null) {
+ return true;
+ } else {
+ return previous.equals(other.previous);
+ }
+ }
+
+ @Override
public String toString() {
final String typeName;
if (thisReference) {
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java 2011-10-12 03:04:21 UTC (rev 2917)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java 2011-10-14 06:00:31 UTC (rev 2918)
@@ -26,6 +26,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -37,6 +38,7 @@
import net.sf.joafip.asm.Opcodes;
import net.sf.joafip.logger.JoafipLogger;
import net.sf.joafip.store.entity.proxy.DirectAccessInfo;
+import net.sf.joafip.store.entity.proxy.EnumStackEltType;
import net.sf.joafip.store.entity.proxy.OpcodeNode;
import net.sf.joafip.store.entity.proxy.OpcodeNodeAloadThis;
import net.sf.joafip.store.entity.proxy.OpcodeNodeDup;
@@ -64,6 +66,9 @@
@NotStorableClass
public class CheckMethodVisitor implements MethodVisitor, Opcodes {
+ private static final StackElement HANDLER_START_STACK_ELEMENT = new StackElement(
+ null, EnumStackEltType.REF);
+
private final static JoafipLogger LOGGER = JoafipLogger
.getLogger(CheckMethodVisitor.class);
@@ -106,6 +111,7 @@
@Override
public void visitEnd() {
+ listener.codeVisisted(methodAbsoluteName);
try {
for (Map.Entry<OpcodeNode, Set<Label>> entry : gotoMap.entrySet()) {
final OpcodeNode opcodeNode = entry.getKey();
@@ -123,9 +129,10 @@
// FIXMELUC _______________________________cas du jsr/ret
- for (OpcodeNode opcodeNode : startOpcodeNode
- .getNextOpcodeNodeList()) {
- check(opcodeNode);
+ final List<OpcodeNode> nextOpcodeNodeList = startOpcodeNode
+ .getNextOpcodeNodeList();
+ for (OpcodeNode opcodeNode : nextOpcodeNodeList) {
+ check(opcodeNode, null);
}
for (Label label : handlerEntrySet) {
@@ -134,9 +141,8 @@
throw new EnhanceException("undefined label "
+ label.toString());
}
- check(handlerOpcode);
+ check(handlerOpcode, HANDLER_START_STACK_ELEMENT);
}
- listener.codeVisisted(methodAbsoluteName);
} catch (Exception exception) {
final String unassembled = listener.unassembled(methodAbsoluteName);
throw new RuntimeEnhanceException(new EnhanceException(
@@ -153,13 +159,14 @@
}
}
- private void check(final OpcodeNode startOpcodeNode)
- throws EnhanceException {
+ private void check(final OpcodeNode startOpcodeNode,
+ final StackElement startStackElement) throws EnhanceException {
final Deque<OpcodeNode> toVisitQue = new LinkedList<OpcodeNode>();
final Deque<StackElement> stackElementQue = new LinkedList<StackElement>();
final Set<OpcodeNode> visited = new HashSet<OpcodeNode>();
OpcodeNode currentOpcodeNode = startOpcodeNode;
- StackElement stackElement = null;
+ StackElement stackElement = startStackElement;
+ visited.add(currentOpcodeNode);
while (currentOpcodeNode != null) {
listener.currentOpcode(currentOpcodeNode);
currentOpcodeNode.setBeforeExecutionStackElement(stackElement);
@@ -173,7 +180,7 @@
toVisitQue.add(next);
stackElementQue.add(stackElement);
}
- // FIXMELUC __________________________stack change
+ // stack change accepted
// else if (stackElement !=
// next.getBeforeExecutionStackElement()) {
// throw new EnhanceException("stack change:\n" + stackElement
@@ -289,7 +296,10 @@
@Override
public void visitJumpInsn(final int opcode, final Label label) {
- // TODO Auto-generated method stub
+ // FIXMELUC ______________________for test
+ if (opcode == JSR) {
+ System.out.println(); // NOPMD
+ }
currentOpcodeNode = new OpcodeNode(opcode, currentAddress++,
currentLineNumber, currentOpcodeNode);
addGoto(currentOpcodeNode, label);
@@ -301,6 +311,7 @@
@Override
public void visitLabel(final Label label) {
+ assert visitedLabel == null;
visitedLabel = label;
}
@@ -355,7 +366,7 @@
@Override
public void visitTryCatchBlock(final Label start, final Label end,
final Label handler, final String type) {
- // TODO Auto-generated method stub
+ handlerEntrySet.add(handler);
}
@Override
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ForTestCheckMethodVisitor.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ForTestCheckMethodVisitor.java 2011-10-12 03:04:21 UTC (rev 2917)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ForTestCheckMethodVisitor.java 2011-10-14 06:00:31 UTC (rev 2918)
@@ -22,9 +22,6 @@
*/
package net.sf.joafip.store.service.bytecode.proxy;
-import net.sf.joafip.store.service.bytecode.proxy.CheckMethodVisitor;
-import net.sf.joafip.store.service.bytecode.proxy.ICheckMethodListener;
-
/**
*
* @author luc peuvrier
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/TestCheckMethodVisitor.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/TestCheckMethodVisitor.java 2011-10-12 03:04:21 UTC (rev 2917)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/TestCheckMethodVisitor.java 2011-10-14 06:00:31 UTC (rev 2918)
@@ -27,6 +27,7 @@
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
+import java.util.Set;
import net.sf.joafip.AbstractJoafipTestCase;
import net.sf.joafip.TestException;
@@ -57,6 +58,8 @@
private transient String methodDescriptor;
+ private transient String absoluteMethodName;
+
public TestCheckMethodVisitor() throws TestException {
super();
}
@@ -77,6 +80,7 @@
checkMethodListener = null;// NOPMD
methodName = null;// NOPMD
methodDescriptor = null;// NOPMD
+ absoluteMethodName = null;// NOPMD
super.tearDown();
}
@@ -178,6 +182,14 @@
checkMethodListener.hasDirectAccess());
}
+ public void testWhileNokMethod() throws NoSuchMethodException, IOException,
+ EnhanceException {
+ check("whileNokMethod", new Class[] { ToCheckClass.class });
+ assertTrue("whileNokMethod() must not be ok\n" + directAccess(),
+ checkMethodListener.hasDirectAccess());
+ assertDirectAccess(new int[] { 104 });
+ }
+
public void testWhileMethod() throws NoSuchMethodException, IOException,
EnhanceException {
check("whileMethod", new Class[] { Class.class });
@@ -185,28 +197,77 @@
checkMethodListener.hasDirectAccess());
}
+ public void testTryCatchMethod() throws NoSuchMethodException, IOException,
+ EnhanceException {
+ check("tryCatchMethod", new Class[] { ToCheckClass.class });
+ assertTrue("tryCatchMethod() must not be ok\n" + directAccess(),
+ checkMethodListener.hasDirectAccess());
+ assertDirectAccess(new int[] { 127 });
+ }
+
+ public void testTryCatchNopMethod() throws NoSuchMethodException,
+ IOException, EnhanceException {
+ check("tryCatchNopMethod", new Class[] {});
+ assertFalse("tryCatchNopMethod() must be ok\n" + directAccess(),
+ checkMethodListener.hasDirectAccess());
+ }
+
+ public void testIndirectMethod() throws NoSuchMethodException, IOException,
+ EnhanceException {
+ check("indirectMethod", new Class[] {});
+ assertTrue("indirectMethod() must not be ok\n" + directAccess(),
+ checkMethodListener.hasDirectAccess());
+ assertDirectAccess(new int[] { 142 });
+ }
+
+ public void testFinallyMethod() throws NoSuchMethodException, IOException,
+ EnhanceException {
+ check("finallyMethod", new Class[] { ToCheckClass.class });
+ assertTrue("finallyMethod() must not be ok\n" + directAccess(),
+ checkMethodListener.hasDirectAccess());
+ assertDirectAccess(new int[] { 149 });
+ }
+
+ private void assertDirectAccess(final int[] lineNumbers) {
+ final int numberOfError = lineNumbers.length;
+ final Set<DirectAccessInfo> directAccessSet = checkMethodListener
+ .getDirectAccessSet();
+ assertEquals("bad number of error", numberOfError,
+ directAccessSet.size());
+ for (int lineNumber : lineNumbers) {
+ final DirectAccessInfo key =
+ /**/new DirectAccessInfo(absoluteMethodName, null, lineNumber);// NOPMD
+ assertTrue("expected error " + key, directAccessSet.contains(key));
+ }
+ }
+
private String directAccess() {
final StringBuilder stringBuilder = new StringBuilder();
for (DirectAccessInfo directAccessInfo : checkMethodListener
.getDirectAccessSet()) {
stringBuilder.append(directAccessInfo.toString());
stringBuilder.append('\n');
- stringBuilder.append(checkMethodListener
- .unassembled(directAccessInfo.getMethodAbsoluteName()));
- stringBuilder.append('\n');
+ // stringBuilder.append(checkMethodListener
+ // .unassembled(directAccessInfo.getMethodAbsoluteName()));
+ // stringBuilder.append('\n');
}
return stringBuilder.toString();
}
- private void check(final String name, final Class<?>[] parameterTypes)
+ private void check(final String methodName, final Class<?>[] parameterTypes)
throws NoSuchMethodException, IOException, EnhanceException {
- if (name == null) {
+ if (methodName == null) {
setConstructorTotest(parameterTypes);
} else {
- setMethodTotest(name, parameterTypes);
+ setMethodTotest(methodName, parameterTypes);
}
+ final String toCheckClassName = ToCheckClass.class.getName().replace(
+ '.', '/');
+ absoluteMethodName = toCheckClassName + "#"
+ + (methodName == null ? "<init>" : methodName)
+ + methodDescriptor;
final InputStream inputStream = ClassLoader
- .getSystemResourceAsStream("net/sf/joafip/store/service/bytecode/proxy/ToCheckClass.class");
+ .getSystemResourceAsStream(toCheckClassName + ".class");
final ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
int byteValue;
while ((byteValue = inputStream.read()) != -1) {// NOPMD
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ToCheckClass.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ToCheckClass.java 2011-10-12 03:04:21 UTC (rev 2917)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ToCheckClass.java 2011-10-14 06:00:31 UTC (rev 2918)
@@ -101,7 +101,7 @@
public void whileNokMethod(final ToCheckClass toCheckClass) {
int count = 0;
while (count < 5) {
- toCheckClass.globalCount++;
+ toCheckClass.globalCount++;// direct access
count++;
}
}
@@ -119,4 +119,34 @@
@SuppressWarnings("PMD")
private void operation(final Class<?> clazz) {
}
+
+ public void tryCatchMethod(final ToCheckClass toCheckClass) {
+ try {
+ operation(getClass());
+ } catch (Exception exception) {
+ toCheckClass.globalCount++;// direct access
+ }
+ }
+
+ public void tryCatchNopMethod() {
+ try {
+ incStaticCount();
+ } catch (Exception exception) {// NOPMD
+ // ignore
+ }
+ operation(getClass());
+ }
+
+ public Class<?> indirectMethod() {
+ final ToCheckClass toCheckClass = this;
+ return toCheckClass.root;// NOPMD
+ }
+
+ public void finallyMethod(final ToCheckClass toCheckClass) {
+ try {
+ operation(getClass());
+ } finally {
+ toCheckClass.globalCount++;// direct access
+ }
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <luc...@us...> - 2011-10-14 06:00:37
|
Revision: 2918
http://joafip.svn.sourceforge.net/joafip/?rev=2918&view=rev
Author: luc_peuvrier
Date: 2011-10-14 06:00:31 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
direct access field access control ok
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/OpcodeNode.java
trunk/joafip/src/main/java/net/sf/joafip/store/entity/proxy/StackElement.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/bytecode/proxy/CheckMethodVisitor.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ForTestCheckMethodVisitor.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/TestCheckMethodVisitor.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/proxy/ToCheckClass.java
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|