Version: 18.0.1
Build #: 53401
Build Date: 2017-Feb-27 03:46:10 PM
Operating Environment: Mac OS X (10.12.3, x86_64) / UTF-8 / en / US / Oracle Corporation 1.8.0_102-b14
Memory: Max=5,637,144,576; Total=1,518,338,048; Free=1,153,096,344; CPUs=8
ArrayIndexOutOfBoundsException on saving Schema Compare Results
To reproduce
1. Perform a Schema Compare between two DB. For e.g SQL Server
2. Once the Schema Compare Results come up, Group by > No Groups
3. In the Filter, enter a name so that all the items are hidden. For e.g. enter tariq
4. Click on the Export to HTML button
5. Enter a Directory name
6. Check Open in browser after export
You get the below exception "Unexpected Error"
java.lang.ArrayIndexOutOfBoundsException: -1
at com.aquafold.datastudio.tools.diff.Tꁳꈊ⣋ꁫdefault.ks(Unknown Source)
at com.aquafold.datastudio.tools.diff.E⢘ꃐ1ꇸthrow.a(Unknown Source)
at com.aquafold.datastudio.tools.diff.E⢘ꃐ1ꇸthrow.a(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.zꉩ⢕ᚹ⣰6throws.m(Unknown Source)
at com.aquafold.datastudio.tools.diff.E⢘ꃐ1ꇸthrow.cek(Unknown Source)
at com.aquafold.datastudio.tools.diff.E⢘ꃐ1ꇸthrow$9.action(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.z͈ꉡꎯ⢒finallycase.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at com.jidesoft.plaf.basic.BasicJideButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:866)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:381)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
svn #53406
This was caused by returning a -1 for a row index. When the filter has visibly eliminated all rows from the panel, the row index returned is a -1 from getActualRowAt(). Just need to not count those rows when building the html.
Hi QA Team, Please test html reporting for Schema Compare for the correct rows displayed with and without filtering. Thanks, Tom