You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by co...@apache.org on 2004/02/11 19:15:29 UTC
cvs commit: cocoon-2.1/src/java/org/apache/cocoon/components/flow/javascript/fom FOM_JavaScriptInterpreter.java
coliver 2004/02/11 10:15:29
Modified: src/java/org/apache/cocoon/components/flow/javascript/fom
FOM_JavaScriptInterpreter.java
Log:
Ensure complete recompilation of compilation unit containing inner classes
Revision Changes Path
1.21 +25 -12 cocoon-2.1/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java
Index: FOM_JavaScriptInterpreter.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- FOM_JavaScriptInterpreter.java 31 Jan 2004 16:50:56 -0000 1.20
+++ FOM_JavaScriptInterpreter.java 11 Feb 2004 18:15:29 -0000 1.21
@@ -63,6 +63,8 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.HashSet;
+import java.util.Set;
import java.util.StringTokenizer;
import org.apache.avalon.framework.CascadingRuntimeException;
@@ -179,7 +181,13 @@
byte[] contents) {
javaSource.put(src.getURI(), src.getValidity());
javaClass.put(className, contents);
- sourceToClass.put(src.getURI(), className);
+ String uri = src.getURI();
+ Set set = (Set)sourceToClass.get(uri);
+ if (set == null) {
+ set = new HashSet();
+ sourceToClass.put(uri, set);
+ }
+ set.add(className);
classToSource.put(className, src.getURI());
}
@@ -217,11 +225,16 @@
iter = invalid.iterator();
while (iter.hasNext()) {
String uri = (String)iter.next();
- String className = (String)sourceToClass.get(uri);
- sourceToClass.remove(className);
- javaClass.remove(className);
+ Set set = (Set)sourceToClass.get(uri);
+ Iterator ii = set.iterator();
+ while (ii.hasNext()) {
+ String className = (String)ii.next();
+ sourceToClass.remove(className);
+ javaClass.remove(className);
+ classToSource.remove(className);
+ }
+ set.clear();
javaSource.remove(uri);
- classToSource.remove(className);
}
return invalid.size() == 0;
}
@@ -332,15 +345,15 @@
classLoader.addSourceListener(
new CompilingClassLoader.SourceListener() {
public void sourceCompiled(Source src) {
- // no action
+ // no action
}
public void sourceCompilationError(Source src,
- String errMsg) {
- throw Context.reportRuntimeError(
- ToolErrorReporter.getMessage(
- "msg.uncaughtJSException",
- errMsg));
+ String errMsg) {
+
+ if (src != null) {
+ throw Context.reportRuntimeError(errMsg);
+ }
}
});
updateSourcePath();