Compiler can't find classes anymore (since 2.5.0)

View: New views
5 Messages — Rating Filter:   Alert me  

Compiler can't find classes anymore (since 2.5.0)

by Marcel. :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello !

Since the introduction of version 2.5.0 the compiler can't find imported classes anymore.
So i switched back to 2.4.7 which is working correctly for me.
I think it has something to do with a restricted access mentioned in the 2.5.0 release.
I'm using the ClassBodyEvaluater (ClassBodyEvaluator.createFastClassBodyEvaluator...).

How can i make the needed classes visible again for the evaluator ?

Thanks in advance for any answer or code snippet !


Re: Compiler can't find classes anymore (since 2.5.0)

by Marcel. :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I successfully compiled again by adding the following classloader(Thread.currentThread().getContextClassLoader() )
.....ClassBodyEvaluator.createFastClassBodyEvaluator(new Scanner(null, new StringReader(script)), Class.class, Thread.currentThread().getContextClassLoader().
But i don't really know why it worked before without.
Maybe someone can give me a hint.

Re: Compiler can't find classes anymore (since 2.5.0)

by Arno Unkrig :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Marcelll,
marcelll wrote:
Hello ! Since the introduction of version 2.5.0 the compiler can't find imported classes anymore. So i switched back to 2.4.7 which is working correctly for me. I think it has something to do with a restricted access mentioned in the 2.5.0 release. I'm using the ClassBodyEvaluater (ClassBodyEvaluator.createFastClassBodyEvaluator...). How can i make the needed classes visible again for the evaluator ? Thanks in advance for any answer or code snippet !
I can't reproduce your problem. With JANINO 2.5.1, the following code executes OK:
        ((Runnable) ClassBodyEvaluator.createFastClassBodyEvaluator(
            new Scanner(null, new StringReader(
                "import java.util.*;\n" +
                "public void run() {\n" +
                "    new ArrayList();\n" +
                "}\n"
            )),
            Runnable.class,
            null
        )).run();
Am I missing something?

CU

Arno


Re: Compiler can't find classes anymore (since 2.5.0)

by Marcel. :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I used this with my customized class before:

Didn't work with 2.5.1:
Myclass myclass=(Myclass) ClassBodyEvaluator.createFastClassBodyEvaluator(new Scanner(null, "mysource", Myclass.class, null);

Worked again with 2.5.1:
Myclass myclass=(Myclass) ClassBodyEvaluator.createFastClassBodyEvaluator(new Scanner(null, "mysource", Myclass.class, Thread.currentThread().getContextClassLoader());


Apropos: i used nabble to post my messages to the mailing list (http://www.nabble.com/codehaus---janino-f11887.html).
Maybe you can link your website with this forum which makes it easier to post a message or read old information
for your excellent compiler.

With kind regards
Marcel

Re: Compiler can't find classes anymore (since 2.5.0)

by Arno Unkrig :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Moved the whole issue to

http://jira.codehaus.org/browse/JANINO-73

Please do not post to this thread any more!


CU

Arno