[arquillian-issues] [JBoss JIRA] (ARQ-1769) org.jboss.arquillian.warp.spi.exception.StoreHasAssociatedObjectsException

William Crowell (JIRA) issues at jboss.org
Wed May 28 16:43:15 EDT 2014


    [ https://issues.jboss.org/browse/ARQ-1769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12971427#comment-12971427 ] 

William Crowell commented on ARQ-1769:
--------------------------------------

I moved to phantomjs but I still have the issue.  I don't think it is an issue with the client-side code runner but I will still move to phantomjs regardless.

Using 1.0.0.Alpha7, the test WAR application starts up; however, the first request (using the driver.navigate().to("http://localhost:8080...") to the application gives the org.jboss.arquillian.warp.spi.exception.StoreHasAssociatedObjectsException.  If I set a breakpoint in the test case and open a browser and hit the URL directly I get the same StoreHasAssociatedObjectsException.

In org.jboss.arquillian.warp.impl.server.lifecycle.LifecycleManagerStoreImpl on line 126 I see this check in checkUnbound(LifecycleManager):

@Override
protected <T> void checkUnbound(LifecycleManager manager) throws StoreHasAssociatedObjectsException {
  Tracking tracking = TRACK.get(manager);
  if (tracking != null) {
    if (!tracking.isEmpty()) {
      throw new StoreHasAssociatedObjectsException();
    }
    TRACK.remove(manager);
  }
}

The tracking HashMap has an object with the key name "class javax.faces.context.FacesContext".

However, 1.0.0.Alpha6, has different behavior.  The first request works and the Activity inner classes' perform() method gets called, but the inspect inner class never gets called even though we match for all requests:

group().observe(request()).inspect(new Inspection()...

Then org.jboss.arquillian.warp.impl.client.execution.SynchronizationPoint.awaitResponses() just sits until the arquillian.warp.synchronization.timeout (default of 5 seconds) expires:

...
(E) PassivateManager
  (I) ManagerActivationObserver.deactivateApplicationContext
(E) AfterRequest
  (I) LifecycleTestClassExecutor.afterRequest
(E) PassivateManager
  (I) ManagerActivationObserver.deactivateApplicationContext
    (E) AwaitResponse
      (O) WarpExecutionObserver.awaitResponse
...

I looked at the jsf-ftest sample code on github to see if I was missing something.  I see some archives like arquillian-warp-jsf that contain a fragment for faces-config.xml.  It defines a WarpPhaseListener and a FacesContextFactoryWrapper.  

I included arquillian-warp-jsf in my pom.xml but the problem remained.

I have one of two possible theories here:

1) I am missing a dependency which binds/unbinds the FacesContext.

2) Is it possible that Arquillian Warp does not support PrimeFaces and/or Spring WebFlow?  I see quite a bit of support for RichFaces.  Maybe an adapter needs to be written for PrimeFaces.  Not sure.

> org.jboss.arquillian.warp.spi.exception.StoreHasAssociatedObjectsException
> --------------------------------------------------------------------------
>
>                 Key: ARQ-1769
>                 URL: https://issues.jboss.org/browse/ARQ-1769
>             Project: Arquillian
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Extension - Warp
>    Affects Versions: warp_1.0.0.Alpha7, 1.1.3.Final, 1.1.4.Final
>         Environment: Windows 7 Enterprise SP1 64-bit
>            Reporter: William Crowell
>
> I am using the following:
> Arquillian Core: 1.1.4.Final (as well as 1.1.3.Final)
> Arquillian Drone: 1.2.4.Final (I've tried Drone 2 as well)
> Arquillian Warp: 1.0.0.Alpha7 (as well as 1.0.0.Beta1-SNAPSHOT)
> Arquillian Transaction: 1.0.1.Final
> Arquillian Tomcat 7 Embedded Container using Tomcat 7.0.27: 1.0.0.Final-SNAPSHOT
> Spring: 3.2.4.RELEASE
> Spring Web: 3.2.2.RELEASE
> Spring Security: 3.1.4.RELEASE
> Spring WebFlow: 2.4.0.RC1
> PrimeFaces 3.4.2
> JUnit: 4.8.2
> Mojarra 2.1.17
> I am receiving this exception:
> {code}
> java.lang.IllegalStateException: org.jboss.arquillian.warp.spi.exception.StoreHasAssociatedObjectsException 
> at org.jboss.arquillian.warp.impl.server.lifecycle.LifecycleManagerObserver.finalizeManager(LifecycleManagerObserver.java:69)
> ...
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> at org.jboss.arquillian.warp.impl.server.test.LifecycleTestClassExecutor.afterRequest(LifecycleTestClassExecutor.java:78)
> ...
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145)
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116)
> at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
> at org.jboss.arquillian.warp.impl.server.request.RequestContextHandler.handleRequestContext(RequestContextHandler.java:93)
> ...
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145)
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116)
> at org.jboss.arquillian.warp.impl.server.execution.WarpFilter.doFilterWarp(WarpFilter.java:151)
> at org.jboss.arquillian.warp.impl.server.execution.WarpFilter.doFilterHttp(WarpFilter.java:120)
> at org.jboss.arquillian.warp.impl.server.execution.WarpFilter.doFilter(WarpFilter.java:93)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
> at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> ...
> Caused by: org.jboss.arquillian.warp.spi.exception.StoreHasAssociatedObjectsException
> at org.jboss.arquillian.warp.impl.server.lifecycle.LifecycleManagerStoreImpl.checkUnbound(LifecycleManagerStoreImpl.java:126)
> at org.jboss.arquillian.warp.spi.LifecycleManager.checkUnbound(LifecycleManager.java:158)
> at org.jboss.arquillian.warp.impl.server.lifecycle.LifecycleManagerObserver.finalizeManager(LifecycleManagerObserver.java:67)
> ... 74 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.2.3#6260)


More information about the arquillian-issues mailing list