https://bz.apache.org/bugzilla/show_bug.cgi?id=57969

            Bug ID: 57969
           Summary: @PathParam annotation captures incorrect value under
                    high load
           Product: Tomcat 7
           Version: 7.0.59
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P2
         Component: WebSocket
          Assignee: dev@tomcat.apache.org
          Reporter: peter_kova...@hotmail.com

Under high load, given a @ServerEndpoint like


@ServerEndpoint(value="/websocket/{key}", configurator=MyConfigurator.class)
public class ExecutionMonitoringEndpoint{
...
@OnMessage
public void onMessage(@PathParam("key") String key, String payload) {
   ...
}
}
//where MyConfigurator is used to only inject a custom property like
ServerEndpointConfig.conf.getUserProperties().put(...);

we noticed that the captured PathParam ("key" in this case) was sometimes mixed
up with another concurrent request - causing double subscriptions in our
pub/sub application.


Changing the above to

@ServerEndpoint(value="/websocket/{key}", configurator=MyConfigurator.class)
public class ExecutionMonitoringEndpoint{
...
@OnMessage
public void onMessage(Session session, String payload) {
  String key = session.getPathParameters().get("key");
}
}

fixed the problem.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to