Database security filter problem

User 5d01fe091c

13-03-2012 17:31:18

We have just added a filter to an entity in IJC to filter by a users project (i.e. row level security), but whenever we log in, we are getting the following error:


java.lang.ArrayIndexOutOfBoundsException: -1
 at com.im.df.impl.db.ResultSetImpl$2.compare(ResultSetImpl.java:307)
 at com.im.df.impl.db.ResultSetImpl$2.compare(ResultSetImpl.java:301)
 at java.util.Arrays.mergeSort(Unknown Source)
 at java.util.Arrays.mergeSort(Unknown Source)
 at java.util.Arrays.mergeSort(Unknown Source)
 at java.util.Arrays.mergeSort(Unknown Source)
 at java.util.Arrays.mergeSort(Unknown Source)
 at java.util.Arrays.mergeSort(Unknown Source)
 at java.util.Arrays.sort(Unknown Source)
 at java.util.Collections.sort(Unknown Source)
 at com.im.df.impl.db.ResultSetImpl.sortListByUsingOtherList(ResultSetImpl.java:301)
 at com.im.df.impl.db.ResultSetImpl.applyListInternal(ResultSetImpl.java:333)
 at com.im.df.impl.db.ResultSetImpl.<init>(ResultSetImpl.java:108)
 at com.im.df.impl.db.DBSchemaDataProviderImpl.getDefaultResultSet(DBSchemaDataProviderImpl.java:138)
 at com.im.ijc.core.nodes.ViewNode$3.getVertexState(ViewNode.java:88)
 at com.im.ijc.core.api.util.IJCCoreUtils.findVertexState(IJCCoreUtils.java:595)
 at com.im.ijc.core.api.util.IJCCoreUtils.findVertexState(IJCCoreUtils.java:577)
 at com.im.ijc.core.api.actions.AbstractIJCAction.findVS(AbstractIJCAction.java:300)
 at com.im.ijc.core.api.actions.AbstractIJCAction.enable(AbstractIJCAction.java:165)
 at com.im.ijc.core.lists.actions.CherryPickingAbstractAction.enable(CherryPickingAbstractAction.java:163)
 at org.openide.util.actions.NodeAction.isEnabled(NodeAction.java:209)
 at com.im.ijc.core.lists.actions.CherryPickingToggleAction$ActionPCL.propertyChange(CherryPickingToggleAction.java:108)
 at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
 at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
 at org.openide.util.SharedClassObject.firePropertyChange(SharedClassObject.java:471)
 at org.openide.util.actions.NodeAction.maybeFireEnabledChange(NodeAction.java:374)
 at org.openide.util.actions.NodeAction$NodesL$1.run(NodeAction.java:526)
 at org.openide.util.Mutex.doEvent(Mutex.java:1341)
 at org.openide.util.Mutex.readAccess(Mutex.java:348)
 at org.openide.util.actions.NodeAction$NodesL.forget(NodeAction.java:524)
 at org.openide.util.actions.NodeAction$NodesL.update(NodeAction.java:493)
 at org.openide.util.actions.NodeAction$NodesL.resultChanged(NodeAction.java:486)
 at org.openide.util.lookup.ProxyLookup$1Notify.run(ProxyLookup.java:176)
 at org.openide.util.lookup.ProxyLookup.setLookups(ProxyLookup.java:182)
 at org.openide.util.lookup.ProxyLookup.setLookups(ProxyLookup.java:122)
 at org.openide.explorer.DefaultEMLookup.updateLookups(DefaultEMLookup.java:134)
 at org.openide.explorer.DefaultEMLookup.propertyChange(DefaultEMLookup.java:166)
 at org.openide.util.WeakListenerImpl$PropertyChange.propertyChange(WeakListenerImpl.java:196)
 at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
 at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
 at org.openide.explorer.ExplorerManager$2.run(ExplorerManager.java:868)
 at org.openide.util.Mutex.doEvent(Mutex.java:1341)
 at org.openide.util.Mutex.readAccess(Mutex.java:348)
 at org.openide.explorer.ExplorerManager.fireInAWT(ExplorerManager.java:865)
 at org.openide.explorer.ExplorerManager$1AtomicSetSelectedNodes.fire(ExplorerManager.java:285)
 at org.openide.explorer.ExplorerManager.setSelectedNodes(ExplorerManager.java:296)
 at org.openide.explorer.ExplorerManager$1SetExploredContextAndSelection.run(ExplorerManager.java:390)
 at org.openide.util.Mutex.readAccess(Mutex.java:365)
 at org.openide.util.Mutex$1R.run(Mutex.java:1307)
 at org.openide.util.Mutex.doWrapperAccess(Mutex.java:1324)
 at org.openide.util.Mutex.readAccess(Mutex.java:354)
 at org.openide.explorer.ExplorerManager.setExploredContextAndSelection(ExplorerManager.java:411)
 at org.openide.explorer.view.BeanTreeView.selectionChanged(BeanTreeView.java:146)
 at org.openide.explorer.view.TreeView.callSelectionChanged(TreeView.java:824)
 at org.openide.explorer.view.TreeView$TreePropertyListener.run(TreeView.java:1440)
 at org.openide.util.Mutex$1Exec.run(Mutex.java:1244)
 at org.openide.nodes.Children$ProjectManagerDeadlockDetector.execute(Children.java:1835)
 at org.openide.util.Mutex.postRequest(Mutex.java:1250)
 at org.openide.util.Mutex.postRequest(Mutex.java:1213)
 at org.openide.util.Mutex.postReadRequest(Mutex.java:568)
 at org.openide.explorer.view.TreeView$TreePropertyListener.valueChanged(TreeView.java:1410)
 at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source)
 at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source)
 at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source)
 at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source)
 at javax.swing.JTree.setSelectionPath(Unknown Source)
 at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source)
 at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source)
 at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressedDND(Unknown Source)
 at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source)
 at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
 at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
 at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
 at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
 at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
 at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
 at java.awt.Component.processMouseEvent(Unknown Source)
 at javax.swing.JComponent.processMouseEvent(Unknown Source)
 at java.awt.Component.processEvent(Unknown Source)
 at java.awt.Container.processEvent(Unknown Source)
 at java.awt.Component.dispatchEventImpl(Unknown Source)
 at java.awt.Container.dispatchEventImpl(Unknown Source)
 at java.awt.Component.dispatchEvent(Unknown Source)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
 at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
 at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
 at java.awt.Container.dispatchEventImpl(Unknown Source)
 at java.awt.Window.dispatchEventImpl(Unknown Source)
 at java.awt.Component.dispatchEvent(Unknown Source)
 at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
 at java.awt.EventQueue.access$000(Unknown Source)
 at java.awt.EventQueue$1.run(Unknown Source)
 at java.awt.EventQueue$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
 at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
 at java.awt.EventQueue$2.run(Unknown Source)
[catch] at java.awt.EventQueue$2.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
 at java.awt.EventQueue.dispatchEvent(Unknown Source)
 at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:137)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.run(Unknown Source)


We are still retrieving the correct data, so our query is working ok, but the pop up would be a bit ugly for users!


We are using IJC 5.9.0 connected to an Oracle 10g database with cartridge installed (v 5.7)


Thanks


Ian

ChemAxon 2bdd02d1e5

14-03-2012 13:30:31

Now we know what is causing this error and we are going to fix it. However I could not reproduce the problem. Can you please share the SQL filter expression? Log file would be useful as well (you can send it to fzimandl(at)chemaxon.com). If I understand it happens just after connecting to schema, right? Are you opening only one IJC schema or more at the time?


Thanks,


Filip