Class RecursiveSearchException

All Implemented Interfaces:
Serializable

public class RecursiveSearchException extends FactoryRegistryException
Thrown when FactoryRegistry is invoked recursively for the same category. This exception is often the result of a programming error. It happen typically when an implementation of some FooFactory interface queries in their constructor, directly or indirectly, FactoryRegistry.getFactory(Class, Predicate, Hints, Hints.Key)} for the same category (namely FooFactory.class). Factories implemented as wrappers around other factories of the same kind are the most likely to fall in this canvas. If this RecursiveSearchException was not throw, the application would typically dies with a StackOverflowError.

A workaround for this exception is to invoke getServiceProvider outside the constuctor, when a method first need it.

Since:
2.3
Author:
Martin Desruisseaux
See Also:
  • Constructor Details

    • RecursiveSearchException

      public RecursiveSearchException(Class<?> category)
      Creates a new exception with a default message determined from the specified category.
    • RecursiveSearchException

      public RecursiveSearchException(String message)
      Creates a new exception with the specified detail message.