Message11972

Author jeff.allen
Recipients jeff.allen, psykiatris
Date 2018-05-12.08:31:16
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1526113879.57.0.682650639539.issue2683@psf.upfronthosting.co.za>
In-reply-to
Content
In a disassembly:

    javap -cp "C:\Jython\2.7.1\javalib\*" -c jline.internal.InputStreamReader

I see:

Compiled from "InputStreamReader.java"
public class jline.internal.InputStreamReader extends java.io.Reader {
  java.nio.charset.CharsetDecoder decoder;

  java.nio.ByteBuffer bytes;
  ...

At the place where your problem starts, the invocation is:

      81: getfield      #5                  // Field bytes:Ljava/nio/ByteBuffer;
      84: iconst_0
      85: invokevirtual #13                 // Method java/nio/ByteBuffer.limit:(I)Ljava/nio/Buffer;
      88: pop
      89: return

A change has been made to the API of ByteBuffer at JDK 9 adding a method ByteBuffer limit(int n), which is what Java is failing to find in your case (as in the MongoDB bug cited). If the JLine source were to be compiled in the presence of a JDK 9, I believe it would generate a reference to this more specific method. Is it possible you have on the class path a version of the JLine classes that was compiled with Java 9?

I can't reproduce this problem with the JAR we distribute with 2.7.1 on Windows or Linux. Maybe try something like the above on your machine.
History
Date User Action Args
2018-05-12 08:31:19jeff.allensetmessageid: <1526113879.57.0.682650639539.issue2683@psf.upfronthosting.co.za>
2018-05-12 08:31:19jeff.allensetrecipients: + jeff.allen, psykiatris
2018-05-12 08:31:19jeff.allenlinkissue2683 messages
2018-05-12 08:31:16jeff.allencreate