Uploaded image for project: 'Byteman'
  1. Byteman
  2. BYTEMAN-200

NullPointerException in CFG.inBytemanHandler()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 2.0.3
    • 2.0.1
    • None
    • None

    Description

      java.lang.NullPointerException
      at org.jboss.byteman.agent.adapter.cfg.CFG.inBytemanHandler(CFG.java:1558)
      at org.jboss.byteman.agent.adapter.RuleTriggerMethodAdapter.inBytemanHandler(RuleTriggerMethodAdapter.java:594)
      at org.jboss.byteman.agent.adapter.ThrowTriggerAdapter$ThrowTriggerMethodAdapter.visitInsn(ThrowTriggerAdapter.java:85)
      at org.jboss.byteman.objectweb.asm.tree.InsnNode.accept(Unknown Source)
      at org.jboss.byteman.objectweb.asm.tree.InsnList.accept(Unknown Source)
      at org.jboss.byteman.objectweb.asm.tree.MethodNode.accept(Unknown Source)
      at org.jboss.byteman.objectweb.asm.commons.JSRInlinerAdapter.visitEnd(Unknown Source)
      at org.jboss.byteman.objectweb.asm.ClassReader.accept(Unknown Source)
      at org.jboss.byteman.objectweb.asm.ClassReader.accept(Unknown Source)
      at org.jboss.byteman.agent.Transformer.transform(Transformer.java:746)
      at org.jboss.byteman.agent.Transformer.tryTransform(Transformer.java:836)
      at org.jboss.byteman.agent.Transformer.tryTransform(Transformer.java:807)
      at org.jboss.byteman.agent.Transformer.transform(Transformer.java:243)
      at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
      at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:385)
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
      ...

      I can reproduce the error by using the following rule with JBoss EAP 5.1.2 and accessing the admin console. I haven't looked to far into it yet, but I think TryCatchDetails.typename can be null in finally block or synthetic catch blocks. The obvious fix it to add a null check there.


      RULE log owner
      CLASS org.jboss.seam.core.SynchronizationInterceptor
      METHOD aroundInvoke
      AT THROW ALL
      IF TRUE
      DO System.err.println($this.lock.getOwner().getStackTrace());
      ENDRULE

      Attachments

        Activity

          People

            rhn-engineering-adinn Andrew Dinn
            rhn-support-jlivings James Livingston (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: