Calling initForJSUsage on a destroyed form: FormController[form: im_ItemAdditionalFeeLink_List,destroyed:true]
We see this only in the Server Log but suspect that it has implications on other parts of the system. Looking at the call stack in the Server Log it appears that the error is thrown by code & context which have nothing to do with the specified form. It appears that this is somehow related to using forms[‘some_other_form_name’] where Servoy internally is checking something in the forms.
if you have a reproducable case where we can see that happening then please make a case.
Do you see that in a server or in a developer?
On a server that should just not really be happening. A destroyed form shouldn’t be referenced anywhere. I think you also have a full stacktrace after that message?
jcompagner:
if you have a reproducable case where we can see that happening then please make a case.
Do you see that in a server or in a developer?
On a server that should just not really be happening. A destroyed form shouldn’t be referenced anywhere. I think you also have a full stacktrace after that message?
This is happening only on Server and never in Developer, and actually we are getting it quite often. This has been happening for quite some time now, even on the latest Servoy 7.3.0 i2 - build 2020
Below is the stack trace from the log:
2013-11-20 08:00:27,560 ERROR [http-8080-11] com.servoy.j2db.util.Debug - Calling initForJSUsage on a destroyed form: FormController[form: so_Transaction_Manage,destroyed:true] [93695396-C045-41D4-B7FC-D130CF4FEF63 argos_abelisk_client]
java.lang.RuntimeException
at com.servoy.j2db.FormController.initForJSUsage(FormController.java:5127)
at com.servoy.j2db.FormController.getFormScope(FormController.java:5515)
at com.servoy.j2db.server.headlessclient.dataui.RecordItemModel.getValue(RecordItemModel.java:367)
at com.servoy.j2db.server.headlessclient.dataui.RecordItemModel$WrapModel.getObject(RecordItemModel.java:143)
at org.apache.wicket.Component.getDefaultModelObject(Component.java:1729)
at com.servoy.j2db.server.headlessclient.dataui.WebDataField.getValueObject(WebDataField.java:939)
at com.servoy.j2db.dataprocessing.LookupListChangeListener.changed(LookupListChangeListener.java:41)
at com.servoy.j2db.dataprocessing.LookupListChangeListener.contentsChanged(LookupListChangeListener.java:70)
at com.servoy.j2db.dataprocessing.LookupValueList$TableChangeListener.tableChange(LookupValueList.java:153)
at com.servoy.j2db.dataprocessing.FoundSetManager$3.run(FoundSetManager.java:1517)
at com.servoy.j2db.dataprocessing.FoundSetManager.fireTableEvent(FoundSetManager.java:1523)
at com.servoy.j2db.dataprocessing.FoundSetManager.notifyChange(FoundSetManager.java:1502)
at com.servoy.j2db.dataprocessing.RowManager.fireNotifyChange(RowManager.java:579)
at com.servoy.j2db.dataprocessing.RowManager.deleteRow(RowManager.java:1012)
at com.servoy.j2db.dataprocessing.FoundSet.deleteRecord(FoundSet.java:3905)
at com.servoy.j2db.dataprocessing.FoundSet.deleteRecord(FoundSet.java:3792)
at com.servoy.j2db.FormController.deleteRecordImpl(FormController.java:3466)
at com.servoy.j2db.FormController.access$6(FormController.java:3453)
at com.servoy.j2db.FormController$JSForm.js_deleteRecord(FormController.java:1586)
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:158)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:312)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1774)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:837)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:158)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:406)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3204)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:156)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:626)
at com.servoy.j2db.plugins.ClientPluginAccessProvider$MethodExecutor.run(ClientPluginAccessProvider.java:551)
at com.servoy.j2db.server.headlessclient.EventsRunnable.run(EventsRunnable.java:58)
at com.servoy.j2db.server.headlessclient.WebClient.executeEvents(WebClient.java:552)
at com.servoy.j2db.server.headlessclient.WebClient.onBeginRequest(WebClient.java:1075)
at com.servoy.j2db.server.headlessclient.ServoyRequestCycle.onBeginRequest(ServoyRequestCycle.java:83)
at org.apache.wicket.RequestCycle.prepare(RequestCycle.java:1269)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1333)
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.Zt.doGet(Zt.java:13)
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:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
can you make a case with that stack trace.
It seems that the WebDataField doesn’t release a listener when it it destroyed. (at least it should be destroyed)
The problem is that for these things we need a completely reproduce able case else it is impossible for us to find what is really happening.
It just reports that it is in a state that shouldn’t happen, (in developer it could but never in an actual client)
We do already try fix the problem the problem at the moment this happens, so it is not a big problem for your solution but it would be nice to know how it exactly happens.