Bug 1053491

Summary: Installer throws NPE when incorrect JAR with JDBC is selected
Product: [JBoss] JBoss Fuse Service Works 6 Reporter: Jiri Pechanec <jpechane>
Component: InstallerAssignee: Miles Tjandrawidjaja <mtjandra>
Status: CLOSED CURRENTRELEASE QA Contact: Len DiMaggio <ldimaggi>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.0.0 GACC: anmahaja, atangrin, dlesage, mtjandra, soa-p-jira, thauser
Target Milestone: CR2   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Release Note
Doc Text:
In Red Hat JBoss Fuse Service Works 6.0, the installer throws an exception when you select the incorrect JAR file (that does not contain chosen JDBC driver). To avoid this, please ensure that you select the correct JAR.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jiri Pechanec 2014-01-15 10:41:27 UTC
When a wrong JAR file is selected (one that does not contain chosen JDBC driver) then the install throws NPE and hangs - either when doing Test JDBC Connection or when continuing with next steps.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:190)
	at com.redhat.installer.util.JDBCConnectionUtils.findDriverClass(JDBCConnectionUtils.java:156)
	at com.redhat.installer.panels.JBossJDBCDriverSetupPanel$JDBCPanel.verifyDriver(JBossJDBCDriverSetupPanel.java:506)
	at com.redhat.installer.panels.JBossJDBCDriverSetupPanelFSW$JDBCPanelFSW.testJDBCConnection(JBossJDBCDriverSetupPanelFSW.java:190)
	at com.redhat.installer.panels.JBossJDBCDriverSetupPanelFSW$JDBCPanelFSW$1.actionPerformed(JBossJDBCDriverSetupPanelFSW.java:119)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	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 java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:694)
	at java.awt.EventQueue$3.run(EventQueue.java:692)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:708)
	at java.awt.EventQueue$4.run(EventQueue.java:706)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Exception in thread "Thread-10" java.lang.NullPointerException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:190)
	at com.redhat.installer.util.JDBCConnectionUtils.findDriverClass(JDBCConnectionUtils.java:156)
	at com.redhat.installer.panels.JBossJDBCDriverSetupPanel$JDBCPanel.verifyDriver(JBossJDBCDriverSetupPanel.java:506)
	at com.redhat.installer.panels.JBossJDBCDriverSetupPanel$JDBCPanel.validated(JBossJDBCDriverSetupPanel.java:438)
	at com.redhat.installer.panels.JBossJDBCDriverSetupPanelFSW$JDBCPanelFSW.validated(JBossJDBCDriverSetupPanelFSW.java:162)
	at com.redhat.installer.panels.JBossJDBCDriverSetupPanel.isValidated(JBossJDBCDriverSetupPanel.java:85)
	at com.izforge.izpack.installer.IzPanel.panelValidated(IzPanel.java:434)
	at com.izforge.izpack.installer.InstallerFrame.navigateNext(InstallerFrame.java:1664)
	at com.izforge.izpack.installer.InstallerFrame.navigateNext(InstallerFrame.java:1649)
	at com.izforge.izpack.installer.InstallerFrame$NavigationHandler.navigate(InstallerFrame.java:1812)
	at com.izforge.izpack.installer.InstallerFrame$NavigationHandler.access$100(InstallerFrame.java:1779)
	at com.izforge.izpack.installer.InstallerFrame$NavigationHandler$1.run(InstallerFrame.java:1796)
	at java.lang.Thread.run(Thread.java:724)

Comment 2 Miles Tjandrawidjaja 2014-01-15 15:32:03 UTC
Installer should no longer throw NPE at JDBC Panel.

http://git.app.eng.bos.redhat.com/installer-commons.git/commit/?h=6.1.1.ip&id=bad12e73398e15a76ffd9a1b122bb0451f428cdc

Comment 3 Jiri Pechanec 2014-01-24 10:06:07 UTC
Verified in CR2