Uploaded image for project: 'Jandex'
  1. Jandex
  2. JANDEX-14

Jandex doesn't work with invokedynamic constant pool tag

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 1.1.0.Final
    • 1.0.0.Final, 1.1.0.Alpha1
    • None
    • jdk8 or jdk7 with invokedynamic in bytecode

      Introduced in jdk7 and used, by java language, in jdk8 with lambda expressions
      It throws an exception with an invalid tag(18 invokedynamic)

      Follow some logs:

      Without lambda(invokedynamic):
      Indexed br.com.janario.jdk8.Test$1 (0 annotations)
      Indexed br.com.janario.jdk8.Test (0 annotations)
      Wrote 7.idx in 0.0180 seconds (2 classes, 0 annotations, 0 instances, 99 bytes)

      With lambda:
      ERROR: Could not index Test.class: Unknown tag! pos=1 poolCount = 61
      java.lang.IllegalStateException: Unknown tag! pos=1 poolCount = 61
      at org.jboss.jandex.Indexer.processConstantPool(Indexer.java:603)
      at org.jboss.jandex.Indexer.index(Indexer.java:637)
      at org.jboss.jandex.Main.scanFile(Main.java:146)
      at org.jboss.jandex.Main.scanFile(Main.java:135)
      at org.jboss.jandex.Main.indexDirectory(Main.java:101)
      at org.jboss.jandex.Main.execute(Main.java:69)
      at org.jboss.jandex.Main.main(Main.java:52)
      Wrote 8.idx in 0.0140 seconds (0 classes, 0 annotations, 0 instances, 8 bytes)

              jgreene@redhat.com Jason Greene
              janarioliver@gmail.com Janario Oliveira (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: