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: [email protected]
Reporter: [email protected]
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: [email protected]
For additional commands, e-mail: [email protected]