Product: Aqua Data Studio
Version: 19.0.0-dev-5
Build #: 53676
Build Date: 2017-Mar-23 09:10:38 PM
Operating Environment: Windows 7 (6.1, amd64) / Cp1252 / en / US / Oracle Corporation 1.8.0_121-b13
Memory: Max=704,643,072; Total=469,762,048; Free=335,543,392; CPUs=8
Steps to reproduce the issue:
Scenario 1:
-
Launch ADS.
-
Connect to MongoDB 3.4 and go to Database node.
-
Right-click and select Create Database.
-
Go to Collation tab and click on the drop-down icon of Storage Size option.
-
In the value box enter any negative number. Say, '-8'.
-
Click OK, and go to Preview SQL tab.
Result: No SQL is generated as the size defined is invalid.
Expected Result: On entering invalid size, it should auto correct to last saved valid value with a validation message.
Scenario 2:
-
Launch ADS.
-
Connect to MongoDB 3.4 and go to Database node.
-
Right-click and select Create Database.
-
Go to Collation tab and click on the drop-down icon of Storage Size option.
-
In the value box enter some special characters. Say, '9/4'.
-
Click OK.
Result: NPE is displayed in View Log.
Expected Result: On entering invalid size, it should auto correct to last saved valid value with a validation message.
Please see attached image.
Observation:
This issue is seen in v15, v16, v17 and v18 as well.
This issue is related to FileSizeOption pop-up.
Stack Trace:
java.lang.NullPointerException
at \\.\\.\\हिñçêČάй語简�?한\\.fꅴꋨꎓꐢsynchronizedfor.getSelectedObject(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.fꅴꋨꎓꐢsynchronizedfor.save(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.fꅴꋨꎓꐢsynchronizedfor$2.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(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$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
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(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)