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();
}
/**