[
https://issues.apache.org/jira/browse/DERBY-6503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13931734#comment-13931734
]
Knut Anders Hatlen commented on DERBY-6503:
-------------------------------------------
Thanks, Dag. The code that changes the permissions has some platform specific
quirks, and it's hard to say for sure if all OS/filesystem combinations are
handled, so only guaranteeing "best effort" and falling back to the old
behaviour if the permissions cannot be changed sounds like a reasonable
approach to me. At least in the case where the new behaviour is chosen by
default (that is, when the network server is started from the command line). In
the case where the user has explicitly requested the new behaviour by setting
the derby.storage.useDefaultFilePermissions property to false, one might argue
that a failure is more appropriate, so that the user can choose what the
correct course of action is (either fix the permissions or remove the property).
> Starting network server on a network drive fails with JDK 7 on Windows
> ----------------------------------------------------------------------
>
> Key: DERBY-6503
> URL: https://issues.apache.org/jira/browse/DERBY-6503
> Project: Derby
> Issue Type: Bug
> Components: Network Server, Services
> Affects Versions: 10.10.1.1
> Reporter: Knut Anders Hatlen
>
> Starting a network server on a network drive with JDK 7 on Windows fails. The
> reported exception is a ClassCastException, but the underlying exception is
> the following:
> java.nio.file.AccessDeniedException: \\host\path\derby.log
> at
> sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)
> at
> sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
> at
> sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
> at
> sun.nio.fs.WindowsAclFileAttributeView.setAcl(WindowsAclFileAttributeView.java:221)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> org.apache.derby.iapi.services.io.FileUtil.limitAccessToOwnerViaACLs(FileUtil.java:897)
> at
> org.apache.derby.iapi.services.io.FileUtil.limitAccessToOwner(FileUtil.java:747)
> at
> org.apache.derby.impl.services.stream.SingleStream.PBmakeFileHPW(SingleStream.java:205)
> at
> org.apache.derby.impl.services.stream.SingleStream.run(SingleStream.java:401)
> at
> org.apache.derby.impl.services.stream.SingleStream.run(SingleStream.java:72)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.derby.impl.services.stream.SingleStream.makeFileHPW(SingleStream.java:394)
> at
> org.apache.derby.impl.services.stream.SingleStream.createDefaultStream(SingleStream.java:356)
> at
> org.apache.derby.impl.services.stream.SingleStream.makeStream(SingleStream.java:132)
> at
> org.apache.derby.impl.services.stream.SingleStream.boot(SingleStream.java:92)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:1991)
> at
> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:334)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java:541)
> at
> org.apache.derby.impl.services.monitor.FileMonitor.startModule(FileMonitor.java:44)
> at
> org.apache.derby.iapi.services.monitor.Monitor.startSystemModule(Monitor.java:362)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.runWithState(BaseMonitor.java:343)
> at
> org.apache.derby.impl.services.monitor.FileMonitor.<init>(FileMonitor.java:58)
> at
> org.apache.derby.iapi.services.monitor.Monitor.startMonitor(Monitor.java:285)
> at org.apache.derby.iapi.jdbc.JDBCBoot.boot(JDBCBoot.java:67)
> at org.apache.derby.jdbc.EmbeddedDriver.boot(EmbeddedDriver.java:199)
> at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(EmbeddedDriver.java:95)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:188)
> at
> org.apache.derby.impl.drda.NetworkServerControlImpl.startNetworkServer(NetworkServerControlImpl.java:1032)
> at
> org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(NetworkServerControlImpl.java:732)
> at
> org.apache.derby.impl.drda.NetworkServerControlImpl.executeWork(NetworkServerControlImpl.java:2277)
> at
> org.apache.derby.drda.NetworkServerControl.main(NetworkServerControl.java:353)
--
This message was sent by Atlassian JIRA
(v6.2#6252)