Hi dear,

I'm running Tapestry 5.1.0.5 on IBM Websphere Portal 6.1 and I have an
error: when create object "ActionResponse", it throws java.lang.VerifyError
(please ignore why it cause java.lang.VerifyError). I wanna say that in
RecursiveServiceCreationCheckWrapper.createObject() method you catch only
RuntimeException, this is your code:
----------------
    public Object createObject()
    {
        if (locked)
            throw new
IllegalStateException(IOCMessages.recursiveServiceBuild(serviceDef));

        // Set the lock, to ensure that recursive service construction
fails.

        locked = true;

        try
        {
            return delegate.createObject();
        }
        catch (RuntimeException ex)
        {
            logger.error(IOCMessages.serviceConstructionFailed(serviceDef,
ex), ex);

            // Release the lock on failure; the service is now in an unknown
state, but we may
            // be able to continue from here.

            locked = false;

            throw ex;
        }

    }
----------------
and it cause "locked" variable not be changed to "false", it means that
"locked" is "true" now. Then when later it try to create this object again,
then it cause
IllegalStateException(IOCMessages.recursiveServiceBuild(serviceDef)).

I think that you should change
RecursiveServiceCreationCheckWrapper.createObject() method by catch
Throwable insteads of RuntimeException.

This is the full stacktrace:

[10/21/09 11:16:29:015 ICT] 00000039 SystemOut     O 2009-10-21 11:16:28,968
ERROR [WebContainer : 0] TapestryModule.RequestExceptionHandler
(DefaultRequestExceptionHandler.java:62)     - Processing of request failed
with uncaught exception: class loading constraint violated (class:
$ActionResponse_124754f5af3 method:
setEvent(Ljavax/xml/namespace/QName;Ljava/io/Serializable;)V) at pc: 0
java.lang.VerifyError: class loading constraint violated (class:
$ActionResponse_124754f5af3 method:
setEvent(Ljavax/xml/namespace/QName;Ljava/io/Serializable;)V) at pc: 0
    at java.lang.J9VMInternals.verifyImpl(Native Method)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:68)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:129)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:67)
    at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:522)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl.createProxyInstance(ModuleImpl.java:490)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl.createProxy(ModuleImpl.java:449)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl.access$900(ModuleImpl.java:32)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl$4.invoke(ModuleImpl.java:297)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:321)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl.access$100(ModuleImpl.java:32)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl$1.invoke(ModuleImpl.java:181)
    at
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withWrite(ConcurrentBarrier.java:140)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl$2.invoke(ModuleImpl.java:197)
    at
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:203)
    at
org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:98)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:320)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:566)
    at
org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:44)
    at
org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:56)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941)
    at
org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:41)
    at
$MasterObjectProvider_124754f5a1a.provide($MasterObjectProvider_124754f5a1a.java)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:696)
    at
org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:49)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils$4.run(InternalUtils.java:319)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:52)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:50)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:48)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:56)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:936)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils.injectIntoFields(InternalUtils.java:304)
    at
org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:64)
    at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941)
    at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
    at
org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
    at
org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
    at
org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:60)
    at
org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:52)
    at
org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
    at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941)
    at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
    at
org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:68)
    at
org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:57)
    at
$GenericRequestResponseService_124754f5a89.delegate($GenericRequestResponseService_124754f5a89.java)
    at
$GenericRequestResponseService_124754f5a89.getGenericResponse($GenericRequestResponseService_124754f5a89.java)
    at
com.mvnsoft.mvncms.tapestry5.base.BasePage.getGenericResponse(BasePage.java:69)
    at
com.mvnsoft.mvncms.tapestry5.base.BasePage.activate(BasePage.java:105)
    at
com.mvnsoft.mvncms.tapestry5.base.BasePage.dispatchComponentEvent(BasePage.java)
    at
com.mvnsoft.mvncms.tapestry5.pages.publishadmin.Index.dispatchComponentEvent(Index.java)
.......................
[10/21/09 11:27:44:890 ICT] 00000039 SystemOut     O
===java.lang.RuntimeException: Exception constructing service
'GenericRequestResponseService': Construction of service
'GenericRequestResponseService' has failed due to recursion: the service
depends on itself in some way. Please check
com.mvnsoft.mvncms.tapestry5.services.GenericRequestResponseServiceImplPortlet()
(at GenericRequestResponseServiceImplPortlet.java:30) via
com.mvnsoft.mvncms.tapestry5.services.MvnPublishAdminPortletModule.bind(ServiceBinder)
(at MvnPublishAdminPortletModule.java:30) for references to another service
that is itself dependent on service 'GenericRequestResponseService'.

Reply via email to