The command launched is :
"javaw.exe" -Xmx256m -classpath "../tools/squirrel-sql/.squirrel-sql\squirrel-sql.jar";"../tools/squirrel-sql/.squirrel-sql\lib\antlr-2.7.5H3.jar";"../tools/squirrel-sql/.squirrel-sql\lib\cglib-2.1.3.jar";"../tools/squirrel-sql/.squirrel-sql\lib\commons-cli.jar";"../tools/squirrel-sql/.squirrel-sql\lib\commons-collections-2.1.1.jar";"../tools/squirrel-sql/.squirrel-sql\lib\commons-logging-1.0.4.jar";"../tools/squirrel-sql/.squirrel-sql\lib\dom4j-1.6.1.jar";"../tools/squirrel-sql/.squirrel-sql\lib\ejb3-persistence.jar";"../tools/squirrel-sql/.squirrel-sql\lib\forms.jar";"../tools/squirrel-sql/.squirrel-sql\lib\fw.jar";"../tools/squirrel-sql/.squirrel-sql\lib\hibernate-annotations-3.3.0.jar";"../tools/squirrel-sql/.squirrel-sql\lib\hibernate-commons-annotations-3.3.0.jar";"../tools/squirrel-sql/.squirrel-sql\lib\hibernate-entitymanager-3.3.1.jar";"../tools/squirrel-sql/.squirrel-sql\lib\hibernate3.2.4.sp1.jar";"../tools/squirrel-sql/.squirrel-sql\lib\jxl.jar";"../tools/squirrel-sql/.squirrel-sql\lib\log4j.jar";"../tools/squirrel-sql/.squirrel-sql\lib\nanoxml-2.1.jar";"../tools/squirrel-sql/.squirrel-sql\lib\openide-loaders.jar";"../tools/squirrel-sql/.squirrel-sql\lib\openide.jar";"../tools/squirrel-sql/.squirrel-sql\lib\org-netbeans-modules-editor-fold.jar";"../tools/squirrel-sql/.squirrel-sql\lib\org-netbeans-modules-editor-lib.jar";"../tools/squirrel-sql/.squirrel-sql\lib\org-netbeans-modules-editor-util.jar";"../tools/squirrel-sql/.squirrel-sql\lib\org-netbeans-modules-editor.jar";"../tools/squirrel-sql/.squirrel-sql\lib\squirrel-sql_fr.jar";"../tools/squirrel-sql/.squirrel-sql\lib\syntax.jar";"C:\Program files\Netezza\JDBC\nzjdbc.jar";../drivers/.;../drivers/classes12.zip;../drivers/crypto.zip;../drivers/db2java.zip;../drivers/jt400.zip;../drivers/mysql.zip;../drivers/snpsmq.zip;../drivers/sqlj.zip;../drivers/Common.jar;../drivers/crimson.jar;../drivers/db2jcc.jar;../drivers/db2jcc_javax.jar;../drivers/db2jcc_license_cisuz.jar;../drivers/db2jcc_license_cu.jar;../drivers/db2policy.jar;../drivers/db2qgjava.jar;../drivers/jconn2.jar;../drivers/nzjdbc.jar;../drivers/snpsldapo.jar;../drivers/snpsxmlo.jar;../drivers/tdgssconfig.jar;../drivers/tdgssjava.jar;../drivers/terajdbc4.jar;../drivers/xerces.jar net.sourceforge.squirrel_sql.client.Main --log-config-file "../tools/squirrel-sql/.squirrel-sql\log4j.properties" --squirrel-home "../tools/squirrel-sql/.squirrel-sql" --user-settings-dir "../tools/squirrel-sql/.squirrel-sql"
When adding a driver, selecting a .jar file and clicking on "List drivers", the JVM uses 99% of the CPU and never returns. In the log file I get many lines like :
28047 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.beans.BeanMapEmitter pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28047 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.beans.BulkBeanEmitter pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28062 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.core.ClassEmitter$2 pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28062 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.core.ClassEmitter$3 pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28062 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.core.ClassEmitter pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28062 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.core.ClassNameReader$1 pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28078 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.core.CodeEmitter pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28078 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.core.Constants pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28078 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.core.DebuggingClassWriter pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28094 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.core.RemappingCodeVisitor pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28125 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.proxy.MixinBeanEmitter pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28125 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.proxy.MixinEmitter pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28125 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.proxy.MixinEverythingEmitter pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28141 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.reflect.FastClassEmitter pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28141 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.AbstractClassFilterTransformer pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28141 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.AbstractClassTransformer pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28141 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.AbstractProcessTask pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28141 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.AbstractTransformTask pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28141 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.ClassEmitterTransformer pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28156 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.ClassFilterTransformer pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28156 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.ClassTransformer pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28156 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.ClassTransformerChain pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28156 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.ClassTransformerTee pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
28156 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.gui.db.DriverInternalFrame - Impossible de charger net.sf.cglib.transform.ClassVisitorTee pour vérifier s'il est assignable à C:\PROGRA~1\sunopsis\bin\..\tools\squirrel-sql\.squirrel-sql\lib\cglib-2.1.3.jar. Cause: java.sql.Driver
Thanks for you help.
/R One
r_one_guy@yahoo.fr
Logged In: YES
user_id=1287991
Originator: NO
It appears that you've add jars that are in the lib directory to the "Extra Classpath" tab. If so, that is not necessary as these jars are already in the classpath that SQuirreL uses on startup. The only file(s) you need to put into this tab are JDBC driver files that are not in the lib directory.
Rob
Logged In: NO
Hello Rob,
Sorry, but my Extra CLasspath is empty.
/R One
Logged In: YES
user_id=1287991
Originator: NO
Ok. SQuirreL uses a classloader to add new driver classes. This is usually done via the "Extra Classpath" tab. Adding the driver jar files to the startup classpath really only works if there is already an entry in the drivers window. So can you try specifying the driver jar file in the Extra Classpath tab, and then click list drivers?
Rob
I confirmed that the bug still remains but the "Extra Classpath" method does work. I thus was able to get the SQLite driver up and running.
Version 2.6.8
In the time between when this bug was filed and now I have also seen this issue as well. I believe that the UI thread is used to search through all of the jars in lib/ to find classes that implement java.sql.Driver. If that is the case, then it should be possible to move this work to an app thread and provide a progress dialog displaying updated status on which jar is being processed and allow the user to stop the operation as well. We agree that hanging the UI is not ideal here.
Rob
The problem is more serious than that. I left SquirrelSQL running for over an hour at 100% CPU without any results. I had to kill (-9) the application. Moving it to a thread would not fix this problem. Obviously, there is a run a way loop or the algorithm used has some serious performance issues.