This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 132892 - NoGo for iReport in NetBeans 6.0.1/6.1
Summary: NoGo for iReport in NetBeans 6.0.1/6.1
Status: RESOLVED FIXED
Alias: None
Product: updatecenters
Classification: Unclassified
Component: Pluginportal (show other bugs)
Version: 6.x
Hardware: PC Linux
: P3 blocker (vote)
Assignee: gt78
URL: http://www.pekinsoft.net/bugs/JDBC-st...
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-15 15:07 UTC by pekinsoft
Modified: 2008-05-01 23:14 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description pekinsoft 2008-04-15 15:07:22 UTC
Steps to recreate error:

1.  Created test database desktop application that connects to MySQL server (remote).
2.  Compile and run database desktop application.
3.  Right-click on project name and choose New...Other.
4.  In new file dialog box, choose Report or Empty Report
5.  Create new connection and select same database as application uses.
6.  Click on Test button.
7.  Error as below shows up.

Message:
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Level:
    SEVERE
Stack Trace:
com.mysql.jdbc.Driver
    com.jaspersoft.ireport.designer.connection.DriverPool.registerDriver(DriverPool.java:156)
    com.jaspersoft.ireport.designer.connection.JDBCConnection.getConnection(JDBCConnection.java:98)
    com.jaspersoft.ireport.designer.connection.JDBCConnection.test(JDBCConnection.java:420)
    com.jaspersoft.ireport.designer.connection.gui.ConnectionDialog.jButtonTestActionPerformed(ConnectionDialog.java:316)
    com.jaspersoft.ireport.designer.connection.gui.ConnectionDialog.access$300(ConnectionDialog.java:25)
    com.jaspersoft.ireport.designer.connection.gui.ConnectionDialog$4.actionPerformed(ConnectionDialog.java:271)
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    java.awt.Component.processMouseEvent(Component.java:6041)
    javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    java.awt.Component.processEvent(Component.java:5806)
    java.awt.Container.processEvent(Container.java:2058)
    java.awt.Component.dispatchEventImpl(Component.java:4413)
    java.awt.Container.dispatchEventImpl(Container.java:2116)
    java.awt.Component.dispatchEvent(Component.java:4243)
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
    java.awt.Container.dispatchEventImpl(Container.java:2102)
    java.awt.Window.dispatchEventImpl(Window.java:2440)
    java.awt.Component.dispatchEvent(Component.java:4243)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
    java.awt.Dialog$1.run(Dialog.java:1045)
    java.awt.Dialog$3.run(Dialog.java:1097)
    java.security.AccessController.doPrivileged(Native Method)
    java.awt.Dialog.show(Dialog.java:1095)
    java.awt.Component.show(Component.java:1422)
    java.awt.Component.setVisible(Component.java:1375)
    java.awt.Window.setVisible(Window.java:806)
    java.awt.Dialog.setVisible(Dialog.java:985)
   
com.jaspersoft.ireport.designer.wizards.ConnectionSelectionVisualPanel.jButton1ActionPerformed(ConnectionSelectionVisualPanel.java:284)
   
com.jaspersoft.ireport.designer.wizards.ConnectionSelectionVisualPanel.access$400(ConnectionSelectionVisualPanel.java:24)
   
com.jaspersoft.ireport.designer.wizards.ConnectionSelectionVisualPanel$6.actionPerformed(ConnectionSelectionVisualPanel.java:196)
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    java.awt.Component.processMouseEvent(Component.java:6041)
    javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    java.awt.Component.processEvent(Component.java:5806)
    java.awt.Container.processEvent(Container.java:2058)
    java.awt.Component.dispatchEventImpl(Component.java:4413)
    java.awt.Container.dispatchEventImpl(Container.java:2116)
    java.awt.Component.dispatchEvent(Component.java:4243)
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
    java.awt.Container.dispatchEventImpl(Container.java:2102)
    java.awt.Window.dispatchEventImpl(Window.java:2440)
    java.awt.Component.dispatchEvent(Component.java:4243)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
    java.awt.Dialog$1.run(Dialog.java:1045)
    java.awt.Dialog$3.run(Dialog.java:1097)
    java.security.AccessController.doPrivileged(Native Method)
    java.awt.Dialog.show(Dialog.java:1095)
    org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:834)
    org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:868)
    org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:856)
    org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:104)
    org.openide.util.Mutex.doEventAccess(Mutex.java:1223)
    org.openide.util.Mutex.readAccess(Mutex.java:242)
    org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:841)
    java.awt.Component.show(Component.java:1422)
    java.awt.Component.setVisible(Component.java:1375)
    java.awt.Window.setVisible(Window.java:806)
    java.awt.Dialog.setVisible(Dialog.java:985)
    org.openide.loaders.TemplateWizard.instantiateImpl(TemplateWizard.java:502)
    org.openide.loaders.TemplateWizard.instantiate(TemplateWizard.java:369)
    org.netbeans.modules.project.ui.actions.NewFile.doPerform(NewFile.java:147)
    org.netbeans.modules.project.ui.actions.NewFile.access$200(NewFile.java:80)
    org.netbeans.modules.project.ui.actions.NewFile$PopupListener.actionPerformed(NewFile.java:340)
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    javax.swing.AbstractButton.doClick(AbstractButton.java:357)
    javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1220)
    javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1261)
    java.awt.Component.processMouseEvent(Component.java:6041)
    javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    java.awt.Component.processEvent(Component.java:5806)
    java.awt.Container.processEvent(Container.java:2058)
    java.awt.Component.dispatchEventImpl(Component.java:4413)
    java.awt.Container.dispatchEventImpl(Container.java:2116)
    java.awt.Component.dispatchEvent(Component.java:4243)
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
    java.awt.Container.dispatchEventImpl(Container.java:2102)
    java.awt.Window.dispatchEventImpl(Window.java:2440)
    java.awt.Component.dispatchEvent(Component.java:4243)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Comment 1 Jiri Kovalsky 2008-04-15 15:33:30 UTC
Sean, are you sure you didn't want to set version to 6.1? You gave Go for 6.0 but said NoGo for 6.1. Please clarify. Thanks!
Comment 2 Jiri Kovalsky 2008-04-17 12:20:41 UTC
According to Sean's latest e-mail this problem occurs in both NetBeans 6.0.1/6.1. Could you please Giulio fix this to
bring back iReport to the Plugin Portal Update Center? Thanks!
Comment 3 David Botterill 2008-04-29 15:51:06 UTC
There is a workaround for this.  Generally this plugin has classpath issues that make the usage difficult at times.  I'm
hoping this can be addressed in the future.  Perhaps until this is fixed, this could be documented at
http://www.jasperforge.org/jaspersoft/opensource/business_intelligence/ireport/page.php?name=ireport-nb-getting-started.

To use any other JDBC driver besides JavaDB, you must go to the NetBeans options, select 'iReport->classpath' and add
the JDBC driver to the classpath.  Now the plugin will be able to find the class for the driver.
Comment 4 pekinsoft 2008-04-29 19:55:54 UTC
OK, so now a developer has an application connected to a data source (MySQL, PostGre, etc.) and the connections are all
made and working fine.  Why is it that new connections need to be made to create reports on the same data.  The designer
of iReport should be setting it up to pull the connections from the application in which it is being used.  This would
make using the plug-in a lot easier and make more sense.

For example...A developer is designing an inventory tracking system.  The data is being stored on a site-wide MySQL
server, in a database name inv_maint, on machine sql.somecompany.com.  User John.Dough logs into the application and is
then connected to inv_maint on sql.somecompany.com and doing his job.  When John.Dough goes to print a report from the
database, the developer of the application had to either store John.Dough's password (creating a security hole) or
prompt John.Dough for his password again (creating an annoyance) simply to generate the report.

To my way of thinking, this creates more problems than it solves and therefore, is not a quality plug-in.  Also, as I
said before, since I've already got the driver loaded, it shouldn't need to be loaded again, as this then uses more
system resources, causing a slow-down in the application, which lowers the overall quality of that application.

Since developers get new jobs based almost entirely (or */entirely/* on past jobs), this kind of a situation could
reduce a developer's reputation, thereby costing that developer potential jobs.  With all of this in mind, I don't think
that I am being unfair in my No-Go vote for the iReport plug-in, as the Verification Team is in the process of building
a reputation with the community.  Because we are trying to build a reputation in the community, I feel that we need to
be somewhat critical of the plug-ins being offered via the Plug-in Portal.

Of course, these are just my opinions, but this is also my justification for my No-Go vote.
Comment 5 gt78 2008-05-01 23:14:19 UTC
Now iReport adds to his own classpath the jars used by the JDBC drivers defined by the db manager. 

The problem is fixed in the repository. Publishing the new plugin 0.9.1.1


Giulio