[jboss-jira] [JBoss JIRA] (AS7-6086) Deadlock in org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler
RH Bugzilla Integration (JIRA)
jira-events at lists.jboss.org
Sat Mar 16 06:28:42 EDT 2013
[ https://issues.jboss.org/browse/AS7-6086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12761455#comment-12761455 ]
RH Bugzilla Integration commented on AS7-6086:
----------------------------------------------
wfink at redhat.com made a comment on [bug 922340|https://bugzilla.redhat.com/show_bug.cgi?id=922340]
+++ This bug was initially created as a clone of Bug #922339 +++
Created attachment 711015
Maven project to reproduce the issue
Description of problem:
The MethodInvocationMessageHandler doesn't catch java.lang.IllegalArgumentException.
This causes the server hangs.
How reproducible:
A simple reproducer based on the ejb-remote quickstart is attached
Steps to Reproduce:
1. compile and deploy the project (mvn clean install jboss-as:deploy)
2. run the client
java -cp target/classes:../server-side/target/jboss-as-ejb-remote-app-client.jar:../../jboss/bin/client/jboss-client.jar org.jboss.as.quickstarts.ejb.remote.client.RemoteEJBClient
Actual results:
Client hung
Expected results:
Exception at client side that the marshalling failed
--- Additional comment from on 2013-03-16 06:23:55 EDT ---
Problem is solved in EAP6.1.Alpha
> Deadlock in org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler
> ---------------------------------------------------------------------------------------
>
> Key: AS7-6086
> URL: https://issues.jboss.org/browse/AS7-6086
> Project: Application Server 7
> Issue Type: Bug
> Components: EJB, Remoting
> Affects Versions: 7.1.3.Final (EAP)
> Environment: Doesn't matter.
> Reporter: Krzysztof Noceń
> Assignee: Eduardo Martins
> Fix For: EAP 6.1.0.Alpha (7.2.0.Final), 7.1.4.Final (EAP)
>
>
> Class:
> {code}
> org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler
> {code}
> Method:
> {code}
> public void processMessage(ChannelAssociation, MessageInputStream) throws IOException;
> {code}
> This code fragment:
> {code}
> try {
> methodParams[i] = unmarshaller.readObject();
> } catch (ClassNotFoundException cnfe) {
> /.../
> return;
> }
> {code}
> doesn't catch *java.lang.IllegalArgumentException*.
> This causes the server hangs.
> Example stacktrace:
> {code}
> java.lang.IllegalArgumentException: No enum const org.example.ExampleEnum.ENUM_VALUE
> at java.lang.Enum.valueOf(Enum.java:196)
> at org.jboss.marshalling.river.RiverUnmarshaller.resolveEnumConstant(RiverUnmarshaller.java:1549)
> at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1293)
> at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
> at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
> at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37)
> at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.processMessage(MethodInvocationMessageHandler.java:164)
> at org.jboss.as.ejb3.remote.protocol.versionone.VersionOneProtocolChannelReceiver.handleMessage(VersionOneProtocolChannelReceiver.java:182)
> at org.jboss.remoting3.remote.RemoteConnectionChannel$5.run(RemoteConnectionChannel.java:429)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> {code}
> I caught *java.lang.Exception*. It helps.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list