-
Bug
-
Resolution: Done
-
Major
-
7.1.3.Final (EAP)
-
None
Class:
org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler
Method:
public void processMessage(ChannelAssociation, MessageInputStream) throws IOException;
This code fragment:
try { methodParams[i] = unmarshaller.readObject(); } catch (ClassNotFoundException cnfe) { /.../ return; }
doesn't catch java.lang.IllegalArgumentException.
This causes the server hangs.
Example stacktrace:
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)
I caught java.lang.Exception. It helps.