You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2014/06/10 01:27:11 UTC

[jira] [Closed] (ISIS-777) RO Viewer is not thread-safe for concurrent requests.

     [ https://issues.apache.org/jira/browse/ISIS-777?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dan Haywood closed ISIS-777.
----------------------------


> RO Viewer is not thread-safe for concurrent requests.
> -----------------------------------------------------
>
>                 Key: ISIS-777
>                 URL: https://issues.apache.org/jira/browse/ISIS-777
>             Project: Isis
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: core-1.4.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>            Priority: Critical
>             Fix For: core-1.5.0
>
>
> scenario is:
> - actions/listAll/invoke
>    - returning a list of references
> - forEach($get(...)) 
>    - multiple pending requests to similar resources at same time.
> Intermittent errors, one or more of these requests will fail with 500; has stack trace:
> {
>   "message" : "java.util.ConcurrentModificationException",
>  
>   "stackTrace" : [
>     "java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)",
>      "java.util.ArrayList$Itr.next(ArrayList.java:831)",
>          "com.google.common.collect.Iterators$7.computeNext(Iterators.java:646)",
>          "com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)",
>          "com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)",
>          "com.google.common.collect.Iterators.addAll(Iterators.java:356)",
>          "com.google.common.collect.Lists.newArrayList(Lists.java:146)",
>          "com.google.common.collect.Lists.newArrayList(Lists.java:128)",
>          "org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract.getObjectActions(ObjectSpecificationAbstract.java:744)",
>          "org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract.getObjectActions(ObjectSpecificationAbstract.java:758)",
>          "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer.withMembers(DomainObjectReprRenderer.java:215)",
> \n "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer.render(DomainObjectReprRenderer.java:150)",
> "org.apache.isis.viewer.restfulobjects.server.resources.ResourceAbstract.responseOfOk(ResourceAbstract.java:209)",
> "org.apache.isis.viewer.restfulobjects.server.resources.ResourceAbstract.responseOfOk(ResourceAbstract.java:204)",
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectRepresentation(DomainResourceHelper.java:195)",
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.object(DomainObjectResourceServerside.java:112)",
> "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
> "java.lang.reflect.Method.invoke(Method.java:606)",
> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
> "javax.servlet.http.HttpServlet.service(HttpServlet.java:725)",
> "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:301)",
> "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)",
> "org.apache.isis.viewer.restfulobjects.server.webapp.IsisTransactionFilterForRestfulObjects.doFilter(IsisTransactionFilterForRestfulObjects.java:41)",
> "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)",
> "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)",
> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)",
> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)",
> "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)",
> "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)",
> "org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)",
> "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)",
> "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)",
> "org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)",
> "org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)",
> "org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)",
> "org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)",
> "org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)",
> "org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)",
> "org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)",
> "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)",
> "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)",
> "org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)",
> "org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)",
> "org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)",
> "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)",
> "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74)",
> "org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)",
> "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)",
> "org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:509)",
> "org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015)",
> "org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:651)",
> "org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277)",
> "org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2451)",
> "org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2440)",
> "java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)",
> "java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)",
> "java.lang.Thread.run(Thread.java:744)" ],
>   "causedBy" : null



--
This message was sent by Atlassian JIRA
(v6.2#6252)