[EMAIL PROTECTED] wrote:
Author: lgawron
Date: Fri Mar  4 00:39:53 2005
New Revision: 156143

URL: http://svn.apache.org/viewcvs?view=rev&rev=156143
Log:
Fix thread safety problem in JXTemplateGenerator.setup() concerning template 
script reparsing.

Modified: 
cocoon/trunk/src/java/org/apache/cocoon/generation/JXTemplateGenerator.java
URL: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/generation/JXTemplateGenerator.java?view=diff&r1=156142&r2=156143
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/generation/JXTemplateGenerator.java 
(original)
+++ cocoon/trunk/src/java/org/apache/cocoon/generation/JXTemplateGenerator.java 
Fri Mar  4 00:39:53 2005
@@ -2357,7 +2357,6 @@
                         valid = startEvent.compileTime.isValid(validity);
                     }
                     if (valid != SourceValidity.VALID) {
-                        cache.remove(uri);
                         regenerate = true;
                     }
                 } else {

What good this does? Second thread, instead of quick fail on first test (if (startEvent != null)), will go through complete validity check. And it will arrive to the same result, that it need to re-generate from source. So, it will arrive to the same SourceUtil.parse line.


PS I'd mark the bug INVALID as I do not see what's broken. Yes, it can parse it twice. It's not an error by itself. Wrapping whole parsing block into the synchronized() is abviously not a solution too, especially for larger sites.

Vadim

Reply via email to