commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcus Deluigi <mdelu...@student.ethz.ch>
Subject Re: Javaflow: Ant-Task Bug?
Date Wed, 23 Aug 2006 17:45:44 GMT

On Aug 23, 2006, at 2:56 PM, Torsten Curdt wrote:

>> On running the javaflow transformation task, I get the following
>> exception:
>>
>> /Users/mdeluigi/SourceCode/build.xml:114:
>> org.apache.bcel.verifier.exc.AssertionViolatedException: INTERNAL
>> ERROR: Missing class: java.lang.ClassNotFoundException: Exception
>> while looking for class edu.ethz.cs.smp.database.Config:
>> java.io.IOException: Couldn't find: edu/ethz/cs/smp/database/
>> Config.class
>>
>> The class file is right there. The exception is only with this class.
>> If I uncomment the usage, everything works fine.
>>
>> Is it a bug or did I miss something?
>
> Sounds like a BCEL bug ...can you please provide a testcase?
here it is:
----------8<----------
package edu.ethz.cs.smp.jobcontrol;

import java.util.Set;
import java.util.TreeSet;

class Foo {
     public Set<Object> getSecurities() throws Exception {
         return new TreeSet<Object>();
     }
}



public class TestThread implements Runnable {

     public void run () {
         try {
             Foo foo = new Foo();
             Set<Object> securities = foo.getSecurities();
         }
         catch (Exception e) {

         }
	System.out.println("Finished");
     }
}
---------->8----------

The Ant Task is as follows:
-----
		<javaflow srcdir="${src.dir}" dstDir="${src.dir}/..">
			<include name="**/TestThread.class" />
		</javaflow>
-----

And the exception:
BUILD FAILED
/Users/mdeluigi/SourceCode/build.xml:115:  
org.apache.bcel.verifier.exc.AssertionViolatedException: INTERNAL  
ERROR: Missing class: java.lang.ClassNotFoundException: Exception  
while looking for class edu.ethz.cs.smp.jobcontrol.Foo:  
java.io.IOException: Couldn't find: edu/ethz/cs/smp/jobcontrol/Foo.class

The exception is _not_ thrown if either the try .. except block is  
missing _or_ the "securities" collection is initialized within the run 
() method.


Does "ASM based instrumentation" mean the Continuation Class Loader?
That one works fine:
---
         try {
         	File dir = new File(System.getProperty("user.dir"));
         	URL url = dir.toURL();
		ClassLoader cl = new ContinuationClassLoader( new URL[]{ url },
		Foo.class.getClassLoader()); // parent class loader
		Class cls = cl.loadClass("TestThread");
		System.out.println("Successfully loaded");
		TestThread bar = (TestThread) cls.newInstance();
		Continuation.startWith( bar );
         }
         catch (Exception e) {
             System.out.println(e);
         }
---


Greetings
Marcus



> ...or at least the original class file. Without the other classes
> it might be hard to track down though.
>
> Did you try the ASM based instrumentation?
>
> cheers
> --
> Torsten
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message