Author: toad
Date: 2009-03-06 18:15:50 +0000 (Fri, 06 Mar 2009)
New Revision: 25902
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/Db4oVersion.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/ext/IncompatibleFileFormatException.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/Hashtable4.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/Iterators.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/SignatureGenerator.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/FieldMetadata.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/PartialObjectContainer.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/handlers/FirstClassObjectHandler.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/marshall/ClassMarshaller.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/marshall/MarshallerFamily.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/io/CachedIoAdapter.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/io/MemoryIoAdapter.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericClass.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericObject.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericReflector.java
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/KnownClassesRepository.java
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/common/migration/Db4oMigrationTestSuite.java
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/jre12/assorted/AllTests.java
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/jre12/collections/HashMapUpdateFileSizeTestCase.java
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/test/CascadeToHashMap.java
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/test/util/ExcludingClassLoader.java
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/ArrayList4.java
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/ArrayMap4.java
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/SubArrayList4.java
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/DiskFullTestCase.java
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/DiskFullTestCaseBase.java
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/StackBasedDiskFullTestCase.java
Log:
db4o version 7.4.84.12673
Modified: trunk/contrib/db4o/src/db4oj/core/src/com/db4o/Db4oVersion.java
===================================================================
--- trunk/contrib/db4o/src/db4oj/core/src/com/db4o/Db4oVersion.java
2009-03-06 12:10:55 UTC (rev 25901)
+++ trunk/contrib/db4o/src/db4oj/core/src/com/db4o/Db4oVersion.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -24,9 +24,9 @@
* @exclude
*/
public class Db4oVersion {
- public static final String NAME = "7.4.71.12224";
+ public static final String NAME = "7.4.84.12673";
public static final int MAJOR = 7;
public static final int MINOR = 4;
- public static final int ITERATION = 71;
- public static final int REVISION = 12224;
+ public static final int ITERATION = 84;
+ public static final int REVISION = 12673;
}
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/ext/IncompatibleFileFormatException.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/ext/IncompatibleFileFormatException.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/ext/IncompatibleFileFormatException.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -26,5 +26,13 @@
* is not compatible with the applied configuration.
*/
public class IncompatibleFileFormatException extends Db4oException {
+
+ public IncompatibleFileFormatException(){
+ super();
+ }
+
+ public IncompatibleFileFormatException(String message) {
+ super(message);
+ }
}
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/Hashtable4.java
===================================================================
--- trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/Hashtable4.java
2009-03-06 12:10:55 UTC (rev 25901)
+++ trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/Hashtable4.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -315,10 +315,15 @@
}
private void reposition(HashtableIntEntry entry) {
- if (entry != null) {
- reposition(entry._next);
- entry._next = _table[entryIndex(entry)];
- _table[entryIndex(entry)] = entry;
- }
- }
+ HashtableIntEntry currentEntry = entry;
+ HashtableIntEntry nextEntry = null;
+ while (currentEntry != null)
+ {
+ nextEntry = currentEntry._next;
+ currentEntry._next = _table[entryIndex(currentEntry)];
+ _table[entryIndex(currentEntry)] = currentEntry;
+ currentEntry = nextEntry;
+ }
+ }
+
}
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/Iterators.java
===================================================================
--- trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/Iterators.java
2009-03-06 12:10:55 UTC (rev 25901)
+++ trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/Iterators.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -45,7 +45,7 @@
}
public void reset() {
- throw new NotImplementedException();
+ // do nothing
}
};
@@ -264,5 +264,10 @@
return iterator;
}
};
- }
+ }
+
+ public static Iterator4 copy(final Iterator4 iterator) {
+ return new Collection4(iterator).iterator();
+ }
+
}
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/SignatureGenerator.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/SignatureGenerator.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/foundation/SignatureGenerator.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -52,7 +52,7 @@
}
sb.append(Integer.toHexString(hostAddress));
sb.append(Long.toHexString(System.currentTimeMillis()));
- sb.append(Integer.toHexString(randomInt()));
+ sb.append(pad(Integer.toHexString(randomInt())));
sb.append(Integer.toHexString(_counter++));
return sb.toString();
}
@@ -60,5 +60,9 @@
private static int randomInt() {
return _random.nextInt();
}
+
+ private static String pad(String str){
+ return (str + "XXXXXXXX").substring(0, 8);
+ }
}
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/FieldMetadata.java
===================================================================
--- trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/FieldMetadata.java
2009-03-06 12:10:55 UTC (rev 25901)
+++ trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/FieldMetadata.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -484,6 +484,10 @@
}
try {
removeIndexEntry(context);
+ if(isUpdate){
+ incrementOffset(context);
+ return;
+ }
StatefulBuffer buffer = (StatefulBuffer) context.buffer();
final DeleteContextImpl childContext = new
DeleteContextImpl(context, getStoredType(), _config);
context.slotFormat().doWithSlotIndirection(buffer, _handler, new
Closure4() {
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/PartialObjectContainer.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/PartialObjectContainer.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/PartialObjectContainer.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -772,7 +772,7 @@
return queryAllObjects(trans);
}
Query q = query(trans);
- q.constrain(template);
+ q.constrain(template).byExample();
return executeQuery((QQuery)q);
}
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/handlers/FirstClassObjectHandler.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/handlers/FirstClassObjectHandler.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/handlers/FirstClassObjectHandler.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -59,6 +59,9 @@
aspect.defragAspect(context);
}
}
+ public boolean accept(ClassAspect aspect) {
+ return aspect.enabled(context);
+ }
};
traverseAllAspects(context, command);
}
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/marshall/ClassMarshaller.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/marshall/ClassMarshaller.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/marshall/ClassMarshaller.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -151,7 +151,7 @@
// ancestor ID
context.copyID();
- context.writeInt(indexIDForWriting(classIndexID));
+ context.writeInt((classMetadata.hasClassIndex() ?
indexIDForWriting(classIndexID) : 0));
final int aspectCount = context.readInt();
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/marshall/MarshallerFamily.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/marshall/MarshallerFamily.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/internal/marshall/MarshallerFamily.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -20,6 +20,7 @@
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
package com.db4o.internal.marshall;
+import com.db4o.ext.*;
import com.db4o.internal.*;
import com.db4o.internal.convert.conversions.*;
@@ -120,8 +121,15 @@
}
public static MarshallerFamily version(int n) {
+ checkIfVersionIsTooNew(n);
return allVersions[n];
}
+
+ private static void checkIfVersionIsTooNew(int n) {
+ if(n > allVersions.length){
+ throw new IncompatibleFileFormatException("Databasefile was
created with a newer db4o version. Marshaller version: " + n);
+ }
+ }
public static MarshallerFamily current() {
if(CURRENT_VERSION < FamilyVersion.BTREE_FIELD_INDEXES){
Modified: trunk/contrib/db4o/src/db4oj/core/src/com/db4o/io/CachedIoAdapter.java
===================================================================
--- trunk/contrib/db4o/src/db4oj/core/src/com/db4o/io/CachedIoAdapter.java
2009-03-06 12:10:55 UTC (rev 25901)
+++ trunk/contrib/db4o/src/db4oj/core/src/com/db4o/io/CachedIoAdapter.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -389,6 +389,7 @@
}
private void writePageToDisk(Page page) throws Db4oIOException {
+ validateReadOnly();
try{
_io.write(page._buffer, page.size());
_filePointer = page.endAddress();
Modified: trunk/contrib/db4o/src/db4oj/core/src/com/db4o/io/MemoryIoAdapter.java
===================================================================
--- trunk/contrib/db4o/src/db4oj/core/src/com/db4o/io/MemoryIoAdapter.java
2009-03-06 12:10:55 UTC (rev 25901)
+++ trunk/contrib/db4o/src/db4oj/core/src/com/db4o/io/MemoryIoAdapter.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -193,8 +193,9 @@
public void write(byte[] buffer, int length) throws Db4oIOException {
if (_seekPos + length > _bytes.length) {
int growBy = _growBy;
- if (_seekPos + length > growBy) {
- growBy = _seekPos + length;
+ int missing = _seekPos + length - _bytes.length;
+ if (missing > growBy) {
+ growBy = missing;
}
byte[] temp = new byte[_bytes.length + growBy];
System.arraycopy(_bytes, 0, temp, 0, _length);
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericClass.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericClass.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericClass.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -247,7 +247,7 @@
if (!(candidate instanceof GenericObject)) {
return false;
}
- return isAssignableFrom(((GenericObject)candidate)._class);
+ return isAssignableFrom(((GenericObject)candidate).getGenericClass());
}
public boolean isInterface() {
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericObject.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericObject.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericObject.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -20,49 +20,12 @@
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
package com.db4o.reflect.generic;
-
/**
* @exclude
*/
-public class GenericObject {
+public class GenericObject extends GenericObjectBase {
- final GenericClass _class;
-
- private Object[] _values;
-
public GenericObject(GenericClass clazz) {
- _class = clazz;
+ super(clazz);
}
-
- private void ensureValuesInitialized() {
- if(_values == null) {
- _values = new Object[_class.getFieldCount()];
- }
- }
-
- public void set(int index,Object value) {
- ensureValuesInitialized();
- _values[index]=value;
- }
-
- /**
- *
- * @param index
- * @return the value of the field at index, based on the fields
obtained GenericClass.getDeclaredFields
- */
- public Object get(int index) {
- ensureValuesInitialized();
- return _values[index];
- }
-
- public String toString(){
- if(_class == null){
- return super.toString();
- }
- return _class.toString(this);
- }
-
- public GenericClass getGenericClass(){
- return _class;
- }
}
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericReflector.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericReflector.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/GenericReflector.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -22,6 +22,7 @@
import com.db4o.foundation.*;
import com.db4o.internal.*;
+import com.db4o.internal.reflect.generic.*;
import com.db4o.reflect.*;
/**
@@ -253,7 +254,7 @@
}
private ReflectClass forGenericObject(final GenericObject
genericObject) {
- GenericClass claxx = genericObject._class;
+ GenericClass claxx = genericObject.getGenericClass();
if(claxx == null){
throw new IllegalStateException();
}
@@ -363,25 +364,8 @@
* @return an array of classes known to the reflector
*/
public ReflectClass[] knownClasses() {
- Collection4 classes = new Collection4();
- collectKnownClasses(classes);
- return (ReflectClass[])classes.toArray(new
ReflectClass[classes.size()]);
+ return new KnownClassesCollector(_stream,
_repository).collect();
}
-
- private void collectKnownClasses(Collection4 classes) {
- Iterator4 i = _repository.classes();
- while(i.moveNext()){
- GenericClass clazz = (GenericClass)i.current();
- if(! _stream._handlers.ICLASS_INTERNAL.isAssignableFrom(clazz)){
- ClassMetadata clazzMeta =
_stream.classMetadataForReflectClass(clazz);
- if(clazzMeta == null ||
!clazzMeta.isSecondClass()){
- if(! clazz.isArray()){
- classes.add(clazz);
- }
- }
- }
- }
- }
/**
* Registers primitive class
Modified:
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/KnownClassesRepository.java
===================================================================
---
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/KnownClassesRepository.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4oj/core/src/com/db4o/reflect/generic/KnownClassesRepository.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -58,6 +58,7 @@
private final Hashtable4 _classByID = new Hashtable4();
private Collection4 _pendingClasses = new Collection4();
private final Collection4 _classes = new Collection4();
+ private final ListenerRegistry _listeners =
ListenerRegistry.newInstance();
public KnownClassesRepository(ReflectClassBuilder builder) {
_builder=builder;
@@ -71,10 +72,16 @@
}
public void register(ReflectClass clazz) {
- _classByName.put(clazz.getName(), clazz);
- _classes.add(clazz);
+ register(clazz.getName(), clazz);
}
+ private void register(String className, ReflectClass clazz) {
+ _classByName.put(className, clazz);
+ _classes.add(clazz);
+
+ _listeners.notifyListeners(clazz);
+ }
+
public ReflectClass forID(int id) {
synchronized(_stream.lock()) {
if(_stream.handlers().isSystemHandler(id)) {
@@ -176,9 +183,7 @@
return;
}
- // step 2 add the class to _classByName and _classes to denote reading
is completed
- _classByName.put(className, clazz);
- _classes.add(clazz);
+ register(className, clazz);
int numFields=classInfo.numFields();
ReflectField[] fields=_builder.fieldArray(numFields);
@@ -273,6 +278,14 @@
return (ReflectClass)_classByName.get(name);
}
+ public void addListener(Listener listener) {
+ _listeners.register(listener);
+ }
+
+ public void removeListener(Listener listener) {
+ _listeners.remove(listener);
+ }
+
private ReflectClass arrayClass(ReflectClass clazz) {
Object proto=clazz.reflector().array().newInstance(clazz,0);
return clazz.reflector().forObject(proto);
Modified:
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/common/migration/Db4oMigrationTestSuite.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/common/migration/Db4oMigrationTestSuite.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/common/migration/Db4oMigrationTestSuite.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -94,6 +94,7 @@
ArrayListUpdateTestCase.class,
HashtableUpdateTestCase.class,
VectorUpdateTestCase.class,
+ KnownClassesMigrationTestCase.class,
};
}
Modified:
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/jre12/assorted/AllTests.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/jre12/assorted/AllTests.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/jre12/assorted/AllTests.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -29,6 +29,7 @@
GenericPrimitiveArrayTestCase.class,
StoreComparableFieldTestCase.class,
TranslatorStoredClassesTestCase.class,
+ UnavailableClassAsTreeSetElementTestCase.class,
//Comment out this test temporarily
//UpdatingDb4oVersionsTestCase.class,
};
Modified:
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/jre12/collections/HashMapUpdateFileSizeTestCase.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/jre12/collections/HashMapUpdateFileSizeTestCase.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/db4ounit/jre12/collections/HashMapUpdateFileSizeTestCase.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -23,6 +23,8 @@
import java.io.*;
import java.util.*;
+import com.db4o.internal.FrozenObjectInfo;
+
import db4ounit.*;
import db4ounit.extensions.*;
import db4ounit.extensions.fixtures.*;
@@ -44,7 +46,7 @@
map.put(new Integer(2), "String 2");
}
- public void testFileSize() throws Exception {
+ public void _testFileSize() throws Exception {
warmUp();
assertFileSizeConstant();
}
@@ -58,8 +60,8 @@
defragment();
long afterUpdate = dbSize();
/*
- * FIXME: the database file size is uncertain?
- * We met similar problem before.
+ * The database file size is a bit uncertain because
+ * the signature length may vary.
*/
Assert.isTrue(afterUpdate - beforeUpdate < 2);
}
Modified:
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/test/CascadeToHashMap.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/test/CascadeToHashMap.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/test/CascadeToHashMap.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -67,10 +67,10 @@
}
});
- // Cascade-On-Delete Test: We only want one atom to remain.
+ // Cascade-On-Delete Test: We only want two atom objects to
remain.
Test.reOpen();
Test.deleteAllInstances(this);
- Test.ensureOccurrences(new Atom(), 1);
+ Test.ensureOccurrences(new Atom(), 2);
}
}
Modified:
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/test/util/ExcludingClassLoader.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/test/util/ExcludingClassLoader.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk1.2/test/src/com/db4o/test/util/ExcludingClassLoader.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -33,16 +33,26 @@
private final Map _cache = new HashMap();
private Collection4 _excludedNames;
+ private Collection4 _delegatedNames;
- public ExcludingClassLoader(ClassLoader parent,Class[] excludedClasses) {
- this(parent, collectNames(excludedClasses));
+ public ExcludingClassLoader(ClassLoader parent, Class[] excludedClasses) {
+ this(parent, collectNames(excludedClasses), new Collection4());
}
-
+
+ public ExcludingClassLoader(ClassLoader parent, Class[] excludedClasses,
Class[] delegatedClasses) {
+ this(parent, collectNames(excludedClasses),
collectNames(delegatedClasses));
+ }
+
public ExcludingClassLoader(ClassLoader parent,Collection4 excludedNames) {
- super(new URL[]{},parent);
- this._excludedNames=excludedNames;
+ this(parent, excludedNames, new Collection4());
}
+ public ExcludingClassLoader(ClassLoader parent,Collection4 excludedNames,
Collection4 delegatedNames) {
+ super(new URL[]{}, parent);
+ this._excludedNames = excludedNames;
+ this._delegatedNames = delegatedNames;
+ }
+
protected synchronized Class loadClass(String name, boolean resolve)
throws ClassNotFoundException {
if(_excludedNames.contains(name)) {
print("EXCLUDED: " + name);
@@ -56,6 +66,10 @@
print("NATIVE: " + name);
return super.loadClass(name, resolve);
}
+ if(_delegatedNames.contains(name)) {
+ print("DELEGATED: " + name);
+ return super.loadClass(name, resolve);
+ }
Class clazz = findRawClass(name);
if(resolve) {
resolveClass(clazz);
@@ -107,7 +121,7 @@
ClassLoader parent=ExcludingClassLoader.class.getClassLoader();
String excName=ExcludingClassLoader.class.getName();
Collection4 excluded=new Collection4();
- ClassLoader incLoader=new ExcludingClassLoader(parent,excluded);
+ ClassLoader incLoader=new ExcludingClassLoader(parent, excluded, new
Collection4());
System.out.println(incLoader.loadClass(excName));
excluded.add(excName);
try {
Modified:
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/ArrayList4.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/ArrayList4.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/ArrayList4.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -100,7 +100,6 @@
*
* @see java.util.ArrayList
*/
- @SuppressWarnings("unchecked")
public ArrayList4(Collection<? extends E> c) {
E[] data = collectionToArray(c);
elements = allocateStorage(data.length);
@@ -129,7 +128,6 @@
*
* @see java.util.ArrayList
*/
- @SuppressWarnings("unchecked")
public ArrayList4(int initialCapacity) {
if (initialCapacity < 0) {
throw new IllegalArgumentException();
@@ -310,7 +308,6 @@
*
* @sharpen.ignore
*/
- @SuppressWarnings("unchecked")
public int lastIndexOf(Object o) {
for (int index = size() - 1; index >= 0; --index) {
E element = get(index);
@@ -386,8 +383,6 @@
* @see java.util.ArrayList
* @see com.db4o.ta.Activatable
*
- * @sharpen.internal
- * @sharpen.property
*/
public int size() {
activate(ActivationPurpose.READ);
@@ -443,7 +438,6 @@
resize(size());
}
- @SuppressWarnings("unchecked")
private void resize(int minCapacity) {
markModified();
E[] temp = allocateStorage(minCapacity);
Modified:
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/ArrayMap4.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/ArrayMap4.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/ArrayMap4.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -117,7 +117,8 @@
*
* @sharpen.ignore
*/
- public boolean containsKey(Object key) {
+ @SuppressWarnings("unchecked")
+ public boolean containsKey(Object key) {
return containsKeyImpl((K) key);
}
@@ -283,7 +284,6 @@
*
* @sharpen.ignore
*/
- @SuppressWarnings("unchecked")
public V remove(Object key) {
activate(ActivationPurpose.READ);
int index = indexOfKey(key);
@@ -300,7 +300,6 @@
* @see java.util.Map
* @see com.db4o.ta.Activatable
*
- * @sharpen.internal
* @sharpen.property
*/
public int size() {
@@ -403,7 +402,6 @@
return hashCode;
}
- @SuppressWarnings("unchecked")
private void initializeBackingArray(int length) {
_keys = allocateKeyStorage(length);
_values = allocateValueStorage(length);
@@ -431,7 +429,6 @@
_size ++;
}
- @SuppressWarnings("unchecked")
private void ensureCapacity() {
if (_size == _keys.length) {
int count = _keys.length * 2;
Modified:
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/SubArrayList4.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/SubArrayList4.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk5/core/src/com/db4o/collections/SubArrayList4.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -25,7 +25,6 @@
/**
* @exclude
* @sharpen.ignore
- * @decaf.ignore
*/
public class SubArrayList4<E> extends AbstractList4<E> {
Modified:
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/DiskFullTestCase.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/DiskFullTestCase.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/DiskFullTestCase.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -22,9 +22,15 @@
import java.io.*;
+import db4ounit.ConsoleTestRunner;
+
public class DiskFullTestCase extends DiskFullTestCaseBase {
private static final long NO_SIZE_LIMIT = -1;
+
+ public static void main(String[] args) {
+ new ConsoleTestRunner(DiskFullTestCase.class).run();
+ }
public void testReleasesFileLocks() {
assertReleasesFileLocks(false);
@@ -59,12 +65,12 @@
private void assertKeepsCommittedDataReadOnlyLimited(boolean doCache) {
storeOneAndFail(NO_SIZE_LIMIT, doCache);
- assertItemsStored(1, curFileLength(), true);
+ assertItemsStored(1, curFileLength(), true, doCache);
}
private void assertKeepsCommittedDataReadWriteUnlimited(boolean
doCache) {
storeOneAndFail(NO_SIZE_LIMIT, doCache);
- assertItemsStored(1, NO_SIZE_LIMIT, false);
+ assertItemsStored(1, NO_SIZE_LIMIT, false, doCache);
}
@Override
Modified:
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/DiskFullTestCaseBase.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/DiskFullTestCaseBase.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/DiskFullTestCaseBase.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -75,10 +75,16 @@
triggerDiskFullAndClose();
}
- protected void assertItemsStored(int numItems, Object conditionConfig,
boolean readOnly) {
+ protected void assertItemsStored(int numItems, Object conditionConfig,
boolean readOnly, boolean withCache) {
Assert.isNull(_db);
openDatabase(conditionConfig, readOnly, false);
- Assert.areEqual(numItems, _db.query(Item.class).size());
+ int itemCount = _db.query(Item.class).size();
+ if(withCache){
+ Assert.isTrue(itemCount == numItems || itemCount ==
numItems + 1);
+
+ }else{
+ Assert.areEqual(numItems, itemCount);
+ }
closeDb();
}
@@ -88,6 +94,8 @@
public void run() throws Throwable {
_db.store(new Item(42));
_db.commit();
+ _db.store(new Item(42));
+ _db.commit();
}
});
Assert.expect(Db4oIOException.class, new CodeBlock() {
Modified:
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/StackBasedDiskFullTestCase.java
===================================================================
---
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/StackBasedDiskFullTestCase.java
2009-03-06 12:10:55 UTC (rev 25901)
+++
trunk/contrib/db4o/src/db4ojdk5/test/src/com/db4o/db4ounit/common/io/StackBasedDiskFullTestCase.java
2009-03-06 18:15:50 UTC (rev 25902)
@@ -45,7 +45,7 @@
"commitParticipants",
hitThreshold);
storeNAndFail(config, 95, 10, doCache);
- assertItemsStored(90, config, false);
+ assertItemsStored(90, config, false, doCache);
}
protected void configureForFailure(ThrowCondition condition) {
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs