<div dir="ltr"><div>Here's a reproducer using JDK 25-ea:</div><div><br></div><div><div style="margin-left:40px"><span style="font-family:monospace">$ jshell </span><br><span style="font-family:monospace">| Welcome to JShell -- Version 25-ea</span><br><span style="font-family:monospace">| For an introduction type: /help intro</span><br><span style="font-family:monospace"></span><br><span style="font-family:monospace">jshell> import jdk.jshell.*</span><br><span style="font-family:monospace"></span><br><span style="font-family:monospace">jshell> JShell jsh = JShell.builder().out(System.out).build();</span><br><span style="font-family:monospace">jsh ==> jdk.jshell.JShell@1134affc</span><br><span style="font-family:monospace"></span><br><span style="font-family:monospace">jshell> var sca = jsh.sourceCodeAnalysis()</span><br><span style="font-family:monospace">sca ==> jdk.jshell.SourceCodeAnalysisImpl@73f792cf</span><br><span style="font-family:monospace"></span><br><span style="font-family:monospace">jshell> sca.highlights("System.out.println(\"");</span><br><span style="font-family:monospace">| Exception java.lang.IllegalArgumentException</span><br><span style="font-family:monospace">| at JCDiagnostic.<init> (JCDiagnostic.java:659)</span><br><span style="font-family:monospace">| at JCDiagnostic.<init> (JCDiagnostic.java:641)</span><br><span style="font-family:monospace">| at JCDiagnostic$Factory.create (JCDiagnostic.java:294)</span><br><span style="font-family:monospace">| at JCDiagnostic$Factory.error (JCDiagnostic.java:111)</span><br><span style="font-family:monospace">| at AbstractLog.error (AbstractLog.java:144)</span><br><span style="font-family:monospace">| at JavaTokenizer.lexError (JavaTokenizer.java:201)</span><br><span style="font-family:monospace">| at JavaTokenizer.scanString (JavaTokenizer.java:470)</span><br><span style="font-family:monospace">| at JavaTokenizer.readToken (JavaTokenizer.java:1017)</span><br><span style="font-family:monospace">| at Scanner.nextToken (Scanner.java:124)</span><br><span style="font-family:monospace">| at SourceCodeAnalysisImpl.lambda$highlights$0 (SourceCodeAnalysisImpl.java:680)</span><br><span style="font-family:monospace">| at TaskFactory.lambda$runTask$1 (TaskFactory.java:218)</span><br><span style="font-family:monospace">| at JavacTaskPool.getTask (JavacTaskPool.java:193)</span><br><span style="font-family:monospace">| at TaskFactory.runTask (TaskFactory.java:211)</span><br><span style="font-family:monospace">| at TaskFactory.analyze (TaskFactory.java:180)</span><br><span style="font-family:monospace">| at TaskFactory.analyze (TaskFactory.java:166)</span><br><span style="font-family:monospace">| at TaskFactory.analyze (TaskFactory.java:155)</span><br><span style="font-family:monospace">| at SourceCodeAnalysisImpl.highlights (SourceCodeAnalysisImpl.java:651)</span><br><span style="font-family:monospace">| at (#4:1)</span><br><span style="font-family:monospace"></span></div></div><div><br></div><div>Here's what happens:</div><div><ul><li>JShell is doing some parsing without establishing the current source file via <span style="font-family:monospace">Log.useSource()</span><span style="font-family:arial,sans-serif"> (I've seen this in other JShell scenarios as well)</span></li><li>The <span style="font-family:monospace">JCDiagnostic()</span> constructor has an assertion that if a diagnostic has a source code position then it also must have a current source file.</li></ul></div><div>So the first question would be: who is right?</div><div><br></div><div>-Archie</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Fri, Jun 13, 2025 at 2:21 AM Volkan Yazıcı <<a href="mailto:volkan@yazi.ci">volkan@yazi.ci</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><a href="https://www.oracle.com/java/technologies/downloads/#java24" target="_blank">Downloaded JDK 24.0.1</a>, yet could not reproduce the issue:<div><br></div><div>$ jdk-24.0.1/bin/jshell</div><div>| Welcome to JShell -- Version 24.0.1<br>| For an introduction type: /help intro<br><br>jshell> System.out.println("<br>| Error:<br>| unclosed string literal<br>| System.out.println("<br>|</div><div><br></div><div>Would you mind sharing more details to reproduce the issue, please? Which JDK distribution do you use? Which major/minor/patch version? Which architecture & OS?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 12, 2025 at 9:19 PM Sven Reimers <<a href="mailto:sven.reimers@gmail.com" target="_blank">sven.reimers@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>JDK 24</div><div><br></div><div>Sven</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 12, 2025 at 8:56 PM Archie Cobbs <<a href="mailto:archie.cobbs@gmail.com" target="_blank">archie.cobbs@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">What JDK version?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 12, 2025 at 1:39 PM Sven Reimers <<a href="mailto:sven.reimers@gmail.com" target="_blank">sven.reimers@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi,</div><div><br></div><div>working on highlighting in JTaccuino I found</div><div><br></div><div>Caused by: java.lang.IllegalArgumentException<br> at jdk.compiler/com.sun.tools.javac.util.JCDiagnostic.<init>(JCDiagnostic.java:647)<br> at jdk.compiler/com.sun.tools.javac.util.JCDiagnostic.<init>(JCDiagnostic.java:627)<br> at jdk.compiler/com.sun.tools.javac.util.JCDiagnostic$Factory.create(JCDiagnostic.java:301)<br> at jdk.compiler/com.sun.tools.javac.util.JCDiagnostic$Factory.error(JCDiagnostic.java:114)<br> at jdk.compiler/com.sun.tools.javac.util.AbstractLog.error(AbstractLog.java:145)<br> at jdk.compiler/com.sun.tools.javac.parser.JavaTokenizer.lexError(JavaTokenizer.java:202)<br> at jdk.compiler/com.sun.tools.javac.parser.JavaTokenizer.scanString(JavaTokenizer.java:468)<br> at jdk.compiler/com.sun.tools.javac.parser.JavaTokenizer.readToken(JavaTokenizer.java:1015)<br> at jdk.compiler/com.sun.tools.javac.parser.Scanner.nextToken(Scanner.java:124)<br> at jdk.jshell/jdk.jshell.SourceCodeAnalysisImpl.lambda$highlights$0(SourceCodeAnalysisImpl.java:647)<br> at jdk.jshell/jdk.jshell.TaskFactory.lambda$runTask$1(TaskFactory.java:218)<br> at jdk.compiler/com.sun.tools.javac.api.JavacTaskPool.getTask(JavacTaskPool.java:193)<br> at jdk.jshell/jdk.jshell.TaskFactory.runTask(TaskFactory.java:211)<br> at jdk.jshell/jdk.jshell.TaskFactory.analyze(TaskFactory.java:180)<br> at jdk.jshell/jdk.jshell.TaskFactory.analyze(TaskFactory.java:166)<br> at jdk.jshell/jdk.jshell.TaskFactory.analyze(TaskFactory.java:155)<br>at jdk.jshell/jdk.jshell.SourceCodeAnalysisImpl.highlights(SourceCodeAnalysisImpl.java:618)</div><div><br></div><div>happening, when a snippet is sent with a not closed quoted string, e.g.</div><div><br></div><div>System.out.println("</div><div><br></div><div>I assume this should not happen?</div><div><br></div><div>Thanks</div><div><br></div><div>Sven </div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Sven Reimers<br><br>* Java Champion<br></div><div>* Apache NetBeans PMC: <a href="http://netbeans.apache.org" target="_blank">http://netbeans.apache.org</a></div><div>* JUG Leader JUG Bodensee: <a href="https://www.meetup.com/JUG-Bodensee" target="_blank">https://www.meetup.com/JUG-Bodensee</a></div></div></div></div></div></div></div></div></div>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">Archie L. Cobbs<br></div>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Sven Reimers<br><br>* Java Champion<br></div><div>* Apache NetBeans PMC: <a href="http://netbeans.apache.org" target="_blank">http://netbeans.apache.org</a></div><div>* JUG Leader JUG Bodensee: <a href="https://www.meetup.com/JUG-Bodensee" target="_blank">https://www.meetup.com/JUG-Bodensee</a></div><div>* Duke's Choice Award Winner 2009 & 2018</div><div><br>* LinkedIn: <a href="http://www.linkedin.com/in/svenreimers" target="_blank">http://www.linkedin.com/in/svenreimers</a><br></div></div></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">Archie L. Cobbs<br></div>