Now is the time for the newer and better Stable version - 7.4. As usual it is available in download center and recommended for product shipment. Note, that the production release did not change and is also 7.4.

The most prominent db4o features introduced since 6.4 release are:

  • And here is the list of Jira issues resolved since the previous Stable release (6.4):
  • COR-1451 - garbage collection breaks transparent persistence
  • COR-1441 - Memory Leak in ClientTransactionPool
  • COR-1439 - schema evolution not working correctly for client server mode.
  • COR-1412 - IStoredField.Get() returns null when attempting to retrieve a stored field that's been removed from class
  • COR-1396 - Updating from 6.4 to 7.4, some queries throw NullPointerExceptions
  • COR-1394 - Defrag does not check super classes for field indices when deciding on address mapping for an object slot
  • COR-1388 - Public API to query for number of objects of a given type
  • COR-1362 - Unable to get refactored field values due to wrong state in field meta data
  • COR-1353 - NRE with LINQ in Visual Basic
  • COR-1341 - Version handling for ClassAspects
  • COR-1337 - Custom Typehandler implementation as Class Aspects
  • COR-1335 - patch for adding maven deployment to build
  • COR-1334 - Deleting an object from one client and updating from another the object is lost
  • COR-1321 - [Java] Use ListTypeHandler for ArrayList
  • COR-1319 - NPE on ExtObjectContainer#storedClasses, if class is not present
  • COR-1318 - db4o 7.4 .NET 2 Development release download link is broken
  • COR-1313 - Remove flushFileBuffers(false) configuration setting.
  • COR-1311 - partial activated item when querying with a hashmap
  • COR-1301 - TracerBullet: Implement generic Map Typehandler
  • COR-1299 - Rename FirstClassHandler#readArrayHandler() and use context as parameter
  • COR-1298 - TypeHandler API: #cascadeActivation() should have an ActivationContext as parameter.
  • COR-1297 - Spike: Class derived from ArrayList using custom Typehandler
  • COR-1284 - Defragment against unknown classes runs into NPE on btree index lookup
  • COR-1282 - [decaf] functional test for resolving db4oj/db4ojdk1.2 conversion issues
  • COR-1281 - Running out of disk space causes unrecoverable data corruption
  • COR-1280 - Transparent Update Won't Work On Iterative Updates
  • COR-1279 - Delegate in untyped arrays cause ObjectNotStorableException
  • COR-1265 - ArrayHandler: Defragment old databases
  • COR-1264 - ArrayHandler: Updating from old databases to new format
  • COR-1262 - Pass configuration on to reflector on startup
  • COR-1261 - Move constructor handling into reflector
  • COR-1252 - Db4objects.Db4o.Tools-CF-2008 projects missing in Db4objects.Db4o.Tests-CF-2008.sln db4o-7.3.38.10577-net35.msi
  • COR-1248 - dll missing in db4o-7.3\bin\compact-3.5 for db4o-7.3.38.10577-net35.msi
  • COR-1238 - Trunk Version throws NullPointerException when using UniqueFieldValueConstraint and VersionNumbers
  • COR-1236 - Linq OrderBy operator fails when using TA enabled assemblies
  • COR-1234 - Port COR-1126 (explicit AND joins to implicit) to 6.4 branch
  • COR-1231 - Proper support for generic lists of nullable types
  • COR-1225 - For db4o-6.4.36.10458-net2.msi testcases not executed for Db4objects.Db4o.Tests-CF-2005.sln
  • COR-1223 - for db4o-6.4.36.10458-net2.msi few testcase fails for Db4objects.Db4o.Tests-2005.sln
  • COR-1219 - Linq Exception whne using TA enabled assemblies
  • COR-1218 - [Release 6.4] com.db4o.db4ounit.common.concurrency.query.ConcurrentQueryTestCase failed
  • COR-1217 - TracerBullet: Defragment for Java ArrayList using the new Typehandler
  • COR-1216 - TracerBullet: Deletion for Java ArrayList using the new Typehandler
  • COR-1214 - Db server closed when upgraded from 5.5 version to 6.4.14.8331 with btree based freespace management system
  • COR-1204 - Define release 7.3 for April
  • COR-1187 - Lazy queries returned by ObjectSet.iterator don't respect the db4o lock
  • COR-1186 - Fully remove second write indirection logic from Marshalling
  • COR-1179 - Linq 'orderby' throwing exceptions
  • COR-1174 - Mark factory methods using global configuration as deprecated
  • COR-1173 - OSGi class loading configuration fails when global configuration is used
  • COR-1170 - Version update for System.Collections.Generic.List
  • COR-1169 - Reading and Writing of System.Collections.Generic.List
  • COR-1167 - Send only the Db4oDatabase id intestead of the full signature when sending the UUID of deleted objects to the committed callback
  • COR-1161 - Files missing in \db4o-7.2\bin\net-3.5 of db4o-7.2.30.10211-net35.msi
  • COR-1160 - Files missing in \bin\compact-3.5 of db4o-7.2.30.10211-net35.msi
  • COR-1157 - Files missing in \bin\compact-2.0 of db4o-7.2.30.10211
  • COR-1152 - [Linq] Query caching yielding wrong results
  • COR-1147 - Solution doesn't compile
  • COR-1146 - db4o.chm documentation is not generated
  • COR-1145 - Issues in the .NET 35 LINQ build
  • COR-1141 - Produce plan for Generic Collections and Fast Collections
  • COR-1140 - Blog about optimized LINQ for db4o
  • COR-1128 - TracerBullet: Query Java ArrayList using the new Typehandler
  • COR-1126 - Optimize constraint graph to remove ANDs between constraints if not needed
  • COR-1123 - TracerBullet: Store and Retrieve Java ArrayList using the new Typehandler
  • COR-1117 - Callback API gets reference of a new ObjectContainer
  • COR-1114 - Adapt TA/TP .NET bytecode instrumentation to new Activatable#bind() semantics
  • COR-1113 - blog about RollbackStrategy with deactivate example
  • COR-1110 - Adapt TA/TP Java bytecode instrumentation to new Activatable#bind() semantics
  • COR-1109 - Benchmark unoptimized linq to optimized linq
  • COR-1108 - integrate linq on the build
  • COR-1107 - Transparent Persistence (manual implementation) does not work in VB.NET
  • COR-1105 - [TA] java.lang.IllegalStateException if unbind is called
  • COR-1097 - Corrupted class index in some delete/re-add scenarios
  • COR-1094 - ArrayList4.CopyTo doesn't activate
  • COR-1086 - SODA query returns wrong query result for .NET interfaces
  • COR-1085 - Implement databaseGrowthSize configuration to reduce fragmentation
  • COR-1083 - Code review/refactoring for legacy handler defrag
  • COR-1081 - [NQ] Native query does no longer work with current svn version: InvalidIteratorException
  • COR-1079 - Configuration interface for creating custom Typehandlers
  • COR-1074 - unbind Activatable objects when the ObjectContainer is closed
  • COR-1073 - 'closing' event to notify interested parties that an ObjectContainer is being closed
  • COR-1072 - Activatable objects should be bound to their Activator upon Store
  • COR-1071 - introduce TransparentUpdateSupport configuration option
  • COR-1070 - introduce RollbackStrategy interface for Transparent Update
  • COR-1066 - [TA] FileEnhancer doesn't work anymore
  • COR-1065 - Transparent Update for ArrayList4
  • COR-1064 - Transparent Update for ArrayMap4
  • COR-1063 - Clean up FreeSpaceManager interface
  • COR-1047 - Ability to reply to client messages using MessageRecipient
  • COR-1043 - [.JAVA] Transparent Update Instrumentation
  • COR-1042 - [.NET] Transparent Update Instrumentation
  • COR-1041 - Transparent Update Infrastructure
  • COR-1040 - Remove 'useIndexSystem' freespace system
  • COR-1038 - Improve ObjectContainer interface
  • COR-1033 - extract TypeHandler4 from ClassMetadata
  • COR-1027 - Generic Collection Design and Store/Retrieve "Tracer bullet"
  • COR-1025 - Defragment with StoredClassFilter corrupts the database
  • COR-1020 - Finalize Typehandler4 interface, implement compare(obj, obj)
  • COR-1019 - [TA] Setter Methods doesn't get instrumented for transparent activation
  • COR-1013 - [.NET CF 2.0] Make sure ArrayList4 ta tests passes on .NET CF 2.0
  • COR-997 - Pass all test cases on Android
  • COR-990 - [.NET] Build time NQ optimization
  • COR-989 - [.NET] TA instrumentation should skip non storable field types
  • COR-988 - Refactor Db4oAdmin
  • COR-987 - [.NET] Respecting the filter for the field's DeclaringType
  • COR-986 - .NET MSBuild task - implement options by-name, by-filter and by-attribute
  • COR-983 - [.NET] Instrumenting Db4objects.Db4o.Tests leads to peverify errors
  • COR-981 - Enhancing DTrace to be able to log exceptional conditions to files
  • COR-980 - [.NET] TA instrumentation for type hierarchies that contains generic base classes and generic fields
  • COR-975 - #deactivate and #refresh test cases fail
  • COR-961 - Simplest Possible Ant Script on Instrumentation
  • COR-960 - [TA] add TAFixtureConfiguration to cruise control build
  • COR-958 - New ExtObjectContainer#activate(obj) without parameters that respects activation settings
  • COR-956 - Diagnostic events for query engine are misleading when it fails to load Db4objects.Db4o.Tools.dll assembly
  • COR-955 - [.Net] Diagnostic events for query engine are misleading when it is unable to optimize a NQ.
  • COR-953 - [TA] Make sure TA mode respects cascading() event cancellation
  • COR-951 - Ensure correct Bloat handling of JDK5 class file format specifics
  • COR-948 - TA tests for second classes types
  • COR-947 - Finalize Typehandler4 interface: Refactor defrag() method
  • COR-946 - Finalize Typehandler4 interface: Refactor delete() method.
  • COR-945 - Finalize Typehandler4 interface, use design as spec'd in forums
  • COR-944 - Run db4o tests in TA mode
  • COR-941 - AssemblyInfo.cs in deployed sources shows the wrong version number
  • COR-940 - Integrate TA with RSSOwl
  • COR-939 - Updates to Map cause database to grow unexpectedly
  • COR-936 - TA/Java: Ensure Jars are accepted as instrumentation source
  • COR-932 - TA tests for multi-dimensional arrays
  • COR-931 - TA tests for String, Date, and Array
  • COR-929 - TA tests for different data types
  • COR-927 - Move TA code to core, move TA collection code to JDK5
  • COR-926 - TA/Java: Sample project for instrumentation usage
  • COR-910 - TACol: Concurrency tests for ArrayMap4
  • COR-909 - TACol: Concurrency tests for ArrayList4
  • COR-900 - activateDepth(0) doesn't work in c/s mode
  • COR-896 - [.NET] Review DateTime Handler Upgrade test case
  • COR-892 - Simplify Typehandler4, remove read(MarshallerFamily) and delete all old reading code
  • COR-888 - [.NET] Run TypeHandler upgrade tests against libraries providing the legacy API
  • COR-882 - Defrag causes data loss in 6.3
  • COR-879 - JAVA: Improve mechanism to specify classes to be persisted/instrumented
  • COR-878 - Simplify Typehandler4, remove readQuery(), readSubCandidate()
  • COR-874 - [.NET] NewTypehandler: Database file creation for upgrade tests
  • COR-873 - Simplify Typehandler4, remove classReflector(), getID(), linkLength()
  • COR-872 - java packages should include the full version name (e.g.: db4o-java5-6.4.8.2078.zip, etc...)
  • COR-870 - add svn.revision to Db4oVersion
  • COR-869 - Typehandler updates for .NET structs
  • COR-868 - Typehandler updates for .NET primitive types
  • COR-867 - TypeHandler updates for arrays and multi-dimensional arrays
  • COR-866 - Typehandler updates for String, Date and double
  • COR-865 - TypeHandler updates for boolean, byte, char
  • COR-860 - NewTypehandler: Database file creation for upgrade tests
  • COR-859 - TypeHandler upgrade tests for short long float
  • COR-856 - TypeHandler upgrade tests for int
  • COR-855 - TypeHandler Version sets to replace MarshallerFamily
  • COR-843 - Complete new TypeHandler reading for all Types
  • COR-840 - New Simple TypeHandler
  • COR-839 - TA/JAVA: Provide Ant task for build time TA instrumentation
  • COR-838 - Factor out common Bloat bytecode abstraction library from NQ, TA, CLDC,...
  • COR-829 - .NET: Support for multiple assemblies
  • COR-827 - .NET: Change instrumentation from method to field access (self encapsulate field)
  • COR-826 - Java: Change instrumentation from method to field access (self encapsulate field)
  • COR-824 - Java: add TA test suite to cruise control
  • COR-823 - .NET: add TA test suite to cruise control
  • COR-822 - TAStrategy: Break cascading when TA aware class is found
  • COR-821 - TAStrategy: Implement configurations
  • COR-820 - TAStrategy: Configuration API Design
  • COR-819 - Activation Strategies for Transparent Activation
  • COR-818 - TACol: .NET Dictionary
  • COR-817 - TACol: .NET ArrayList
  • COR-816 - TACol: Java Map
  • COR-815 - TACol: Java ArrayList
  • COR-805 - TypeHandlerRepository: Dynamic Typehandler generation
  • COR-804 - TypeHandlerRepository: Create basic hardwired repository
  • COR-803 - Versioned Typehandler4 Repository
  • COR-800 - NET: preserving debugging information
  • COR-797 - Java: Proper handling of inheritance hierarchies
  • COR-795 - dont instrument compiler generated classes
  • COR-781 - FastCollections: New TypeHandler4 writing for .NET types
  • COR-780 - FastCollections: New TypeHandler reading primitive types Java
  • COR-775 - Defragmenting an encrypted DB produces unencrypted DB
  • COR-770 - Defrag on 5.2 database after upgrade results in data loss -> Legacy Handler Defrag
  • COR-765 - Java client does not work with .NET server and vice versa
  • COR-755 - .NET: Proper handling of inheritance hierarchies
  • COR-618 - Investigate handling of non-private field access for Transparent Activation
  • COR-591 - Extract Java bytecode instrumentation tool
  • COR-547 - Storing String value in a field declared as Comparable gives unexpected results
  • COR-546 - ObjectInfo.getUUID for deleted object throws NPE in a committed callback
  • COR-536 - Don't catch Exception if unnecessary
  • COR-505 - Add configuration item for accessing java databases from .net
  • COR-242 - C#, Generic IList property that is a string[] does not get stored
  • COR-240 - Fields of type java.lang.Number cannot be stored
  • COR-199 - StackOverflow occurs when storing a plain object instance as a field.
  • COR-147 - sensible exception handling
  • COR-102 - Performance and memory progress needs to be constantly visible