Author: markt Date: Thu Jan 31 17:28:04 2019 New Revision: 1852620 URL: http://svn.apache.org/viewvc?rev=1852620&view=rev Log: Ensure a DeploymentException rather than an IllegalArgumentException is thrown if a method annotated with @OnMessage does not conform to the requirements set out in the Javadoc.
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java?rev=1852620&r1=1852619&r2=1852620&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java Thu Jan 31 17:28:04 2019 @@ -407,7 +407,7 @@ public class PojoMethodMapping { if (indexString == -1) { indexString = i; } else { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } @@ -415,7 +415,7 @@ public class PojoMethodMapping { if (indexReader == -1) { indexReader = i; } else { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } @@ -423,7 +423,7 @@ public class PojoMethodMapping { if (indexBoolean == -1) { indexBoolean = i; } else { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateLastParam", m.getName(), m.getDeclaringClass().getName())); } @@ -431,7 +431,7 @@ public class PojoMethodMapping { if (indexByteBuffer == -1) { indexByteBuffer = i; } else { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } @@ -439,7 +439,7 @@ public class PojoMethodMapping { if (indexByteArray == -1) { indexByteArray = i; } else { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } @@ -447,7 +447,7 @@ public class PojoMethodMapping { if (indexInputStream == -1) { indexInputStream = i; } else { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } @@ -456,7 +456,7 @@ public class PojoMethodMapping { indexPrimitive = i; primitiveType = types[i]; } else { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } @@ -464,7 +464,7 @@ public class PojoMethodMapping { if (indexSession == -1) { indexSession = i; } else { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateSessionParam", m.getName(), m.getDeclaringClass().getName())); } @@ -472,13 +472,13 @@ public class PojoMethodMapping { if (indexPong == -1) { indexPong = i; } else { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicatePongMessageParam", m.getName(), m.getDeclaringClass().getName())); } } else { if (decoderMatch != null && decoderMatch.hasMatches()) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } @@ -486,6 +486,8 @@ public class PojoMethodMapping { if (decoderMatch.hasMatches()) { indexPayload = i; + } else { + throw new DeploymentException("Boo!"); } } } @@ -493,7 +495,7 @@ public class PojoMethodMapping { // Additional checks required if (indexString != -1) { if (indexPayload != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } else { @@ -502,7 +504,7 @@ public class PojoMethodMapping { } if (indexReader != -1) { if (indexPayload != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } else { @@ -511,7 +513,7 @@ public class PojoMethodMapping { } if (indexByteArray != -1) { if (indexPayload != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } else { @@ -520,7 +522,7 @@ public class PojoMethodMapping { } if (indexByteBuffer != -1) { if (indexPayload != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } else { @@ -529,7 +531,7 @@ public class PojoMethodMapping { } if (indexInputStream != -1) { if (indexPayload != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } else { @@ -538,7 +540,7 @@ public class PojoMethodMapping { } if (indexPrimitive != -1) { if (indexPayload != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.duplicateMessageParam", m.getName(), m.getDeclaringClass().getName())); } else { @@ -547,7 +549,7 @@ public class PojoMethodMapping { } if (indexPong != -1) { if (indexPayload != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.pongWithPayload", m.getName(), m.getDeclaringClass().getName())); } else { @@ -563,28 +565,28 @@ public class PojoMethodMapping { indexBoolean = -1; } if (indexPayload == -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.noPayload", m.getName(), m.getDeclaringClass().getName())); } if (indexPong != -1 && indexBoolean != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.partialPong", m.getName(), m.getDeclaringClass().getName())); } if(indexReader != -1 && indexBoolean != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.partialReader", m.getName(), m.getDeclaringClass().getName())); } if(indexInputStream != -1 && indexBoolean != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.partialInputStream", m.getName(), m.getDeclaringClass().getName())); } if (decoderMatch != null && decoderMatch.hasMatches() && indexBoolean != -1) { - throw new IllegalArgumentException(sm.getString( + throw new DeploymentException(sm.getString( "pojoMethodMapping.partialObject", m.getName(), m.getDeclaringClass().getName())); } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1852620&r1=1852619&r2=1852620&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Thu Jan 31 17:28:04 2019 @@ -211,6 +211,12 @@ specification and ensure that the deployment of an Endpoint fails if <code>@PathParam</code> is used with an invalid parameter type. (markt) </fix> + <fix> + Ensure a <code>DeploymentException</code> rather than an + <code>IllegalArgumentException</code> is thrown if a method annotated + with <code>@OnMessage</code> does not conform to the requirements set + out in the Javadoc. (mark) + </fix> </changelog> </subsection> <subsection name="Web applications"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org