db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Pendleton (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DERBY-5570) dblook should not swallow ClassNotFoundException regardless of -verbose setting
Date Tue, 17 Jan 2012 14:59:39 GMT
dblook should not swallow ClassNotFoundException regardless of -verbose setting
-------------------------------------------------------------------------------

                 Key: DERBY-5570
                 URL: https://issues.apache.org/jira/browse/DERBY-5570
             Project: Derby
          Issue Type: Bug
          Components: Tools
    Affects Versions: 10.8.2.2
            Reporter: Bryan Pendleton
            Priority: Minor


When I (incorrectly) place only derbytools.jar in my classpath, dblook's behavior is very
confusing:

    $ java -cp derbytools.jar org.apache.derby.tools.dblook -d jdbc:derby://localhost:1527/mydb
    -- Timestamp: 2012-01-17 06:53:12.968
    -- Source database is: mydb
    -- Connection URL is: jdbc:derby://localhost:1527/mydb
    -- appendLogs: false

There is no hint of a problem; it just prints nothing and does nothing.

This is very confusing, and leads uses to mess about with the -d argument, etc.

When I add the -verbose flag, the real problem becomes clear:


    $ java -cp derbytools.jar org.apache.derby.tools.dblook -d jdbc:derby://localhost:1527/mydb
-verbose
    -- Timestamp: 2012-01-17 06:53:26.465
    -- Source database is: mydb
    -- Connection URL is: jdbc:derby://localhost:1527/mydb
    -- appendLogs: false

    java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:169)
	at org.apache.derby.tools.dblook.loadDriver(dblook.java:325)
	at org.apache.derby.tools.dblook.<init>(dblook.java:132)
	at org.apache.derby.tools.dblook.main(dblook.java:97)

I think that dblook should be more careful about the exceptions that it's quietly
swallowing, and in particular should not swallow a ClassNotFoundException.

That would make it much easier for users to figure out that the problem lies with
their classpath, not with their connection URL.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message