ERROR: while transforming .. null

184 views
Skip to first unread message

Ahmet Özkök

unread,
Jun 1, 2016, 8:30:17 AM6/1/16
to quasar-pulsar-user
Hi
I keep getting this error like this

ERROR: Unable to instrument class [name of class X]

[details of classic NullPointerException trace]

ERROR: while transforming .. [name of class X]: null

But there is no problem of instrumentation in methods of X (No errors are generated for them). 
What should be the reason?

Fabio Tudone

unread,
Jun 1, 2016, 10:03:19 AM6/1/16
to quasar-pulsar-user
Hi, can you share more information about the error, for example the full error message including class name/methods and the NPE stack trace?

-- Fabio

Ahmet Özkök

unread,
Jun 2, 2016, 2:12:18 AM6/2/16
to quasar-pulsar-user
of course.

[quasar] ERROR: Unable to instrument class desmoj/core/simulator/Scheduler
java.lang.NullPointerException
at co.paralleluniverse.asm.Item.a(Unknown Source)
at co.paralleluniverse.asm.ClassWriter.c(Unknown Source)
at co.paralleluniverse.asm.ClassWriter.a(Unknown Source)
at co.paralleluniverse.asm.Frame.a(Unknown Source)
at co.paralleluniverse.asm.Frame.a(Unknown Source)
at co.paralleluniverse.asm.MethodWriter.visitMaxs(Unknown Source)
at co.paralleluniverse.asm.tree.MethodNode.accept(Unknown Source)
at co.paralleluniverse.asm.commons.JSRInlinerAdapter.visitEnd(Unknown Source)
at co.paralleluniverse.asm.MethodVisitor.visitEnd(Unknown Source)
at co.paralleluniverse.fibers.instrument.InstrumentClass$1.visitEnd(InstrumentClass.java:193)
at co.paralleluniverse.asm.ClassReader.b(Unknown Source)
at co.paralleluniverse.asm.ClassReader.accept(Unknown Source)
at co.paralleluniverse.asm.ClassReader.accept(Unknown Source)
at co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:120)
at co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:88)
at co.paralleluniverse.fibers.instrument.JavaAgent$Transformer.transform(JavaAgent.java:187)
at sun.instrument.TransformerManager.transform(Unknown Source)
at sun.instrument.InstrumentationImpl.transform(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:626)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(Unknown Source)
at desmoj.core.simulator.Experiment.createScheduler(Experiment.java:624)
at desmoj.core.simulator.Experiment.setupExperiment(Experiment.java:604)
at desmoj.core.simulator.Experiment.<init>(Experiment.java:392)
at desmoj.core.simulator.Experiment.<init>(Experiment.java:358)
at desmoj.core.simulator.Experiment.<init>(Experiment.java:319)
        ..
[quasar] ERROR: while transforming desmoj/core/simulator/Scheduler: null
java.lang.NullPointerException
at co.paralleluniverse.asm.Item.a(Unknown Source)
at co.paralleluniverse.asm.ClassWriter.c(Unknown Source)
at co.paralleluniverse.asm.ClassWriter.a(Unknown Source)
at co.paralleluniverse.asm.Frame.a(Unknown Source)
at co.paralleluniverse.asm.Frame.a(Unknown Source)
at co.paralleluniverse.asm.MethodWriter.visitMaxs(Unknown Source)
at co.paralleluniverse.asm.tree.MethodNode.accept(Unknown Source)
at co.paralleluniverse.asm.commons.JSRInlinerAdapter.visitEnd(Unknown Source)
at co.paralleluniverse.asm.MethodVisitor.visitEnd(Unknown Source)
at co.paralleluniverse.fibers.instrument.InstrumentClass$1.visitEnd(InstrumentClass.java:193)
at co.paralleluniverse.asm.ClassReader.b(Unknown Source)
at co.paralleluniverse.asm.ClassReader.accept(Unknown Source)
at co.paralleluniverse.asm.ClassReader.accept(Unknown Source)
at co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:120)
at co.paralleluniverse.fibers.instrument.QuasarInstrumentor.instrumentClass(QuasarInstrumentor.java:88)
at co.paralleluniverse.fibers.instrument.JavaAgent$Transformer.transform(JavaAgent.java:187)
at sun.instrument.TransformerManager.transform(Unknown Source)
at sun.instrument.InstrumentationImpl.transform(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:626)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(Unknown Source)
at desmoj.core.simulator.Experiment.createScheduler(Experiment.java:624)
at desmoj.core.simulator.Experiment.setupExperiment(Experiment.java:604)
at desmoj.core.simulator.Experiment.<init>(Experiment.java:392)
at desmoj.core.simulator.Experiment.<init>(Experiment.java:358)
at desmoj.core.simulator.Experiment.<init>(Experiment.java:319)


1 Haziran 2016 Çarşamba 17:03:19 UTC+3 tarihinde Fabio Tudone yazdı:

Fabio Tudone

unread,
Jun 3, 2016, 11:37:26 PM6/3/16
to quasar-pulsar-user
I have seen this errors in the past because of peculiar classloading situations (or broken classpath). Are you running in an OSGI environment? Could you share a minimal project that reproduces the issue? Another possibly related issue: https://github.com/puniverse/quasar/issues/182

-- Fabio

Ahmet Özkök

unread,
Jun 5, 2016, 7:23:12 AM6/5/16
to quasar-pulsar-user
Yes, I run a kind of OSGI environment, an Eclipse plugin application actually. 
I don't know what can I share, but the link you have shared looks similar. 

4 Haziran 2016 Cumartesi 06:37:26 UTC+3 tarihinde Fabio Tudone yazdı:

Fabio Tudone

unread,
Jun 7, 2016, 1:05:47 PM6/7/16
to quasar-pulsar-user
Is that instrumentation error causing problems during execution?

Did that issue's discussion help in your case? If not a small GitHub project (or even just a gist with a build file and source file) that executes a program in an environment similar to yours and triggers this exception would help and if you manage to create it you could open a GitHub issue and point to it.

Thanks,
-- Fabio

Carlos Eduardo Melo

unread,
Dec 20, 2016, 2:13:38 PM12/20/16
to quasar-pulsar-user
Just a follow up to this post in case anyone stumble upon it:

I had the same problem when using HazelCast. It uses an alternative ClassLoader in its de-serialization process. This classloader is, by default, null, and set only when the process of de-serialization occurr (the default being the thread context classloader). To circumvent this, you have to set up the classloader beforehand.
Reply all
Reply to author
Forward
0 new messages