Interface StorageGCZombieOidHandler

All Known Implementing Classes:
StorageGCZombieOidHandler.Default
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface
public interface StorageGCZombieOidHandler
Note on zombie OID / null entry during GC: This should of course never happen and must be seen as a bug. However the GC is not necessarily the place to break in such a case. Currently, this can even happen regularly, if the last reference to an entity is removed, then the GC deleted the entity and then a store reestablishes the reference to the then deleted entity. This might be a bug in the user code or in the storer or object registry or whatever, but it should be recognized and handled at that point, not break the GC. For that reason, handling an encountered zombie OID is modularized with the default of ignoring it. Note that ConstantIds for JLS constants and TypeIds are intentionally unresolvable in the persistent state.
See Also:
Persistence.IdType.TID, Persistence.IdType.CID
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Interface Description
    static class  StorageGCZombieOidHandler.Default  
  • Method Summary

    Modifier and Type Method Description
    boolean handleZombieOid​(long objectId)