You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/08/02 22:28:13 UTC
svn commit: r1509847 - in /tomcat/trunk/java/javax/websocket:
DefaultClientEndpointConfig.java server/DefaultServerEndpointConfig.java
Author: markt
Date: Fri Aug 2 20:28:12 2013
New Revision: 1509847
URL: http://svn.apache.org/r1509847
Log:
Use the same Map implementation for user properties to prevent implementation conflicts
Modified:
tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java
tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java
Modified: tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java?rev=1509847&r1=1509846&r2=1509847&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java (original)
+++ tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java Fri Aug 2 20:28:12 2013
@@ -16,9 +16,9 @@
*/
package javax.websocket;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
final class DefaultClientEndpointConfig implements ClientEndpointConfig {
@@ -26,7 +26,7 @@ final class DefaultClientEndpointConfig
private final List<Extension> extensions;
private final List<Class<? extends Encoder>> encoders;
private final List<Class<? extends Decoder>> decoders;
- private final Map<String,Object> userProperties = new HashMap<>();
+ private final Map<String,Object> userProperties = new ConcurrentHashMap<>();
private final Configurator configurator;
Modified: tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java?rev=1509847&r1=1509846&r2=1509847&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java (original)
+++ tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java Fri Aug 2 20:28:12 2013
@@ -16,9 +16,9 @@
*/
package javax.websocket.server;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import javax.websocket.Decoder;
import javax.websocket.Encoder;
@@ -36,7 +36,7 @@ final class DefaultServerEndpointConfig
private final List<Class<? extends Encoder>> encoders;
private final List<Class<? extends Decoder>> decoders;
private final Configurator serverEndpointConfigurator;
- private final Map<String,Object> userProperties = new HashMap<>();
+ private final Map<String,Object> userProperties = new ConcurrentHashMap<>();
DefaultServerEndpointConfig(
Class<?> endpointClass, String path,
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1509847 - in /tomcat/trunk/java/javax/websocket: DefaultClientEndpointConfig.java server/DefaultServerEndpointConfig.java
Posted by Mark Thomas <ma...@apache.org>.
Martin Grigorov <mg...@apache.org> wrote:
>Hi Mark,
>
>Thanks for the fix!
>
>On Fri, Aug 2, 2013 at 10:28 PM, <ma...@apache.org> wrote:
>
>> Author: markt
>> Date: Fri Aug 2 20:28:12 2013
>> New Revision: 1509847
>>
>> URL: http://svn.apache.org/r1509847
>> Log:
>> Use the same Map implementation for user properties to prevent
>> implementation conflicts
>>
>> Modified:
>>
>tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java
>>
>>
>tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java
>>
>
>Is it OK to change the JSR API jars ?
For the sake of clarity, that code is not a copy of the implementation from the EG. It is a clean room implementation of the same API. Therefore we are free to change it as long as the API is in unchanged and functionality is consistent with the spec.
>The change is binary compatible per se, but I wonder whether such
>changes
>in classes would not lead to different behavior in different web
>containers.
The Java WebSocket spec just says Map. It does not fix discuss nulls or thread safety. That is perhaps something that should be clarified in the spec. Please raise a Jira issue against the spec for this.
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1509847 - in /tomcat/trunk/java/javax/websocket:
DefaultClientEndpointConfig.java server/DefaultServerEndpointConfig.java
Posted by Martin Grigorov <mg...@apache.org>.
Hi Mark,
Thanks for the fix!
On Fri, Aug 2, 2013 at 10:28 PM, <ma...@apache.org> wrote:
> Author: markt
> Date: Fri Aug 2 20:28:12 2013
> New Revision: 1509847
>
> URL: http://svn.apache.org/r1509847
> Log:
> Use the same Map implementation for user properties to prevent
> implementation conflicts
>
> Modified:
> tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java
>
> tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java
>
Is it OK to change the JSR API jars ?
The change is binary compatible per se, but I wonder whether such changes
in classes would not lead to different behavior in different web containers.
>
> Modified:
> tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java?rev=1509847&r1=1509846&r2=1509847&view=diff
>
> ==============================================================================
> --- tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java
> (original)
> +++ tomcat/trunk/java/javax/websocket/DefaultClientEndpointConfig.java Fri
> Aug 2 20:28:12 2013
> @@ -16,9 +16,9 @@
> */
> package javax.websocket;
>
> -import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
> +import java.util.concurrent.ConcurrentHashMap;
>
> final class DefaultClientEndpointConfig implements ClientEndpointConfig {
>
> @@ -26,7 +26,7 @@ final class DefaultClientEndpointConfig
> private final List<Extension> extensions;
> private final List<Class<? extends Encoder>> encoders;
> private final List<Class<? extends Decoder>> decoders;
> - private final Map<String,Object> userProperties = new HashMap<>();
> + private final Map<String,Object> userProperties = new
> ConcurrentHashMap<>();
> private final Configurator configurator;
>
>
>
> Modified:
> tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java?rev=1509847&r1=1509846&r2=1509847&view=diff
>
> ==============================================================================
> ---
> tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java
> (original)
> +++
> tomcat/trunk/java/javax/websocket/server/DefaultServerEndpointConfig.java
> Fri Aug 2 20:28:12 2013
> @@ -16,9 +16,9 @@
> */
> package javax.websocket.server;
>
> -import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
> +import java.util.concurrent.ConcurrentHashMap;
>
> import javax.websocket.Decoder;
> import javax.websocket.Encoder;
> @@ -36,7 +36,7 @@ final class DefaultServerEndpointConfig
> private final List<Class<? extends Encoder>> encoders;
> private final List<Class<? extends Decoder>> decoders;
> private final Configurator serverEndpointConfigurator;
> - private final Map<String,Object> userProperties = new HashMap<>();
> + private final Map<String,Object> userProperties = new
> ConcurrentHashMap<>();
>
> DefaultServerEndpointConfig(
> Class<?> endpointClass, String path,
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>