error getting data from global method valuelist

Hello,

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.

error getting data from global method valuelist

java.lang.NullPointerException

Any suggestions how to avoid that?

Irene,

Do you have the stack trace from the java console or the log file?

Rob

Hi Rob,

here you go…

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

Hi Johan,
thank you.
Let me know if I have to report it in the support system.

no need for that i already committed the fix for 6