JonathanGiles / scenic-view

Scenic View is a JavaFX application designed to make it simple to understand the current state of your application scenegraph, and to also easily manipulate properties of the scenegraph without having to keep editing your code. This lets you find bugs, and get things pixel perfect without having to do the compile-check-compile dance.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

8.6.0 Crashes on launch with 8u60 8u51 8u45

JonathanGiles opened this issue · comments

Original report by Boyd Edmondson (Bitbucket: BoydEdmondson, GitHub: Unknown).


Scenic View crashes every time it is launched with the exception below. This started with JDK 8u45 and is still present with 8u60.

This happens with one of my applications but not the other. The one that causes Scenic View to crash has a custom CSS and the application that does not cause Scenic View to crash has no custom CSS.

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)

Original comment by Jonathan Giles (Bitbucket: JonathanGiles, GitHub: JonathanGiles).


I'll work on putting out a new release soon. I'll announce it in my weekly links on my websites.

Original comment by Matthieu Brouillard (Bitbucket: mcfoggy, GitHub: mcfoggy).


@nartamonov @bugabinga sorry I only contributed to the project, only @JonathanGiles can do the releases. Meanwhile you can build yourself a version of the project gradle build should be enough

Original comment by Nikolay Artamonov (Bitbucket: nartamonov, GitHub: nartamonov).


Guys, was version with this fix released? Official site (http://www.scenic-view.org/) contains only link for 8.6.0 which was released in september 2015, but fix was merged in trunk in october. I have the same problem in Windows 8 + JDK 8u71 😞 @JonathanGiles @McFoggy

@bugabinga, I think you use 8.6.0 like me, which does not contain fix.

Original comment by Oliver Krylow (Bitbucket: bugabinga, GitHub: bugabinga).


This may be a regression since I experience the same issue with jdk1.8.0_92 on Win10.

Let me know if there is more info I can share.

#!log

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.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:498)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)
	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$0(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)

Original comment by Jonathan Giles (Bitbucket: JonathanGiles, GitHub: JonathanGiles).


Merged in mcfoggy/scenic-view/issue-12 (pull request #8)

fixes #17 added a check that a source has been associated to a monitored CSS

Original comment by Jonathan Giles (Bitbucket: JonathanGiles, GitHub: JonathanGiles).


Merged in mcfoggy/scenic-view/issue-12 (pull request #8)

fixes #17 added a check that a source has been associated to a monitored CSS

Original comment by Boyd Edmondson (Bitbucket: BoydEdmondson, GitHub: Unknown).


Oh, OK. Thanks for the explanation and the fix.

Original comment by Matthieu Brouillard (Bitbucket: mcfoggy, GitHub: mcfoggy).


The exception is not new and is "normal" regarding the behavior of ScenicView and the way it communicates with the monitored application.

In RemoteApplicationImpl.java (which is some code that is going to be executed inside the monitored application) every 60ms, it tries to communicate with ScenicView.
When you close ScenicView, there is a remote call from your application to ScenicView (which does not exists anymore) that is going to fail. It is where the exception is logged. It is correctly trapped and handled, but it is printed. It is not something to worry about.

Glad to see that the inital problem disappeared for you.

Original comment by Boyd Edmondson (Bitbucket: BoydEdmondson, GitHub: Unknown).


It seems that to reproduce the new Exception, I must run my application, then run ScenicView, then quit SceniView. (Quiting my application first does not show the Exception.)

Original comment by Boyd Edmondson (Bitbucket: BoydEdmondson, GitHub: Unknown).


I must have successfully downloading the patch and gradle and built the new version because it no longer crashes!

I can run this version of ScenicView and it does not crash as before. I was able to step through some items on my application and see the normal highlighting of the selected item. When I quit ScenicView though, I see this Exception:

Launching agent server on:7559:7558:3920:true
2015-10-01T14:25:52.728Z [ INFO] CSS Monitoring is about to start
2015-10-01T14:25:52.729Z [ INFO] CSS Monitoring started
2015-10-01T14:25:52.730Z [ INFO] starting to monitor physical files
java.rmi.ConnectException: Connection refused to host: 192.168.0.12; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:130)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:217)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:171)
at org.fxconnector.remote.$Proxy7.dispatchEvent(Unknown Source)
at org.fxconnector.remote.RemoteApplicationImpl$RemoteDispatcher.run(RemoteApplicationImpl.java:164)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.(Socket.java:434)
at java.net.Socket.(Socket.java:211)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
... 7 more

Process finished with exit code 0

Still, I should be able to use ScenicView again. (Yea!). Thank you!

Original comment by Matthieu Brouillard (Bitbucket: mcfoggy, GitHub: mcfoggy).


I have reproduced and corrected the problem.

I have created a PR https://bitbucket.org/scenicview/scenic-view/pull-requests/8

Can one of you confirm it corrects the issue in your case?

Thanks.

Original comment by Jonathan Giles (Bitbucket: JonathanGiles, GitHub: JonathanGiles).


I have emailed Matthieu to see if he can help to resolve this issue.