Author: violetagg Date: Thu Aug 13 20:48:50 2015 New Revision: 1695778 URL: http://svn.apache.org/r1695778 Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=58232 Add PojoMethodMapping to the user properties only if there are annotated methods
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java 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=1695778&r1=1695777&r2=1695778&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java Thu Aug 13 20:48:50 2015 @@ -257,6 +257,11 @@ public class PojoMethodMapping { } + public boolean hasMessageHandlers() { + return !onMessage.isEmpty(); + } + + public Set<MessageHandler> getMessageHandlers(Object pojo, Map<String,String> pathParameters, Session session, EndpointConfig config) { Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1695778&r1=1695777&r2=1695778&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Thu Aug 13 20:48:50 2015 @@ -185,9 +185,11 @@ public class WsServerContainer extends W // Add method mapping to user properties PojoMethodMapping methodMapping = new PojoMethodMapping(sec.getEndpointClass(), sec.getDecoders(), path); - sec.getUserProperties().put( - org.apache.tomcat.websocket.pojo.Constants.POJO_METHOD_MAPPING_KEY, - methodMapping); + if (methodMapping.getOnClose() != null || methodMapping.getOnOpen() != null + || methodMapping.getOnError() != null || methodMapping.hasMessageHandlers()) { + sec.getUserProperties().put(org.apache.tomcat.websocket.pojo.Constants.POJO_METHOD_MAPPING_KEY, + methodMapping); + } UriTemplate uriTemplate = new UriTemplate(path); if (uriTemplate.hasParameters()) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org