Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Unexpected behaviour: When the Javaflow Ant task is executed on a set of class files in the file system, then Ant terminates with the error message:
C:\svnx\dev_scream\build.xml:155: org.apache.bcel.verifier.exc.AssertionViolatedException: INTERNAL ERROR: Missing class: java.lang.ClassNotFoundException: Exception while looking for class de.michab.scream.FirstClassObject: java.io.IOException: Couldn't find: de/michab/scream/FirstClassObject.class
Expected is, that the task can rewrite the class files without throwing an exception.
The reason for the above behaviour is that currently no explicit Bcel repository is set. This repository (org.apache.bcel.util.Repository) is responsible for resolving class references while Bcel is working. Since none was set explicitly, the implicit default repository is used, which depends on the class path.
The solution for the above problem is that the BcelClassTransformer always explicitly installs a SyntheticRepository that points to the task's srcDir.