db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4669) ClassLoaderBootTest fails if derbyclient.jar comes before derby.jar on the classpath
Date Thu, 20 May 2010 12:15:54 GMT

     [ https://issues.apache.org/jira/browse/DERBY-4669?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Knut Anders Hatlen updated DERBY-4669:
--------------------------------------

    Attachment: client-imports.diff

The attached patch (client-imports.diff) makes four client classes use SanityManager from
shared.common instead of iapi.services, just by changing some import statements. This change
removes the org.apache.derby.iapi.services.sanity package from the sane version of derbyclient.jar.

This is however only a partial fix. ClassLoaderBootTest still fails, but now with a slightly
different error message:

Caused by: java.lang.SecurityException: sealing violation: package org.apache.derby.shared.common.sanity
is sealed

It looks like classes in the common.sanity package are included in both derbyclient.jar and
derby.jar. I think this is because

1) Some of the engine classes use SanityManager from common instead of iapi

2) SanityManager and AssertFailure in iapi extend classes in common

> ClassLoaderBootTest fails if derbyclient.jar comes before derby.jar on the classpath
> ------------------------------------------------------------------------------------
>
>                 Key: DERBY-4669
>                 URL: https://issues.apache.org/jira/browse/DERBY-4669
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.7.0.0
>            Reporter: Kristian Waagan
>            Priority: Minor
>         Attachments: client-imports.diff
>
>
> If derbyclient.jar comes before derby.jar on the classpath, and the build is sane, the
test fails.
> java -cp derbyclient.jar:derby.jar:derbyTesting.jar:junit.jar junit.textui.TestRunner
org.apache.derbyTesting.functionTests.tests.store.ClassLoaderBootTest
> ...
> 1) testBootingAnAlreadyBootedDatabase(org.apache.derbyTesting.functionTests.tests.store.ClassLoaderBootTest)java.lang.ExceptionInInitializerError
>         at org.apache.derby.jdbc.EmbeddedDataSource.findDriver(EmbeddedDataSource.java:500)
>         at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSource.java:479)
>         at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSource.java:423)
>         at org.apache.derbyTesting.functionTests.tests.store.ClassLoaderBootTest.testBootingAnAlreadyBootedDatabase(ClassLoaderBootTest.java:178)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:109)
>         at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>         at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>         at junit.extensions.TestSetup.run(TestSetup.java:25)
>         at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
>         at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>         at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>         at junit.extensions.TestSetup.run(TestSetup.java:25)
>         at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>         at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>         at junit.extensions.TestSetup.run(TestSetup.java:25)
> Caused by: java.lang.SecurityException: sealing violation: package org.apache.derby.iapi.services.sanity
is sealed
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:234)
>         at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>         at org.apache.derbyTesting.functionTests.tests.store.ClassLoaderBootTest$DerbyURLClassLoader.loadClass(ClassLoaderBootTest.java:293)
>         at org.apache.derbyTesting.functionTests.tests.store.ClassLoaderBootTest$DerbyURLClassLoader.loadClass(ClassLoaderBootTest.java:303)
>         at org.apache.derby.iapi.services.monitor.Monitor.startSystemModule(Monitor.java:369)
>         at org.apache.derby.impl.services.monitor.BaseMonitor.runWithState(BaseMonitor.java:386)
>         at org.apache.derby.impl.services.monitor.FileMonitor.<init>(FileMonitor.java:60)
>         at org.apache.derby.iapi.services.monitor.Monitor.startMonitor(Monitor.java:289)
>         at org.apache.derby.iapi.jdbc.JDBCBoot.boot(JDBCBoot.java:69)
>         at org.apache.derby.jdbc.EmbeddedDriver.boot(EmbeddedDriver.java:199)
>         at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(EmbeddedDriver.java:96)
>         ... 33 more
> 2) testBootingDatabaseShutdownByAnotherCLR(org.apache.derbyTesting.functionTests.tests.store.ClassLoaderBootTest)java.lang.ExceptionInInitializerError
>         at org.apache.derby.jdbc.EmbeddedDataSource.findDriver(EmbeddedDataSource.java:500)
>         at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSource.java:479)
>         at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSource.java:423)
>         at org.apache.derbyTesting.functionTests.tests.store.ClassLoaderBootTest.testBootingDatabaseShutdownByAnotherCLR(ClassLoaderBootTest.java:208)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:109)
>         at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>         at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>         at junit.extensions.TestSetup.run(TestSetup.java:25)
>         at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
>         at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>         at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>         at junit.extensions.TestSetup.run(TestSetup.java:25)
>         at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>         at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>         at junit.extensions.TestSetup.run(TestSetup.java:25)
> Caused by: java.lang.SecurityException: sealing violation: package org.apache.derby.iapi.services.sanity
is sealed
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:234)
>         at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>         at org.apache.derbyTesting.functionTests.tests.store.ClassLoaderBootTest$DerbyURLClassLoader.loadClass(ClassLoaderBootTest.java:293)
>         at org.apache.derbyTesting.functionTests.tests.store.ClassLoaderBootTest$DerbyURLClassLoader.loadClass(ClassLoaderBootTest.java:303)
>         at org.apache.derby.iapi.services.monitor.Monitor.startSystemModule(Monitor.java:369)
>         at org.apache.derby.impl.services.monitor.BaseMonitor.runWithState(BaseMonitor.java:386)
>         at org.apache.derby.impl.services.monitor.FileMonitor.<init>(FileMonitor.java:60)
>         at org.apache.derby.iapi.services.monitor.Monitor.startMonitor(Monitor.java:289)
>         at org.apache.derby.iapi.jdbc.JDBCBoot.boot(JDBCBoot.java:69)
>         at org.apache.derby.jdbc.EmbeddedDriver.boot(EmbeddedDriver.java:199)
>         at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(EmbeddedDriver.java:96)
>         ... 33 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message