2012/11/27  <ma...@apache.org>:
> Author: markt
> Date: Tue Nov 27 10:35:30 2012
> New Revision: 1414110
>
> URL: http://svn.apache.org/viewvc?rev=1414110&view=rev
> Log:
> More Javadoc
>
> Modified:
>     tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java
>     tomcat/trunk/java/org/apache/tomcat/websocket/Util.java
>
> Modified: 
> tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java?rev=1414110&r1=1414109&r2=1414110&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java 
> (original)
> +++ tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java 
> Tue Nov 27 10:35:30 2012
> @@ -27,16 +27,26 @@ import javax.websocket.Endpoint;
>  import javax.websocket.ServerContainer;
>  import javax.websocket.ServerEndpointConfiguration;
>
> +/**
> + * Provides a per class loader (i.e. per web application) instance of a
> + * {@link ServerContainer}.
> + */
>  public class ServerContainerImpl extends ClientContainerImpl implements
>          ServerContainer {
>
> -    // Needs to be a WekaHashMap to prevent memory leaks when a context is
> +    // Needs to be a WeakHashMap to prevent memory leaks when a context is
>      // stopped
>      private static Map<ClassLoader, ServerContainerImpl>
>              classLoaderContainerMap = new WeakHashMap<>();
>      private static ReadWriteLock classLoaderContainerMapLock =
>              new  ReentrantReadWriteLock();

A ReadWriteLock cannot be used to guard a WeakHashMap.  The
WeakHashMap may modify itself on get(), as it processes the reference
queue of items removed by GC.

Either a plain old lock / synchronization is needed, or some other solution
(e.g.  org.apache.tomcat.util.collections.ManagedConcurrentWeakHashMap )

Best regards,
Konstantin Kolinko

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

Reply via email to