You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2011/09/16 01:11:39 UTC

svn commit: r1171323 - /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticManager.java

Author: hlship
Date: Thu Sep 15 23:11:39 2011
New Revision: 1171323

URL: http://svn.apache.org/viewvc?rev=1171323&view=rev
Log:
Revert "TAP5-1650: On a cold start with a large number of incoming requests, Tapestry can deadlock inside PlasticClassLoader/PlasticClassPool"

This reverts commit 4511f0aac12ec1b9b3f2b876c6e6adb60a581e9f.

Modified:
    tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticManager.java

Modified: tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticManager.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticManager.java?rev=1171323&r1=1171322&r2=1171323&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticManager.java (original)
+++ tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticManager.java Thu Sep 15 23:11:39 2011
@@ -204,20 +204,11 @@ public class PlasticManager implements P
 
         String name = String.format("$%s_%s", baseClass.getSimpleName(), PlasticUtils.nextUID());
 
-        lock();
+        PlasticClassTransformation<T> transformation = pool.createTransformation(baseClass.getName(), name);
 
-        try
-        {
+        callback.transform(transformation.getPlasticClass());
 
-            PlasticClassTransformation<T> transformation = pool.createTransformation(baseClass.getName(), name);
-
-            callback.transform(transformation.getPlasticClass());
-
-            return transformation.createInstantiator();
-        } finally
-        {
-            unlock();
-        }
+        return transformation.createInstantiator();
     }
 
     /**
@@ -232,29 +223,11 @@ public class PlasticManager implements P
     {
         assert callback != null;
 
-        lock();
-
-        try
-        {
-            PlasticClassTransformation<T> transformation = createProxyTransformation(interfaceType);
+        PlasticClassTransformation<T> transformation = createProxyTransformation(interfaceType);
 
-            callback.transform(transformation.getPlasticClass());
-
-            return transformation.createInstantiator();
-        } finally
-        {
-            unlock();
-        }
-    }
+        callback.transform(transformation.getPlasticClass());
 
-    private void unlock()
-    {
-        getClassloaderLock().unlock();
-    }
-
-    private void lock()
-    {
-        getClassloaderLock().lock();
+        return transformation.createInstantiator();
     }
 
     /**