stevedlawrence commented on PR #986:
URL: https://github.com/apache/daffodil/pull/986#issuecomment-1464126600
Confirmed the above is what's happening. I added this to the
`CLIDebuggerRunner` before it calls `reader.get.readLine`:
```scala
val class1 = classOf[org.jline.utils.AttributedString]
val jar1 = this.getClass.getResource('/' +
class1.getName.replace('.', '/') + ".class")
System.err.println(s"$jar1")
val class2 = classOf[org.jline.reader.impl.LineReaderImpl]
val jar2 = this.getClass.getResource('/' +
class2.getName.replace('.', '/') + ".class")
System.err.println(s"$jar2")
```
And the output is:
```
jar:file:<removed>/.sbt/boot/scala-2.12.17/org.scala-sbt/sbt/1.8.2/jline-terminal-3.19.0.jar!/org/jline/utils/AttributedString.class
jar:file:<removed>/daffodil.git/lib_managed/jars/org.jline/jline/jline-3.23.0.jar!/org/jline/reader/impl/LineReaderImpl.class
```
So for some reason the `AttributedString` class we find is from what sbt
uses, and the `LineReaderImpl` we find is what we actually depend on. I still
don't know of a good fix, but this proably confrims that it's not a jline thing
since we are probably using the sbt classloader at this point. This is likely a
long time bug that we just haven't noticed because the classes we incorrectly
get from sbt are close enough to what our jline version uses.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]