db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5419) Make Derby run on Oracle Java ME Embedded Client
Date Mon, 19 Sep 2011 15:16:08 GMT

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

Knut Anders Hatlen updated DERBY-5419:
--------------------------------------

    Attachment: d5419-1a-check-for-cdc.diff

Derby tries to find out if the JVM is a Java ME variant in the JVMInfo class. It uses the
java.specification.name property to determine that. Currently, it checks if the property value
starts with "J2ME", in which case it's recognized as IBM WCTME, or if it contains the two
words "Profile" and "Specification", in which case it's recognized as phoneME.

The property has this value on Oracle Java ME Embedded Client 1.0, which isn't recognized
by either of the two checks:

CDC 1.1.2 (JSR218)- FP 1.1.2 (JSR219) (SecOp 1.0)- PBP 1.1.2 (JSR217)- (RMI JSR66)- (JDBC
JSR169)- (WebServices JSR172)- (Specification

The attached patch makes JVMInfo also check if the value starts with CDC. With that change,
the engine doesn't try to load modules that require Java SE on this platform, and I'm able
to run some smaller tests. (I haven't managed to run suites.All yet, as it fails with an OOME
after a while.)

> 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
>         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

        

Mime
View raw message