You can pass a defragmentation listener to the defragmentation process. This listener will be notified when there's no object for an id in the database. This means that a object has a reference to a non-existing object. This happens when you delete objects which are still referenced by other objects.
DefragmentConfig config = new DefragmentConfig("database.db4o"); Defragment.defrag(config,new DefragmentListener() { @Override public void notifyDefragmentInfo(DefragmentInfo defragmentInfo) { System.out.println(defragmentInfo); } });