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

Reply via email to