HighlightJS Nashorn exception in JRE8
Running ornate in JRE8 produces the following stack trace:
[I] c.n.o.PageParser: Parsing 6 source files
[I] c.n.ornate.Main: Processing site
[I] c.n.ornate.Main: Rendering site
[E] ghlightJSHighlighter: Error running highlight.js
javax.script.ScriptException: TypeError: [object Object] is not an Object in <eval> at line number 541 at column number 8
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:455)
at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:387)
at jdk.nashorn.api.scripting.NashornScriptEngine.invokeMethod(NashornScriptEngine.java:196)
at com.novocode.ornate.js.NashornSupport$class.call(NashornSupport.scala:74)
at com.novocode.ornate.highlight.HighlightJSHighlighter.call(HighlightJSHighlighter.scala:14)
at com.novocode.ornate.highlight.HighlightJSHighlighter.highlightTextAsHTML(HighlightJSHighlighter.scala:71)
at com.novocode.ornate.theme.HtmlTheme$$anonfun$fencedCodeBlockRenderer$1.apply(HtmlTheme.scala:109)
at com.novocode.ornate.theme.HtmlTheme$$anonfun$fencedCodeBlockRenderer$1.apply(HtmlTheme.scala:106)
at com.novocode.ornate.commonmark.SimpleHtmlNodeRenderer$$anon$1.render(SimpleHtmlNodeRenderer.scala:12)
at org.commonmark.html.HtmlRenderer$MainNodeRenderer.render(HtmlRenderer.java:245)
at org.commonmark.html.renderer.CoreNodeRenderer.visitChildren(CoreNodeRenderer.java:239)
at org.commonmark.html.renderer.CoreNodeRenderer.visit(CoreNodeRenderer.java:155)
at org.commonmark.node.ListItem.accept(ListItem.java:7)
at org.commonmark.html.renderer.CoreNodeRenderer.render(CoreNodeRenderer.java:49)
at org.commonmark.html.HtmlRenderer$MainNodeRenderer.render(HtmlRenderer.java:245)
at org.commonmark.html.renderer.CoreNodeRenderer.visitChildren(CoreNodeRenderer.java:239)
at org.commonmark.html.renderer.CoreNodeRenderer.renderListBlock(CoreNodeRenderer.java:258)
at org.commonmark.html.renderer.CoreNodeRenderer.visit(CoreNodeRenderer.java:167)
at org.commonmark.node.OrderedList.accept(OrderedList.java:10)
at org.commonmark.html.renderer.CoreNodeRenderer.render(CoreNodeRenderer.java:49)
at org.commonmark.html.HtmlRenderer$MainNodeRenderer.render(HtmlRenderer.java:245)
at org.commonmark.html.renderer.CoreNodeRenderer.visitChildren(CoreNodeRenderer.java:239)
at org.commonmark.html.renderer.CoreNodeRenderer.visit(CoreNodeRenderer.java:155)
at org.commonmark.node.ListItem.accept(ListItem.java:7)
at org.commonmark.html.renderer.CoreNodeRenderer.render(CoreNodeRenderer.java:49)
at org.commonmark.html.HtmlRenderer$MainNodeRenderer.render(HtmlRenderer.java:245)
at org.commonmark.html.renderer.CoreNodeRenderer.visitChildren(CoreNodeRenderer.java:239)
at org.commonmark.html.renderer.CoreNodeRenderer.renderListBlock(CoreNodeRenderer.java:258)
at org.commonmark.html.renderer.CoreNodeRenderer.visit(CoreNodeRenderer.java:167)
at org.commonmark.node.OrderedList.accept(OrderedList.java:10)
at org.commonmark.html.renderer.CoreNodeRenderer.render(CoreNodeRenderer.java:49)
at org.commonmark.html.HtmlRenderer$MainNodeRenderer.render(HtmlRenderer.java:245)
at org.commonmark.html.renderer.CoreNodeRenderer.visitChildren(CoreNodeRenderer.java:239)
at org.commonmark.html.renderer.CoreNodeRenderer.visit(CoreNodeRenderer.java:55)
at org.commonmark.node.Document.accept(Document.java:7)
at org.commonmark.html.renderer.CoreNodeRenderer.render(CoreNodeRenderer.java:49)
at org.commonmark.html.HtmlRenderer$MainNodeRenderer.render(HtmlRenderer.java:245)
at org.commonmark.html.HtmlRenderer.render(HtmlRenderer.java:60)
at org.commonmark.html.HtmlRenderer.render(HtmlRenderer.java:71)
at com.novocode.ornate.theme.HtmlTheme$PageModelImpl.<init>(HtmlTheme.scala:175)
at com.novocode.ornate.theme.HtmlTheme$$anonfun$render$1.apply(HtmlTheme.scala:243)
at com.novocode.ornate.theme.HtmlTheme$$anonfun$render$1.apply(HtmlTheme.scala:227)
at scala.collection.Iterator$class.foreach(Iterator.scala:893)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at com.novocode.ornate.theme.HtmlTheme.render(HtmlTheme.scala:227)
at com.novocode.ornate.Main$.run(Main.scala:33)
at com.novocode.ornate.Main$.runToStatus(Main.scala:77)
at com.novocode.ornate.Main.runToStatus(Main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.novocode.ornate.sbtplugin.OrnatePlugin$$anonfun$ornateTask$1.apply(OrnatePlugin.scala:62)
at com.novocode.ornate.sbtplugin.OrnatePlugin$$anonfun$ornateTask$1.apply(OrnatePlugin.scala:39)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: jdk.nashorn.internal.runtime.ECMAException: TypeError: [object Object] is not an Object
at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)
at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:213)
at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:185)
at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:172)
at jdk.nashorn.internal.objects.Global.checkObject(Global.java:1673)
at jdk.nashorn.internal.objects.NativeObject.create(NativeObject.java:261)
at jdk.nashorn.internal.scripts.Script$Recompilation$61$12886AA$\^eval\_.L:1$L:30$highlight$startNewMode(node_modules/highlight.js/lib/highlight.js:426)
at jdk.nashorn.internal.scripts.Script$Recompilation$56$13068AA$\^eval\_.L:1$L:30$highlight$processLexeme(node_modules/highlight.js/lib/highlight.js:451)
at jdk.nashorn.internal.scripts.Script$Recompilation$43$9774AAZA$\^eval\_.L:1$L:30$highlight(node_modules/highlight.js/lib/highlight.js:519)
at jdk.nashorn.internal.scripts.Script$Recompilation$42$16955AJA$\^eval\_.L:1$L:30$highlightAuto$L:564(node_modules/highlight.js/lib/highlight.js:565)
at jdk.nashorn.internal.objects.NativeArray$9.forEach(NativeArray.java:1604)
at jdk.nashorn.internal.runtime.arrays.IteratorAction.apply(IteratorAction.java:110)
at jdk.nashorn.internal.objects.NativeArray.forEach(NativeArray.java:1607)
at jdk.nashorn.internal.scripts.Script$Recompilation$40$16706AA$\^eval\_.L:1$L:30$highlightAuto(node_modules/highlight.js/lib/highlight.js:564)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:640)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:229)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:387)
at jdk.nashorn.api.scripting.ScriptObjectMirror.call(ScriptObjectMirror.java:110)
at jdk.nashorn.api.scripting.ScriptObjectMirror.callMember(ScriptObjectMirror.java:194)
at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:381)
... 71 common frames omitted
java.lang.RuntimeException: Ornate run failed with status code 1
at com.novocode.ornate.sbtplugin.OrnatePlugin$$anonfun$ornateTask$1.apply(OrnatePlugin.scala:63)
at com.novocode.ornate.sbtplugin.OrnatePlugin$$anonfun$ornateTask$1.apply(OrnatePlugin.scala:39)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Fortunately, running this on JDK8 works fine. This error may be caused because you're accessing a JS object and not a Java object?
Related issue: https://bugs.openjdk.java.net/browse/JDK-8154720
This is probably a Java bug. Which version of the JRE and JDK did you use? You need something like u100+ of Java 8, earlier releases (including the default Java 8 on Travis CI) don't work.
I got the same problem on Windows with:
>java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Hm, either they changed something again or it's really a JRE vs JDK thing (which seems unlikely). I'll have to update my Java installation and investigate.