You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2010/03/25 14:46:03 UTC

svn commit: r927400 - in /myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting: core/util/WeavingContext.java refresh/FileChangedDaemon.java

Author: werpu
Date: Thu Mar 25 13:46:03 2010
New Revision: 927400

URL: http://svn.apache.org/viewvc?rev=927400&view=rev
Log:
http://issues.apache.org/jira/browse/EXTSCRIPT-104

fixup for a weird npe shutdown race condition where a central thread local holder is nulled early

Modified:
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
    myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java?rev=927400&r1=927399&r2=927400&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java Thu Mar 25 13:46:03 2010
@@ -165,6 +165,10 @@ public class WeavingContext {
      * @return a ScriptingWeaver chain for all weavers currently supported
      */
     public static ScriptingWeaver getWeaver() {
+        //shutting down condition _weaverHolder == null due to separate thread
+        if(_weaverHolder == null) {
+            return null;
+        }
         ScriptingWeaver weaver = (ScriptingWeaver) _weaverHolder.get();
         if (weaver == null) {
             Logger log = Logger.getLogger(WeavingContext.class.getName());

Modified: myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java?rev=927400&r1=927399&r2=927400&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java (original)
+++ myfaces/extensions/scripting/trunk/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java Thu Mar 25 13:46:03 2010
@@ -124,8 +124,9 @@ public class FileChangedDaemon extends T
      * as marks the engine as having to do a full recompile
      */
     private final void checkForChanges() {
-
-        WeavingContext.getWeaver().scanForAddedClasses();
+        ScriptingWeaver weaver = WeavingContext.getWeaver();
+        if(weaver == null) return;
+        weaver.scanForAddedClasses();
 
         //TODO move this code also into the weaver so that
         //we have it centralized