Exceptions in file change monitoring when using -gui on OSX Mountain Lion (10.8.2)

0 votes
asked Feb 20, 2013 in Bug by anonymous

I recently upgraded from Snow Leopard (10.6) to Mountain Lion (10.8.2), and noticed that the file change monitoring no longer works, and I get an exception that points to DirWater2.

 

 

$ java -jar ~/lib/java/plantuml.jar -gui classes.plantumlException in thread "AWT-EventQueue-0" java.lang.NullPointerException

        at net.sourceforge.plantuml.DirWatcher2.buildCreatedFiles(Unknown Source)
        at net.sourceforge.plantuml.swing.MainWindow2.refreshDir(Unknown Source)
        at net.sourceforge.plantuml.swing.MainWindow2.access$600(Unknown Source)
        at net.sourceforge.plantuml.swing.MainWindow2$10.run(Unknown Source)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
        at java.awt.EventQueue.access$400(EventQueue.java:82)
        at java.awt.EventQueue$2.run(EventQueue.java:663)
        at java.awt.EventQueue$2.run(EventQueue.java:661)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

(this keeps repeating until the program exits)
 

$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

$ uname -a
myhostname 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64
 

 

1 Answer

0 votes
answered Feb 20, 2013 by plantuml (295,000 points)

Hello,

Which version of plantuml are you using ? Could you type:

java -jar ~/lib/java/plantuml.jar -version

Could you try to use -Djava.compiler=NONE flag, so that we can see line number:

java -Djava.compiler=NONE -jar ~/lib/java/plantuml.jar -gui

Thanks,

commented Feb 20, 2013 by anonymous
Hi there,
I'm using the latest version pulled off sourceforge:
PlantUML version 7958 (Mon Feb 18 13:18:59 CST 2013)
Java(TM) SE Runtime Environment
Java HotSpot(TM) 64-Bit Server VM
1.6.0_37-b06-434-11M3909
Mac OS X

The environment variable GRAPHVIZ_DOT has not been set
Dot executable is /usr/local/bin/dot
Dot version: dot - graphviz version 2.28.0 (20110509.1545)
Installation seems OK. PNG generation OK

$ java -Djava.compiler=NONE -jar ~/lib/java/plantuml.jar -gui classes.plantuml
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at net.sourceforge.plantuml.DirWatcher2.buildCreatedFiles(Unknown Source)
        at net.sourceforge.plantuml.swing.MainWindow2.refreshDir(Unknown Source)
        at net.sourceforge.plantuml.swing.MainWindow2.access$600(Unknown Source)
        at net.sourceforge.plantuml.swing.MainWindow2$10.run(Unknown Source)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
        at java.awt.EventQueue.access$400(EventQueue.java:82)
        at java.awt.EventQueue$2.run(EventQueue.java:663)
        at java.awt.EventQueue$2.run(EventQueue.java:661)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

I'll try building from source so I can get specific lines for you.
commented Feb 20, 2013 by plantuml (295,000 points)
Ok, you can download here a debug version : https://dl.dropbox.com/u/13064071/plantuml.jar
This version prints info in the standard error.
Could you run it and copy/paste here the result ?
Thanks
commented Feb 20, 2013 by anonymous
I built from source (added debug="on" into build.xml), and got this:

$ java -Djava.compiler=NONE -jar plantuml.jar -gui
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at net.sourceforge.plantuml.DirWatcher2.buildCreatedFiles(DirWatcher2.java:72)
        at net.sourceforge.plantuml.swing.MainWindow2.refreshDir(MainWindow2.java:341)
        at net.sourceforge.plantuml.swing.MainWindow2.access$600(MainWindow2.java:86)
        at net.sourceforge.plantuml.swing.MainWindow2$10.run(MainWindow2.java:324)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
        at java.awt.EventQueue.access$400(EventQueue.java:82)
        at java.awt.EventQueue$2.run(EventQueue.java:663)
        at java.awt.EventQueue$2.run(EventQueue.java:661)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


$ svn info
Path: .
URL: svn://svn.code.sf.net/p/plantuml/code/trunk
Repository Root: svn://svn.code.sf.net/p/plantuml/code
Repository UUID: 2bfd43ce-aac2-44f9-bcbc-61bf0d4e0ab5
Revision: 313
Node Kind: directory
Schedule: normal
Last Changed Author: arnaud_roques
Last Changed Rev: 313
Last Changed Date: 2013-02-18 14:24:42 -0600 (Mon, 18 Feb 2013)
commented Feb 20, 2013 by anonymous
This is what is output when I run your debug build:

$ java -Djava.compiler=NONE -jar plantuml.jar -gui .
A010 dir = /Users/mike/Documents/drawings/My Project/uml/.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at net.sourceforge.plantuml.DirWatcher2.buildCreatedFiles(DirWatcher2.java:79)
        at net.sourceforge.plantuml.swing.MainWindow2.refreshDir(MainWindow2.java:341)
        at net.sourceforge.plantuml.swing.MainWindow2.access$6(MainWindow2.java:340)
        at net.sourceforge.plantuml.swing.MainWindow2$10.run(MainWindow2.java:324)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
        at java.awt.EventQueue.access$400(EventQueue.java:82)
        at java.awt.EventQueue$2.run(EventQueue.java:663)
        at java.awt.EventQueue$2.run(EventQueue.java:661)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Mind you the directory "/Users/mike/Documents/drawings/My Project/uml/." does not exist (anymore), and is definitely not my current working directory.
commented Feb 20, 2013 by anonymous
Heh, it would appear that the directory was the issue. I must have hit "change directory" at some point in the past, and plantuml seemed to still be looking for it. Changing to the directory that I was actually using fixed the issue.

The expected behavior, to me, would be that plantuml would always default to inspecting my current working directory, or a specified directory.
commented Feb 20, 2013 by plantuml (295,000 points)
edited Feb 20, 2013 by plantuml
Yes, plantuml remembers the last inspected directories.
But if it has been deleted, then the bug happens.
Sure, we will fix that.
You can test this beta version that will not print exceptions in that case : https://dl.dropbox.com/u/13064071/plantuml.jar
Thanks for your inputs!
...