As with the recent ControlsFX update release, I’m happy to announce the release of Scenic View 8.6.0. This release brings compatibility with JavaFX 8u60. Let me know if you run into any further problems. You can download it from the main Scenic View page.
As with ControlsFX, I will also be presenting a BOF at JavaOne on Scenic View. If you are in the neighbourhood I hope you can come along and we can chat about the future of this very useful tool!
Great job on this project and the latest update! It works as advertised with the latest 8u60 JDK, thank you.
ScenicView crashes every time:
default uncaught exception handler has received an error on thread “RMI TCP Connection(2)-192.168.0.12”:
java.lang.NullPointerException
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.lambda$monitorStylesheets$36(CSSFXMonitor.java:286)
at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.util.LinkedList$LLSpliterator.tryAdvance(LinkedList.java:1249)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.monitorStylesheets(CSSFXMonitor.java:286)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.registerNode(CSSFXMonitor.java:222)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.monitorChildren(CSSFXMonitor.java:275)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.registerNode(CSSFXMonitor.java:223)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.monitorChildren(CSSFXMonitor.java:275)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.registerNode(CSSFXMonitor.java:223)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.monitorRoot(CSSFXMonitor.java:211)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.registerScene(CSSFXMonitor.java:296)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.monitorStageScene(CSSFXMonitor.java:194)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.registerStage(CSSFXMonitor.java:305)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor.access$100(CSSFXMonitor.java:61)
at org.scenicview.extensions.cssfx.module.impl.CSSFXMonitor$1.onChanged(CSSFXMonitor.java:165)
at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
at java.util.AbstractList.add(AbstractList.java:108)
at org.fxconnector.remote.RuntimeAttach$1.getStageIDs(RuntimeAttach.java:149)
at org.fxconnector.remote.RemoteApplicationImpl.getStageIDs(RemoteApplicationImpl.java:108)
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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$256(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
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)
Process finished with exit code 1
Sorry but not running
konstantin@it-konstantin ~/Temp $ java -version
java version “1.8.0_60”
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
konstantin@it-konstantin ~/Temp $ java -jar ScenicView.jar
java.lang.IllegalArgumentException: URI is not absolute
at java.net.URI.toURL(URI.java:1088)
at org.scenicview.model.attach.AttachHandlerFactory.addToolsJarToClasspath(AttachHandlerFactory.java:212)
at org.scenicview.model.attach.AttachHandlerFactory.initAttachAPI(AttachHandlerFactory.java:91)
at org.scenicview.ScenicView.start(ScenicView.java:160)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$174(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$50(GtkApplication.java:139)
at java.lang.Thread.run(Thread.java:745)
Platform running
Launching ScenicView v8.0.0
Startup done
Creating server
Exception in Application start method
java.lang.reflect.InvocationTargetException
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.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
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 sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: com/sun/tools/attach/AttachNotSupportedException
at org.fxconnector.remote.FXConnectorFactory.getConnector(FXConnectorFactory.java:32)
at org.scenicview.ScenicView.start(ScenicView.java:188)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$174(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$50(GtkApplication.java:139)
… 1 more
Caused by: java.lang.ClassNotFoundException: com.sun.tools.attach.AttachNotSupportedException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 11 more
Exception running application org.scenicview.ScenicView
konstantin@it-konstantin ~/Temp $
Thank you for a superb tool!
I have been using it for debugging my JavaFx2 applications and have recently upgraded to Java8. I tried to download the 8.6.0 but it still looks like 8.0.0 both in the console and when looking in the about pane?
I’m having problems with this on Linux (Ubuntu 14.04, Oracle Java 1.8.0_60). Has anyone else ran into this?
(trusty)steven@localhost:~$ unzip ~/Downloads/ScenicView-8.6.0.zip
Archive: /home/steven/Downloads/ScenicView-8.6.0.zip
inflating: ScenicView.jar
(trusty)steven@localhost:~$ java -jar ScenicView.jar
java.lang.IllegalArgumentException: URI is not absolute
at java.net.URI.toURL(URI.java:1088)
at org.scenicview.model.attach.AttachHandlerFactory.addToolsJarToClasspath(AttachHandlerFactory.java:212)
at org.scenicview.model.attach.AttachHandlerFactory.initAttachAPI(AttachHandlerFactory.java:91)
at org.scenicview.ScenicView.start(ScenicView.java:160)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$174(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$50(GtkApplication.java:139)
at java.lang.Thread.run(Thread.java:745)
Platform running
Launching ScenicView v8.0.0
Startup done
Creating server
Exception in Application start method
java.lang.reflect.InvocationTargetException
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.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
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 sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: com/sun/tools/attach/AttachNotSupportedException
at org.fxconnector.remote.FXConnectorFactory.getConnector(FXConnectorFactory.java:32)
at org.scenicview.ScenicView.start(ScenicView.java:188)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$174(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$50(GtkApplication.java:139)
… 1 more
Caused by: java.lang.ClassNotFoundException: com.sun.tools.attach.AttachNotSupportedException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 11 more
Exception running application org.scenicview.ScenicView
(trusty)steven@localhost:~$ java -version
java version “1.8.0_60”
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
This version seems to work fine for me on OSX.
Hi
Works with 1.8.0_25 and 1.8.0_40 for me, but does not seem to work with (the newer) JDK 1.8.0_72.