[jboss-jira] [JBoss JIRA] (WFLY-10016) HTTP + EJB - UnsupportedOperationException trying to write to an AbstractMap
Brian Stansberry (JIRA)
issues at jboss.org
Wed Mar 14 11:20:00 EDT 2018
[ https://issues.jboss.org/browse/WFLY-10016?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13545903#comment-13545903 ]
Brian Stansberry commented on WFLY-10016:
-----------------------------------------
Looking at how AssociationImpl works, I think the fix has to be in HttpInvocationHandler. Association.receiveInvocationRequest is definitely treating the InvocationRequest passed as a param as a mutable object, including the nested attachments map. HttpInvocationHandler.ResolvedInvocation.writeInvocationResult is writing the current state of that map, which is how the client gets the relevant affinity data (plus whatever other stuff was added during invocation of the ejb method.)
> HTTP + EJB - UnsupportedOperationException trying to write to an AbstractMap
> ----------------------------------------------------------------------------
>
> Key: WFLY-10016
> URL: https://issues.jboss.org/browse/WFLY-10016
> Project: WildFly
> Issue Type: Bug
> Components: EJB
> Reporter: Brian Stansberry
> Assignee: Stuart Douglas
>
> [~tremes] Has hit this failure when running some tests against our OpenShift images using WF code from, I believe, 12 CR1.
> {code}
> 13:03:50,832 ERROR [org.jboss.as.ejb3.remote] (default task-1) WFLYEJB0150: Could not write method invocation failure for method public abstract void com.redhat.xpaas.ejb.server.RemoteCounter.increment() on bean named CounterBean for appname modulename ROOT distinctname due to: java.lang.UnsupportedOperationException
> at java.util.AbstractMap.put(AbstractMap.java:209)
> at org.jboss.as.ejb3.remote.AssociationImpl.updateAffinities(AssociationImpl.java:267)
> at org.jboss.as.ejb3.remote.AssociationImpl.lambda$receiveInvocationRequest$0(AssociationImpl.java:233)
> at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
> at java.lang.Thread.run(Thread.java:748)
> {code}
> He or [~luck3y] can give you more details re the specific test.
> Just walking through code, my guess is the Collections.emptyMap() produced at [1] is getting passed through the stack to the failing code. (I'm filing this because I did this bit of brilliant analysis. ;) )
> [1] https://github.com/wildfly/wildfly-http-client/blob/master/ejb/src/main/java/org/wildfly/httpclient/ejb/HttpInvocationHandler.java#L184
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the jboss-jira
mailing list