Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6740319

LDC_W class wrongly resets the opcode to 19 at the end of initFromFile()

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P3 P3
    • None
    • 6
    • xml

      FULL PRODUCT VERSION :
      1.6.0_04 and up

      ADDITIONAL OS VERSION INFORMATION :
      OS independent

      A DESCRIPTION OF THE PROBLEM :
      In 1.5.0 this method behaved correctly. In 1.6.0_04 and beyond (I haven't tested with earlier versions) the method in question wrongly resets the opcode to 19 (0x13) at the end of it, causing an inconsistency between the expected size and the actual size on the class file.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Just use the BCEL classes to load a method that uses the ldc_w instruction and you will see that once a MethodGen is created, the InstructionList will show the ldc_w instruction with lenght 2 and opcode 19, which is what causes the problem on classes generated from such MethodGen instance.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      The ldc_w instruction should've shown either length 2 and opcode 18 or length 3 and opcode 19.

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      JVM reporst a LinkageError while loading a class generated from the BCEL classes.

      REPRODUCIBILITY :
      This bug can be reproduced always.

      Release Regression From : 5.0
      The above release value was the last known release where this
      bug was not reproducible. Since then there has been a regression.

            Unassigned Unassigned
            ndcosta Nelson Dcosta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: