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

Knut Anders Hatlen resolved DERBY-5419.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 10.9.0.0
                   10.8.2.2

I only wish there were a more robust way to detect that we're running on Java 
ME. The CLDC spec defines a system property called microedition.platform, which 
has the value "j2me" on both phoneME and OJEC (don't know about weme and 
others). Unfortunately, the property value is defined to be 
implementation-dependent, so it might not be more reliable after all.

In any case, I've now checked in the patch that improves the current logic so 
that it recognizes Oracle Java ME Embedded Client too.

Committed to trunk, revision 1174646.
Merged to 10.8 and committed revision 1174649.

> Make Derby run on Oracle Java ME Embedded Client
> ------------------------------------------------
>
>                 Key: DERBY-5419
>                 URL: https://issues.apache.org/jira/browse/DERBY-5419
>             Project: Derby
>          Issue Type: Improvement
>          Components: Services
>    Affects Versions: 10.8.2.1
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>             Fix For: 10.8.2.2, 10.9.0.0
>
>         Attachments: d5419-1a-check-for-cdc.diff
>
>
> 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.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to