I have a valuelist with a global method, and it works fine except wehen I close the application it gives an error. Which is logical because at close it runs the method again.
2011-08-19 13:22:45,078 ERROR [AWT-EventQueue-0] com.servoy.j2db.util.Debug - Throwable
java.lang.NullPointerException
at com.servoy.j2db.scripting.SelectedRecordScope.getSelectedRecord(SelectedRecordScope.java:44)
at com.servoy.j2db.scripting.SelectedRecordScope.get(SelectedRecordScope.java:105)
at org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:1641)
at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1429)
at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1418)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3343)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2680)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:166)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3135)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:165)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:476)
at com.servoy.j2db.debug.RemoteDebugScriptEngine.executeFunction(RemoteDebugScriptEngine.java:382)
at com.servoy.j2db.dataprocessing.GlobalMethodValueList.fill(GlobalMethodValueList.java:136)
at com.servoy.j2db.dataprocessing.GlobalMethodValueList.fill(GlobalMethodValueList.java:196)
at com.servoy.j2db.util.ComboModelListModelWrapper.fill(ComboModelListModelWrapper.java:146)
at com.servoy.j2db.smart.dataui.DataComboBox.setRecord(DataComboBox.java:1417)
at com.servoy.j2db.dataprocessing.DataAdapterList.setRecord(DataAdapterList.java:382)
at com.servoy.j2db.dataprocessing.DataAdapterList.destroy(DataAdapterList.java:693)
at com.servoy.j2db.smart.dataui.DataRenderer.destroy(DataRenderer.java:223)
at com.servoy.j2db.FormController.deleteRenderers(FormController.java:1873)
at com.servoy.j2db.FormController.destroy(FormController.java:1833)
at com.servoy.j2db.FormManager.removeAllFormPanels(FormManager.java:860)
at com.servoy.j2db.smart.SwingFormManager.removeAllFormPanels(SwingFormManager.java:205)
at com.servoy.j2db.FormManager.destroySolutionSettings(FormManager.java:432)
at com.servoy.j2db.smart.SwingFormManager.destroySolutionSettings(SwingFormManager.java:404)
at com.servoy.j2db.debug.DebugJ2DBClient$DebugSwingFormMananger.destroySolutionSettings(DebugJ2DBClient.java:211)
at com.servoy.j2db.FormManager.propertyChange(FormManager.java:155)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
at javax.swing.event.SwingPropertyChangeSupport.firePropertyChange(SwingPropertyChangeSupport.java:75)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
at com.servoy.j2db.J2DBGlobals.firePropertyChange(J2DBGlobals.java:90)
at com.servoy.j2db.ClientState.closeSolution(ClientState.java:1140)
at com.servoy.j2db.smart.J2DBClient.closeSolution(J2DBClient.java:1969)
at com.servoy.j2db.debug.DebugJ2DBClient.closeSolution(DebugJ2DBClient.java:722)
at com.servoy.j2db.debug.DebugJ2DBClient.shutDown(DebugJ2DBClient.java:681)
at com.servoy.j2db.smart.J2DBClient$13.windowClosing(J2DBClient.java:1056)
at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:332)
at java.awt.Window.processWindowEvent(Window.java:1865)
at javax.swing.JFrame.processWindowEvent(JFrame.java:274)
at java.awt.Window.processEvent(Window.java:1823)
at java.awt.Component.dispatchEventImpl(Component.java:4735)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:652)
at java.awt.EventQueue$2.run(EventQueue.java:650)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
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 is an exception that happens when the solution is already closed (or closing). So it shouldn’t be a big problem of your actual solution
Servoy 6.0.1 will have a fix for this, so that this global method will not be executed at all anymore at that time