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
    • Method Summary

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

      • handleZombieOid

        boolean handleZombieOid​(long objectId)