[ https://issues.apache.org/jira/browse/DERBY-7122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17395249#comment-17395249 ]
Richard N. Hillegas commented on DERBY-7122: -------------------------------------------- This issue was raised in a Derby user email thread titled "Self-study tutorial and permissions". The full exception trace is: {noformat} ERROR XBM01: Startup failed due to an exception. See next exception for details. at org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:300) at org.apache.derby.iapi.services.monitor.Monitor.exceptionStartingModule(Monitor.java:743) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1857) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1022) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4067) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4061) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2654) at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:435) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:660) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:656) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.iapi.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:654) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:300) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:967) at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java:125) at org.apache.derby.impl.drda.Database.makeConnection(Database.java:253) at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1476) at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1426) at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3380) at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1210) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:1010) at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:300) Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:897) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322) at java.base/java.lang.System.getenv(System.java:999) at java.base/java.util.Properties.getFormattedTimestamp(Properties.java:1590) at java.base/java.util.Properties.store0(Properties.java:932) at java.base/java.util.Properties.store(Properties.java:921) at org.apache.derby.impl.services.monitor.StorageFactoryService$5.run(StorageFactoryService.java:369) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.saveServiceProperties(StorageFactoryService.java:347) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1840) ... 22 more ============= begin nested exception, level (1) =========== java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:897) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322) at java.base/java.lang.System.getenv(System.java:999) at java.base/java.util.Properties.getFormattedTimestamp(Properties.java:1590) at java.base/java.util.Properties.store0(Properties.java:932) at java.base/java.util.Properties.store(Properties.java:921) at org.apache.derby.impl.services.monitor.StorageFactoryService$5.run(StorageFactoryService.java:369) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.saveServiceProperties(StorageFactoryService.java:347) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1840) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1022) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4067) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4061) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2654) at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:435) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:660) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:656) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.iapi.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:654) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:300) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:967) at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java:125) at org.apache.derby.impl.drda.Database.makeConnection(Database.java:253) at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1476) at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1426) at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3380) at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1210) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:1010) at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:300) ============= end nested exception, level (1) =========== Cleanup action completed Fri Aug 06 10:14:54 AEST 2021 Thread[DRDAConnThread_2,5,main] ERROR XJ001: Java exception: 'access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH"): java.security.AccessControlException'. java.sql.SQLException: Java exception: 'access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH"): java.security.AccessControlException'. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:115) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:141) at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:252) at org.apache.derby.impl.jdbc.Util.javaException(Util.java:274) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:444) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:439) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:360) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2405) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2662) at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:435) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:660) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:656) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.iapi.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:654) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:300) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:967) at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java:125) at org.apache.derby.impl.drda.Database.makeConnection(Database.java:253) at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1476) at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1426) at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3380) at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1210) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:1010) at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:300) Caused by: ERROR XJ001: Java exception: 'access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH"): java.security.AccessControlException'. at org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:300) at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:170) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:75) ... 23 more Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:897) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322) at java.base/java.lang.System.getenv(System.java:999) at java.base/java.util.Properties.getFormattedTimestamp(Properties.java:1590) at java.base/java.util.Properties.store0(Properties.java:932) at java.base/java.util.Properties.store(Properties.java:921) at org.apache.derby.impl.services.monitor.StorageFactoryService$5.run(StorageFactoryService.java:369) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.saveServiceProperties(StorageFactoryService.java:347) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1840) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1022) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4067) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4061) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2654) ... 15 more ============= begin nested exception, level (1) =========== ERROR XJ001: Java exception: 'access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH"): java.security.AccessControlException'. at org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:300) at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:170) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:75) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:141) at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:252) at org.apache.derby.impl.jdbc.Util.javaException(Util.java:274) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:444) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:439) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:360) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2405) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2662) at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:435) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:660) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:656) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.iapi.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:654) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:300) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:967) at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java:125) at org.apache.derby.impl.drda.Database.makeConnection(Database.java:253) at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1476) at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1426) at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3380) at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1210) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:1010) at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:300) Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:897) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322) at java.base/java.lang.System.getenv(System.java:999) at java.base/java.util.Properties.getFormattedTimestamp(Properties.java:1590) at java.base/java.util.Properties.store0(Properties.java:932) at java.base/java.util.Properties.store(Properties.java:921) at org.apache.derby.impl.services.monitor.StorageFactoryService$5.run(StorageFactoryService.java:369) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.saveServiceProperties(StorageFactoryService.java:347) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1840) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1022) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4067) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4061) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2654) ... 15 more ============= end nested exception, level (1) =========== ============= begin nested exception, level (2) =========== java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:897) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322) at java.base/java.lang.System.getenv(System.java:999) at java.base/java.util.Properties.getFormattedTimestamp(Properties.java:1590) at java.base/java.util.Properties.store0(Properties.java:932) at java.base/java.util.Properties.store(Properties.java:921) at org.apache.derby.impl.services.monitor.StorageFactoryService$5.run(StorageFactoryService.java:369) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.saveServiceProperties(StorageFactoryService.java:347) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1840) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1022) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4067) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4061) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2654) at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:435) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:660) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:656) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.iapi.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:654) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:300) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:967) at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java:125) at org.apache.derby.impl.drda.Database.makeConnection(Database.java:253) at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1476) at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1426) at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3380) at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1210) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:1010) at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:300) ============= end nested exception, level (2) =========== Fri Aug 06 10:14:54 AEST 2021 Thread[DRDAConnThread_2,5,main] Cleanup action starting java.sql.SQLException: Failed to create database 'seconddb', see the next exception for details. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:115) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:141) at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:252) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2661) at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:435) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:660) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:656) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.iapi.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:654) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:300) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:967) at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java:125) at org.apache.derby.impl.drda.Database.makeConnection(Database.java:253) at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1476) at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1426) at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3380) at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1210) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:1010) at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:300) Caused by: ERROR XJ041: Failed to create database 'seconddb', see the next exception for details. at org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:300) at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:170) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:75) ... 18 more Caused by: ERROR XBM01: Startup failed due to an exception. See next exception for details. at org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:300) at org.apache.derby.iapi.services.monitor.Monitor.exceptionStartingModule(Monitor.java:743) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1857) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1022) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4067) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4061) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2654) ... 15 more Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:897) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322) at java.base/java.lang.System.getenv(System.java:999) at java.base/java.util.Properties.getFormattedTimestamp(Properties.java:1590) at java.base/java.util.Properties.store0(Properties.java:932) at java.base/java.util.Properties.store(Properties.java:921) at org.apache.derby.impl.services.monitor.StorageFactoryService$5.run(StorageFactoryService.java:369) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.saveServiceProperties(StorageFactoryService.java:347) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1840) ... 22 more ============= begin nested exception, level (1) =========== java.sql.SQLException: Startup failed due to an exception. See next exception for details. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:115) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:141) at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:252) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:438) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:360) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2405) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2662) at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:435) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:660) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:656) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.iapi.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:654) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:300) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:967) at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java:125) at org.apache.derby.impl.drda.Database.makeConnection(Database.java:253) at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1476) at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1426) at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3380) at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1210) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:1010) at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:300) Caused by: ERROR XBM01: Startup failed due to an exception. See next exception for details. at org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:300) at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:170) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:75) ... 21 more Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:897) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322) at java.base/java.lang.System.getenv(System.java:999) at java.base/java.util.Properties.getFormattedTimestamp(Properties.java:1590) at java.base/java.util.Properties.store0(Properties.java:932) at java.base/java.util.Properties.store(Properties.java:921) at org.apache.derby.impl.services.monitor.StorageFactoryService$5.run(StorageFactoryService.java:369) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.saveServiceProperties(StorageFactoryService.java:347) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1840) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1022) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4067) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4061) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2654) ... 15 more ============= end nested exception, level (1) =========== ============= begin nested exception, level (2) =========== java.sql.SQLException: Java exception: 'access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH"): java.security.AccessControlException'. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:115) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:141) at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:252) at org.apache.derby.impl.jdbc.Util.javaException(Util.java:274) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:444) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:439) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:360) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2405) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2662) at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:435) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:660) at org.apache.derby.iapi.jdbc.InternalDriver$1.run(InternalDriver.java:656) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.iapi.jdbc.InternalDriver.getNewEmbedConnection(InternalDriver.java:654) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:300) at org.apache.derby.iapi.jdbc.InternalDriver.connect(InternalDriver.java:967) at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java:125) at org.apache.derby.impl.drda.Database.makeConnection(Database.java:253) at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(DRDAConnThread.java:1476) at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(DRDAConnThread.java:1426) at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(DRDAConnThread.java:3380) at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(DRDAConnThread.java:1210) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:1010) at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:300) Caused by: ERROR XJ001: Java exception: 'access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH"): java.security.AccessControlException'. at org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:300) at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:170) at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:75) ... 23 more Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:897) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322) at java.base/java.lang.System.getenv(System.java:999) at java.base/java.util.Properties.getFormattedTimestamp(Properties.java:1590) at java.base/java.util.Properties.store0(Properties.java:932) at java.base/java.util.Properties.store(Properties.java:921) at org.apache.derby.impl.services.monitor.StorageFactoryService$5.run(StorageFactoryService.java:369) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.saveServiceProperties(StorageFactoryService.java:347) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1840) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1022) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4067) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4061) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2654) ... 15 more ============= end nested exception, level (2) =========== {noformat} I cannot reproduce this issue using Derby 10.15.2.0 and Open JDK 11 (build 11+28) on Mac OSX 11.2.3. This appears to be platform-specific behavior in Open JDK from version 11 onward. From the trailing stack trace stanza... {noformat} Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:897) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322) at java.base/java.lang.System.getenv(System.java:999) at java.base/java.util.Properties.getFormattedTimestamp(Properties.java:1590) at java.base/java.util.Properties.store0(Properties.java:932) at java.base/java.util.Properties.store(Properties.java:921) at org.apache.derby.impl.services.monitor.StorageFactoryService$5.run(StorageFactoryService.java:369) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.saveServiceProperties(StorageFactoryService.java:347) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1840) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1022) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(FileMonitor.java:48) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:650) at org.apache.derby.impl.jdbc.EmbedConnection$5.run(EmbedConnection.java:4067) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.jdbc.EmbedConnection.createPersistentService(EmbedConnection.java:4061) at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:2654) ... 15 more {noformat} ...an extra permission (new java.lang.RuntimePermission("getenv.SOURCE_DATE_EPOCH")) is needed on Ubuntu in order to persist the database creation properties (service.properties). SOURCE_DATE_EPOCH is a Linux environment variable: https://gcc.gnu.org/onlinedocs/cpp/Environment-Variables.html This issue and a workaround are discussed at https://chalmers.instructure.com/courses/8915/pages/f-dot-a-q-common-issues Two interesting questions are: Q1) Why does the JVM need to read the value of SOURCE_DATE_EPOCH when storing service.properties? Q2) What attack is Open JDK trying to parry by limiting the visibility of SOURCE_DATE_EPOCH? > java.security.AccessControlException when creating a DB remotely: Permission > getenv.SOURCE_DATE_EPOCH > ----------------------------------------------------------------------------------------------------- > > Key: DERBY-7122 > URL: https://issues.apache.org/jira/browse/DERBY-7122 > Project: Derby > Issue Type: Bug > Reporter: Art O Cathain > Priority: Major > Attachments: derby.log > > > Following the tutorial at > [https://db.apache.org/derby/docs/10.15/getstart/twwdactivity2.html] I get an > AccessControlException in the server log when trying to create a DB (via > CONNECT 'jdbc:derby://localhost:1527/seconddb;create=true') > This is with derby 10.15.2.0 but the same is observed in 10.14 > OS version: Ubuntu 21.04 > Java version: > openjdk version "11.0.11" 2021-04-20 > OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2) > OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2, mixed mode) > but OpenJDK 16 and 17(early access) have the same problem -- This message was sent by Atlassian Jira (v8.3.4#803005)