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 2012/06/21 19:10:47 UTC

git commit: Revert change to locking, as it can fail in some (reentrant) cases

Updated Branches:
  refs/heads/5.3 09be89ed3 -> 65ecd5d3c


Revert change to locking, as it can fail in some (reentrant) cases


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/65ecd5d3
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/65ecd5d3
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/65ecd5d3

Branch: refs/heads/5.3
Commit: 65ecd5d3c562e92fd0a0a2581bf98a3af07b19c4
Parents: 09be89e
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Thu Jun 21 10:10:24 2012 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Thu Jun 21 10:10:38 2012 -0700

----------------------------------------------------------------------
 .../internal/AbstractReloadableObjectCreator.java  |   32 ++++-----------
 1 files changed, 8 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/65ecd5d3/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
index 80873e5..357c66c 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
@@ -26,7 +26,6 @@ import org.apache.tapestry5.ioc.OperationTracker;
 import org.apache.tapestry5.ioc.ReloadAware;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
-import org.apache.tapestry5.ioc.internal.util.LockSupport;
 import org.apache.tapestry5.ioc.internal.util.URLChangeTracker;
 import org.apache.tapestry5.ioc.services.PlasticProxyFactory;
 import org.apache.tapestry5.services.UpdateListener;
@@ -40,7 +39,7 @@ import java.net.URL;
 import java.util.Set;
 
 @SuppressWarnings("all")
-public abstract class AbstractReloadableObjectCreator extends LockSupport implements ObjectCreator, UpdateListener, ClassLoaderDelegate
+public abstract class AbstractReloadableObjectCreator implements ObjectCreator, UpdateListener, ClassLoaderDelegate
 {
     private final ClassLoader baseClassLoader;
 
@@ -112,21 +111,14 @@ public abstract class AbstractReloadableObjectCreator extends LockSupport implem
         return false;
     }
 
-    public Object createObject()
+    public synchronized Object createObject()
     {
-        try
-        {
-            acquireReadLock();
-            if (instance == null)
-            {
-                instance = createInstance();
-            }
-
-            return instance;
-        } finally
+        if (instance == null)
         {
-            releaseReadLock();
+            instance = createInstance();
         }
+
+        return instance;
     }
 
     private Object createInstance()
@@ -135,17 +127,9 @@ public abstract class AbstractReloadableObjectCreator extends LockSupport implem
         {
             public Object invoke()
             {
-                try
-                {
-                    upgradeReadLockToWriteLock();
-
-                    Class reloadedClass = reloadImplementationClass();
+                Class reloadedClass = reloadImplementationClass();
 
-                    return createInstance(reloadedClass);
-                } finally
-                {
-                    downgradeWriteLockToReadLock();
-                }
+                return createInstance(reloadedClass);
             }
         });
     }