You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2012/06/21 19:28:19 UTC

[2/9] git commit: Revert change to locking, as it can fail in some (reentrant) cases

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/91b0adc1
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/91b0adc1
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/91b0adc1

Branch: refs/heads/master
Commit: 91b0adc1dbe15d09a2383836f08bd263d35ec0ce
Parents: a1bef86
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:24 2012 -0700

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


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/91b0adc1/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);
             }
         });
     }