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

Knut Anders Hatlen updated DERBY-6410:
--------------------------------------

    Attachment: d6410-backport.diff

The fix doesn't merge cleanly to 10.10, since 10.10 still uses reflection to 
access the java.nio.file API. The attached patch, d6410-backport.diff, is a 
manual backport of the fix. RestrictiveFilePermissionsTest runs cleanly on a 
subst drive with the patch. I'm running the full regression test suite now.

> ClassCastException when launching derby from windows subst drive
> ----------------------------------------------------------------
>
>                 Key: DERBY-6410
>                 URL: https://issues.apache.org/jira/browse/DERBY-6410
>             Project: Derby
>          Issue Type: Bug
>          Components: Services
>    Affects Versions: 10.9.1.0
>         Environment: Windows 7
>            Reporter: Markus Peröbner
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>             Fix For: 10.11.0.0
>
>         Attachments: d6410-1a.diff, d6410-backport.diff
>
>
> When launching derby bundled with glassfish4 on a substed drive derby fails 
> to startup and logs the following into the derby.log:
> {code}
> Fri Nov 08 10:30:34 CET 2013 : Sicherheitsmanager mit einfacher 
> Server-Sicherheitsrichtlinie installiert.
> java.lang.reflect.InvocationTargetException
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>       at java.lang.reflect.Method.invoke(Unknown Source)
>       at 
> com.sun.enterprise.admin.cli.optional.DerbyControl.invokeNetworkServerControl(DerbyControl.java:158)
>       at 
> com.sun.enterprise.admin.cli.optional.DerbyControl.main(DerbyControl.java:245)
> Caused by: java.lang.ExceptionInInitializerError
>       at java.lang.Class.forName0(Native Method)
>       at java.lang.Class.forName(Unknown Source)
>       at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.startNetworkServer(Unknown
>  Source)
>       at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(Unknown 
> Source)
>       at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.executeWork(Unknown 
> Source)
>       at org.apache.derby.drda.NetworkServerControl.main(Unknown Source)
>       ... 6 more
> Caused by: java.lang.ClassCastException: java.nio.file.FileSystemException 
> cannot be cast to java.lang.RuntimeException
>       at 
> org.apache.derby.iapi.services.io.FileUtil.limitAccessToOwnerViaACLs(Unknown 
> Source)
>       at 
> org.apache.derby.iapi.services.io.FileUtil.limitAccessToOwner(Unknown Source)
>       at 
> org.apache.derby.impl.services.stream.SingleStream.PBmakeFileHPW(Unknown 
> Source)
>       at org.apache.derby.impl.services.stream.SingleStream.run(Unknown 
> Source)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> org.apache.derby.impl.services.stream.SingleStream.makeFileHPW(Unknown Source)
>       at 
> org.apache.derby.impl.services.stream.SingleStream.createDefaultStream(Unknown
>  Source)
>       at 
> org.apache.derby.impl.services.stream.SingleStream.makeStream(Unknown Source)
>       at org.apache.derby.impl.services.stream.SingleStream.boot(Unknown 
> Source)
>       at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown 
> Source)
>       at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown 
> Source)
>       at 
> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
>       at 
> org.apache.derby.iapi.services.monitor.Monitor.startSystemModule(Unknown 
> Source)
>       at 
> org.apache.derby.impl.services.monitor.BaseMonitor.runWithState(Unknown 
> Source)
>       at org.apache.derby.impl.services.monitor.FileMonitor.<init>(Unknown 
> Source)
>       at org.apache.derby.iapi.services.monitor.Monitor.startMonitor(Unknown 
> Source)
>       at org.apache.derby.iapi.jdbc.JDBCBoot.boot(Unknown Source)
>       at org.apache.derby.jdbc.EmbeddedDriver.boot(Unknown Source)
>       at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(Unknown Source)
>       ... 12 more
> {code}
> Derby was started via the glassfish command:
> {code}
> $ asadmin start-database
> {code}
> The asadmin command only fails if it is launched from a substed windows 
> drive. The substed drive was created with the following command:
> {code}
> $ subst d: c:\d
> {code}
> When derby is started from drive 'C' everything is fine.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to