Details
Description
I tried running Derby on Oracle Java ME Embedded Client 1.0, and booting the engine failed:
Caused by: java.lang.NoClassDefFoundError: java.nio.channels.OverlappingFileLockException
at org.apache.derby.impl.io.DirStorageFactory4.newPersistentFile(DirStorageFactory4.java:57)
at org.apache.derby.impl.io.DirStorageFactory.newStorageFile(DirStorageFactory.java:58)
at org.apache.derby.impl.services.monitor.StorageFactoryService$1.run(StorageFactoryService.java:96)
at java.security.AccessController.doPrivileged(Compiled Method)(AccessController.java:351)
at java.security.AccessController.doPrivileged(AccessController.java:320)
at org.apache.derby.impl.services.monitor.StorageFactoryService.<init>(StorageFactoryService.java:86)
at org.apache.derby.impl.services.monitor.BaseMonitor.getPersistentService(BaseMonitor.java:1630)
at org.apache.derby.impl.services.monitor.BaseMonitor.access$100(BaseMonitor.java:99)
at org.apache.derby.impl.services.monitor.BaseMonitor$ProviderEnumeration.getNextStorageFactory(BaseMonitor.java:2146)
at org.apache.derby.impl.services.monitor.BaseMonitor$ProviderEnumeration.hasMoreElements(BaseMonitor.java:2159)
at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(BaseMonitor.java:1516)
at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(BaseMonitor.java:979)
at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Monitor.java:550)
at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java:2697)
at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:385)
This seems to happen because Derby recognizes it as a Java 1.4 platform, whereas it's actually a CDC/FP 1.1.2 platform.