PersistentClassROF#getObject method performs a shallow search so not finding all subclasses

Page bloom

We've noticed a problem where, during object retrieval of an object with a class that is 2 levels derived from an abstract base class, DN displays the message:

[WARN ] 05:33:20.915 Retrieve - Found type=class but abstract and more than 1 concrete subclass ([,,]). Really you need a discriminator to help identifying the type. Choosing class

This was unexpected because:
  • A discriminator is configured in the abstract base class
  • A discriminator value is provided in each of the derived classes
  • The list of concrete subclasses is only a small subset of the classes in the model
  • It is only showing the list of subclasses immediately extending the abstract base class
Looking at PersistentClassROF#getObject we noticed that the call to getSubclassesForClass passes 'false' for the 'includeDescendants' parameter - which would prevent it from finding subclasses beyond the classes that immediately extend the abstract base class.

            String[] subclasses =, false);
 Is this intentional? How will it ever find the full range of subclasses if this parameter is false?

Join { to automatically receive all group messages.