Hello,
Let's say I have a form for the view object "persons" and on the same page I have a table-form "boss" which corresponds to a foreign key of the table "persons" also leading to table persons.
When inserting or updating a row in "persons", everything is alright as long as I do not specifie a new value for the foreign key. When I specifie a new value for the foreign key (also when I delete the present value completely) and push the "save" button for the first time, the row is
not saved but the table-form "boss" which lay on the same page is updated according to the new foreign key. Then, when I push the "save" button
for the second time, the row is actualy saved to the database. So this is not too bad, because pushing two times "save" is a simple workaround. Jhs 10.1.2 had the same bahavior, except that an error message was visible on the oc4j console :
java.lang.ArrayIndexOutOfBoundsException: 0
at oracle.jbo.uicli.binding.JUCtrlRangeBinding$1.get(JUCtrlRangeBinding.java:155)
at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.processMultiRowUpdateModel(JhsDataAction.java:949)
at oracle.jheadstart.controller.strutsadf.action.JhsStrutsUixLifecycle.processMultiRowUpdateModel(JhsStrutsUixLifecycle.java:180)
at oracle.jheadstart.controller.strutsadf.action.JhsStrutsUixLifecycle.processUpdateModel(JhsStrutsUixLifecycle.java:147)
at oracle.adf.controller.struts.actions.DataAction.processUpdateModel(DataAction.java:317)
at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.processUpdateModel(JhsDataAction.java:622)
at oracle.adf.controller.struts.actions.DataAction.processUpdateModel(DataAction.java:508)
at oracle.adf.controller.lifecycle.PageLifecycle.handleLifecycle(PageLifecycle.java:112)
at oracle.adf.controller.struts.actions.StrutsUixLifecycle.handleLifecycle(StrutsUixLifecycle.java:70)
at oracle.adf.controller.struts.actions.DataAction.handleLifecycle(DataAction.java:223)
at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.handleLifecycle(JhsDataAction.java:389)
at oracle.adf.controller.struts.actions.DataAction.execute(DataAction.java:155)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1485)
at oracle.jheadstart.controller.strutsadf.JhsActionServlet.process(JhsActionServlet.java:127)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:527)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
at oracle.jheadstart.controller.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:172)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:285)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:126)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
java.lang.ArrayIndexOutOfBoundsException: 0
at oracle.jbo.uicli.binding.JUCtrlRangeBinding$1.get(JUCtrlRangeBinding.java:155)
at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.processMultiRowUpdateModel(JhsDataAction.java:949)
at oracle.jheadstart.controller.strutsadf.action.JhsStrutsUixLifecycle.processMultiRowUpdateModel(JhsStrutsUixLifecycle.java:180)
at oracle.jheadstart.controller.strutsadf.action.JhsStrutsUixLifecycle.processUpdateModel(JhsStrutsUixLifecycle.java:147)
at oracle.adf.controller.struts.actions.DataAction.processUpdateModel(DataAction.java:317)
at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.processUpdateModel(JhsDataAction.java:622)
at oracle.adf.controller.struts.actions.DataAction.processUpdateModel(DataAction.java:508)
at oracle.adf.controller.lifecycle.PageLifecycle.handleLifecycle(PageLifecycle.java:112)
at oracle.adf.controller.struts.actions.StrutsUixLifecycle.handleLifecycle(StrutsUixLifecycle.java:70)
at oracle.adf.controller.struts.actions.DataAction.handleLifecycle(DataAction.java:223)
at oracle.jheadstart.controller.strutsadf.action.JhsDataAction.handleLifecycle(JhsDataAction.java:389)
at oracle.adf.controller.struts.actions.DataAction.execute(DataAction.java:155)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1485)
at oracle.jheadstart.controller.strutsadf.JhsActionServlet.process(JhsActionServlet.java:127)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:527)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
at oracle.jheadstart.controller.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:172)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:285)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:126)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
This error does not occur when testing the bc4j alone.