Package org.apache.tapestry5.ioc.internal

# Class RecursiveServiceCreationCheckWrapper

java.lang.Object
org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper

All Implemented Interfaces:
  `ObjectCreator`

public class RecursiveServiceCreationCheckWrapper extends Object implements ObjectCreator
Decorator for `ObjectCreator` that ensures the service is only created once. This detects a situation where the service builder for a service directly or indirectly invokes methods on the service itself. This would show up as a second call up the ServiceCreator stack injected into the proxy, potentially leading to endless recursion. We try to identify that recursion and produce a useable exception report.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RecursiveServiceCreationCheckWrapper(ServiceDef serviceDef, ObjectCreator delegate, org.slf4j.Logger logger)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `createObject()`
  We could make this method synchronized, but in the context of creating a service for a proxy, it will already be synchronized (inside the proxy).

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### RecursiveServiceCreationCheckWrapper

    public RecursiveServiceCreationCheckWrapper(ServiceDef serviceDef, ObjectCreator delegate, org.slf4j.Logger logger)

- ## Method Details

  - ### createObject

    public Object createObject()
    We could make this method synchronized, but in the context of creating a service for a proxy, it will already be synchronized (inside the proxy).
    Specified by:
      `createObject` in interface `ObjectCreator`