# Exception when entering find mode on onRecordSelection

**URL:** <https://forum.servoy.com/t/exception-when-entering-find-mode-on-onrecordselection/16422>\
**Category:** Classic Servoy\
**Created:** [September 4, 2012, 8:37am UTC](https://forum.servoy.com/t/exception-when-entering-find-mode-on-onrecordselection/16422 "2012-09-04T08:37:34Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![studiomiazzo](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@studiomiazzo](https://forum.servoy.com/u/studiomiazzo)\
**Post date:** [September 4, 2012, 8:37am UTC](https://forum.servoy.com/t/exception-when-entering-find-mode-on-onrecordselection/16422/1 "2012-09-04T08:37:34Z")

</div>

Hello,

I’m using the latest version of the old framework, and I’m getting this exception when trying to enter find mode on the onRecordSelection of a form:

```auto
2012-09-04 10:26:51,722 ERROR [http-8080-1] com.servoy.j2db.util.Debug - [2A535EFE-A76F-41D9-9A5F-5C864BB3C36E HR]
2012-09-04 10:26:51,722 ERROR [http-8080-1] com.servoy.j2db.util.Debug - Throwable [2A535EFE-A76F-41D9-9A5F-5C864BB3C36E HR]
org.mozilla.javascript.WrappedException: Wrapped java.lang.NullPointerException (C:\servoy_workspace_hr_6.0.6\HR_ditta\forms\inail_datigenerali_tab.js#65)
	at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1828)
	at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:199)
	at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:367)
	at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3666)
	at script.filterData(C:\servoy_workspace_hr_6.0.6\HR_ditta\forms\inail_datigenerali_tab.js:65)
	at script.onRecordSelection(C:\servoy_workspace_hr_6.0.6\HR_shared\forms\storico_base.js:194)
	at script.onRecordSelection(C:\servoy_workspace_hr_6.0.6\HR_ditta\forms\inail_datigenerali_tab.js:24)
	at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2680)
	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:166)
	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:537)
	at com.servoy.j2db.debug.RemoteDebugScriptEngine.executeFunction(RemoteDebugScriptEngine.java:392)
	at com.servoy.j2db.FormController.executeFunction(FormController.java:4072)
	at com.servoy.j2db.FormController.executeFormMethod(FormController.java:4394)
	at com.servoy.j2db.FormController.executeOnRecordSelect(FormController.java:4332)
	at com.servoy.j2db.FormController.refreshAllPartRenderers(FormController.java:2239)
	at com.servoy.j2db.FormController.valueChanged(FormController.java:2311)
	at com.servoy.j2db.FormController.notifyVisible(FormController.java:3086)
	at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.notifyVisible(WebTabPanel.java:634)
	at com.servoy.j2db.dataprocessing.DataAdapterList.notifyVisible(DataAdapterList.java:514)
	at com.servoy.j2db.server.headlessclient.dataui.WebDataRenderer.notifyVisible(WebDataRenderer.java:297)
	at com.servoy.j2db.FormController.notifyVisible(FormController.java:3155)
	at com.servoy.j2db.server.headlessclient.dataui.WebTabFormLookup.notifyVisible(WebTabFormLookup.java:179)
	at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.setCurrentForm(WebTabPanel.java:472)
	at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.notifyVisible(WebTabPanel.java:607)
	at com.servoy.j2db.dataprocessing.DataAdapterList.notifyVisible(DataAdapterList.java:514)
	at com.servoy.j2db.server.headlessclient.dataui.WebDataRenderer.notifyVisible(WebDataRenderer.java:297)
	at com.servoy.j2db.FormController.notifyVisible(FormController.java:3155)
	at com.servoy.j2db.server.headlessclient.dataui.WebSplitPane.notifyVisibleForm(WebSplitPane.java:402)
	at com.servoy.j2db.server.headlessclient.dataui.WebSplitPane.notifyVisible(WebSplitPane.java:367)
	at com.servoy.j2db.dataprocessing.DataAdapterList.notifyVisible(DataAdapterList.java:514)
	at com.servoy.j2db.server.headlessclient.dataui.WebDataRenderer.notifyVisible(WebDataRenderer.java:297)
	at com.servoy.j2db.FormController.notifyVisible(FormController.java:3155)
	at com.servoy.j2db.server.headlessclient.dataui.WebSplitPane.notifyVisibleForm(WebSplitPane.java:402)
	at com.servoy.j2db.server.headlessclient.dataui.WebSplitPane.setForm(WebSplitPane.java:933)
	at com.servoy.j2db.ui.scripting.RuntimeSplitPane.js_setRightForm(RuntimeSplitPane.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
	at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:367)
	at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3666)
	at script.svy_nav_showForm(C:\servoy_workspace_hr_6.0.6\svy_nav_navigation\globals.js:1993)
	at script.svy_nav_tree_node_selected(C:\servoy_workspace_hr_6.0.6\svy_nav_navigation\globals.js:2224)
	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:3134)
	at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:165)
	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:537)
	at com.servoy.j2db.debug.RemoteDebugScriptEngine.executeFunction(RemoteDebugScriptEngine.java:392)
	at com.servoy.j2db.plugins.ClientPluginAccessProvider$MethodExecutor.run(ClientPluginAccessProvider.java:514)
	at com.servoy.j2db.server.headlessclient.WebClient.invokeAndWait(WebClient.java:555)
	at com.servoy.j2db.plugins.ClientPluginAccessProvider.executeMethod(ClientPluginAccessProvider.java:413)
	at com.servoy.j2db.server.headlessclient.WebClientPluginAccessProvider.executeMethod(WebClientPluginAccessProvider.java:99)
	at com.servoy.j2db.scripting.FunctionDefinition.exec(FunctionDefinition.java:218)
	at com.servoy.j2db.scripting.FunctionDefinition.execute(FunctionDefinition.java:182)
	at com.servoy.extensions.beans.dbtreeview.MouseAction.execute(MouseAction.java:71)
	at com.servoy.extensions.beans.dbtreeview.MouseEventBehavior.onEvent(MouseEventBehavior.java:49)
	at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)
	at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:312)
	at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:157)
	at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
	at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
	at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
	at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
	at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
	at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
	at com.servoy.j2db.server.servlets.Zl.doGet(Zl.java:8)
	at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
	at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.showFoundSet(WebTabPanel.java:704)
	at com.servoy.j2db.server.headlessclient.dataui.WebTabPanel.valueChanged(WebTabPanel.java:1343)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at com.servoy.j2db.util.model.AlwaysRowSelectedSelectionModel.fireValueChanged(AlwaysRowSelectedSelectionModel.java:236)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
	at javax.swing.DefaultListSelectionModel.removeIndexInterval(Unknown Source)
	at com.servoy.j2db.util.model.AlwaysRowSelectedSelectionModel.removeIndexInterval(AlwaysRowSelectedSelectionModel.java:134)
	at com.servoy.j2db.util.model.AlwaysRowSelectedSelectionModel.intervalRemoved(AlwaysRowSelectedSelectionModel.java:284)
	at com.servoy.j2db.dataprocessing.TableAndListEventDelegate.fireIntervalRemoved(TableAndListEventDelegate.java:135)
	at com.servoy.j2db.dataprocessing.TableAndListEventDelegate$1.run(TableAndListEventDelegate.java:158)
	at com.servoy.j2db.dataprocessing.TableAndListEventDelegate.fireTableAndListEvent(TableAndListEventDelegate.java:180)
	at com.servoy.j2db.dataprocessing.SwingRelatedFoundSet.fireFoundSetEvent(SwingRelatedFoundSet.java:150)
	at com.servoy.j2db.dataprocessing.FoundSet.fireDifference(FoundSet.java:3938)
	at com.servoy.j2db.dataprocessing.FoundSet.setFindMode(FoundSet.java:3838)
	at com.servoy.j2db.dataprocessing.FoundSet.js_find(FoundSet.java:732)
	at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
	... 78 more

```

What’s weird is that if I just execute the find within the developer’s console everything goes just fine…

EDIT: this only happens in webclient  
EDIT2: the problem seems to be related to the fact that I directly use the related foundset to perform the find, so that some update event is triggered or something…unfortunately I can’t duplicate or apply foundset filters, since related foundsets cannot be changed in any way apart from searching them…

---

<div class="post-metadata">

**Author:** ![Joas](https://yyz2.discourse-cdn.com/flex010/user_avatar/forum.servoy.com/joas/32/5095_2.png) [@Joas](https://forum.servoy.com/u/Joas)\
**Post date:** [September 4, 2012, 9:32am UTC](https://forum.servoy.com/t/exception-when-entering-find-mode-on-onrecordselection/16422/2 "2012-09-04T09:32:15Z")

</div>

It looks like this is related to this change in 6.1:

> Form.onRecordSelection is also fired when the selection is being set to none (-1) if an empty foundset is set. (so foundset.getSelectedRecord() can return null)

See the 6.1 changes list: [http://wiki.servoy.com/display/public/DOCS/New+in+this+release](http://wiki.servoy.com/display/public/DOCS/New+in+this+release)

You should check in your onRecordSelection method if there is really a record, because that is not always the case anymore.

---

<div class="post-metadata">

**Author:** ![studiomiazzo](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@studiomiazzo](https://forum.servoy.com/u/studiomiazzo)\
**Post date:** [September 4, 2012, 2:31pm UTC](https://forum.servoy.com/t/exception-when-entering-find-mode-on-onrecordselection/16422/3 "2012-09-04T14:31:59Z")

</div>

I don’t know but I’ll give it a try. However the null reference seems to be the form used by some internal method of Servoy.

---

<div class="post-metadata">

**Author:** ![Joas](https://yyz2.discourse-cdn.com/flex010/user_avatar/forum.servoy.com/joas/32/5095_2.png) [@Joas](https://forum.servoy.com/u/Joas)\
**Post date:** [September 4, 2012, 2:42pm UTC](https://forum.servoy.com/t/exception-when-entering-find-mode-on-onrecordselection/16422/4 "2012-09-04T14:42:03Z")

</div>

What exactly is your code around line 65 of inail\_datigenerali\_tab.js?

---

<div class="post-metadata">

**Author:** ![studiomiazzo](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@studiomiazzo](https://forum.servoy.com/u/studiomiazzo)\
**Post date:** [September 5, 2012, 11:10am UTC](https://forum.servoy.com/t/exception-when-entering-find-mode-on-onrecordselection/16422/5 "2012-09-05T11:10:44Z")

</div>

This is the function generating the error

```auto
function filterData()
{
	var fs = ditteinailgenerale_to_ditteinailposizioni;
	if(fs && fs.find())
	{
		// La data di decorrenza deve essere anteriore alla data odierna
		fs.datacessazattivita = '^||>=' + globals.formatForFind(globals._TODAY);		
		fs.search();
	}
}

```

The error is raised by the if clause
