Split verifier erroneously throws VerifyError for cast from boolean[] to byte[]

XMLWordPrintable

    • Type: Bug
    • Resolution: Not an Issue
    • Priority: P4
    • None
    • Affects Version/s: 9
    • Component/s: hotspot
    • None

      The following test throws VerifyError in the Split Verifier. But, it should not because arrays of primitive types modeled as int are assignable to each other and so are their arrays. So [Z should be assignable to [B.

      Example:
      //Main.java
      public class Main {
          public static void main(String[] args) {
              boolean[] booleans = { true, false };
              byte[] bytes = Test.castToByteArray(booleans);
              System.out.println(bytes[0] + " " + bytes[1]);
          }
      }

      //Test.jasm
      super class Test
      version 49:0
      {


      public Method "<init>":"()V"
      stack 1 locals 1
      {
      aload_0;
      invokespecial Method java/lang/Object."<init>":"()V";
      return;
      }

      public static Method castToByteArray:"([Z)[B"
      stack 1 locals 1
      {
      aload_0;
      areturn;
      }

      } // end Class Test

            Assignee:
            Harold Seigel (Inactive)
            Reporter:
            Harold Seigel (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: