When bug #27484 was fixed, openjump now triggers a NullPointerException when trying to close a project window inside the application window by clicking on the little 'x' in the upper right corner. I tested using the CVS version of Classpath, jamvm and the debian/unstable version of openjump. The source for openjump is available from www.openjump.org, or from <URL: ftp://ftp.no.debian.org/debian/pool/contrib/o/openjump/ >. This is the backtrace: java.lang.NullPointerException at com.vividsolutions.jump.workbench.ui.TaskFrame.memoryCleanup(TaskFrame.java:175) at com.vividsolutions.jump.workbench.ui.TaskFrame$1.internalFrameClosed(TaskFrame.java:114) at javax.swing.JInternalFrame.fireInternalFrameEvent(JInternalFrame.java:716) at javax.swing.JInternalFrame.dispose(JInternalFrame.java:662) at javax.swing.JInternalFrame.setClosed(JInternalFrame.java:1311) at javax.swing.plaf.basic.BasicInternalFrameTitlePane$CloseAction.actionPerformed(BasicInternalFrameTitlePane.java:104) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1099) at javax.swing.AbstractButton$1.actionPerformed(AbstractButton.java:1909) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:298) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:403) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:188) at java.awt.Component.processMouseEvent(Component.java:3105) at java.awt.Component.processEvent(Component.java:2964) at java.awt.Container.processEvent(Container.java:914) at java.awt.Component.dispatchEventImpl(Component.java:5033) at java.awt.Container.dispatchEventImpl(Container.java:1741) at java.awt.Component.dispatchEvent(Component.java:2322) at java.awt.LightweightDispatcher.handleMouseEvent(LightweightDispatcher.java:197) at java.awt.LightweightDispatcher.dispatchEvent(LightweightDispatcher.java:116) at java.awt.Container.dispatchEventImpl(Container.java:1731) at java.awt.Window.dispatchEventImpl(Window.java:642) at java.awt.Component.dispatchEvent(Component.java:2322) at java.awt.EventQueue.dispatchEvent(EventQueue.java:474) at java.awt.EventDispatchThread.run(EventDispatchThread.java:75) java.lang.NullPointerException at com.vividsolutions.jump.workbench.ui.TaskFrame.memoryCleanup(TaskFrame.java:175) at com.vividsolutions.jump.workbench.ui.TaskFrame$1.internalFrameClosed(TaskFrame.java:114) at javax.swing.JInternalFrame.fireInternalFrameEvent(JInternalFrame.java:716) at javax.swing.JInternalFrame.setClosed(JInternalFrame.java:1314) at javax.swing.plaf.basic.BasicInternalFrameTitlePane$CloseAction.actionPerformed(BasicInternalFrameTitlePane.java:104) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1099) at javax.swing.AbstractButton$1.actionPerformed(AbstractButton.java:1909) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:298) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:403) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:188) at java.awt.Component.processMouseEvent(Component.java:3105) at java.awt.Component.processEvent(Component.java:2964) at java.awt.Container.processEvent(Container.java:914) at java.awt.Component.dispatchEventImpl(Component.java:5033) at java.awt.Container.dispatchEventImpl(Container.java:1741) at java.awt.Component.dispatchEvent(Component.java:2322) at java.awt.LightweightDispatcher.handleMouseEvent(LightweightDispatcher.java:197) at java.awt.LightweightDispatcher.dispatchEvent(LightweightDispatcher.java:116) at java.awt.Container.dispatchEventImpl(Container.java:1731) at java.awt.Window.dispatchEventImpl(Window.java:642) at java.awt.Component.dispatchEvent(Component.java:2322) at java.awt.EventQueue.dispatchEvent(EventQueue.java:474) at java.awt.EventDispatchThread.run(EventDispatchThread.java:75)
I asked about a related issue on the openjump developers mailing list, <URL:http://sourceforge.net/mailarchive/forum.php?forum=jump-pilot-devel>, and among other things got this answer: There seems to be an implied EnableCheck in EnableCheckFactory that does Assert.isTrue(workbenchContext != null) that would be used in configLayer() of JUMPConfiguration. I suspect the missing context value might be the problem here too.