I found if I changed the Default Dynamic Rows Compiler setting to a number larger than what the maximum number of rows were that would ever show on the browser window, that would fix the problem. We settled on 100, and all was fine until for another application with the OnException global event enabled, it would give the following error to the user when the code executed the Panel.FindData method:
If debug is enabled, then you can see the actual error:
- Code: Select all
Employee Filters On Updating Row) Err : java.lang.ArrayIndexOutOfBoundsException: 1
java.util.BitSet.get(BitSet.java:672)
com.progamma.is.IDPanel.RD3Change(IDPanel.java:11979)
com.progamma.is.IDPanel.RD3Change(IDPanel.java:11960)
com.progamma.is.IDPanel.UpdateDynRows(IDPanel.java:6532)
com.progamma.is.IDPanel.FindData(IDPanel.java:4260)
com.progamma.is.IDPanel.PanelCommand(IDPanel.java:744)
com.progamma.is.IDPanel.PanelCommand(IDPanel.java:624)
EmployeeAdministration.PAN_EMPLOYFILTER_OnUpdatingRow(EmployeeAdministration.java:607)
EmployeeAdministration.PAN_EMPLOYFILTER_ValidateCell(EmployeeAdministration.java:1506)
EmployeeAdministration.ValidateCell(EmployeeAdministration.java:1968)
com.progamma.is.IDPanel.FireValidateCell(IDPanel.java:5538)
com.progamma.is.PField.ValidateCell(PField.java:3031)
com.progamma.is.IDPanel.ReValidate(IDPanel.java:5693)
com.progamma.is.IDPanel.RD3EndRequest(IDPanel.java:13784)
com.progamma.is.WebEntryPoint.RD3EndRequest(WebEntryPoint.java:8604)
com.progamma.is.WebEntryPoint.IWRD3_UserEvent(WebEntryPoint.java:6501)
MyWebEntryPoint.HandleRequest(MyWebEntryPoint.java:3195)
I have attached a sample app to replicate the problem. Notes:
- In the example app, to test, open the Employee Admin Screen, and enter "john doe 10" (no quotes) in the Employee Search field and hit enter.
- Note, if you run Tomcat on your dev machine as a service, be sure the user account the Tomcat service runs under has sufficient rights to the folder where your project idp file is, since that is where the example access database is. If you don't run Tomcat as a service the compiled app when run should locate the example database.
- This is with InDe 24.0 r10, but I could reproduce it in 22.5 and 23.0 as well.
- It only occurs when compiling to Java. C# does not have this problem.
- Bootstrap Theme only has this problem.
- If you change the master query of a panel from using a DO class to a DB table, the error does not occur.
- I have gotten around it in production by wrapping all Panel.FindData commands in a try {} block.
- I will submit a malfunction report and reference this post.