Skip to main content

pMEA, b93, JNI error

4 replies [Last post]
jldominguez
Offline
Joined: 2008-01-02
Points: 0

Hi, Davy. I have tested your pMEA-b93-CAB and I get this error message:

java.lang.UnsatisfiedLinkError: sun.io.ByteToCharISO8859_1.convert([BII[CII)I
at java.io.InputStreamReader.convertInto(Unknown Source)
at java.io.InputStreamReader.fill(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.util.Properties.load(Unknown Source)
at org.gvsig.i18n.Messages.addResourceFamily(Unknown Source)
at org.gvsig.i18n.Messages.addResourceFamily(Unknown Source)
at es.prodevelop.gvsig.mobile.common.GvsigMobileGUIConstants.configureLocales(Unknown Source)
at es.prodevelop.gvsig.mobile.common.GvsigMobileGUIConstants.(Unknown Source)
at java.lang.Class.runStaticInitializers(Unknown Source)
at es.prodevelop.gvsig.mobile.gui.mainframe.SplashDialog.(Unknown Source)
at java.lang.Class.runStaticInitializers(Unknown Source)

It works fine with b91. I've compared the VM files (b91-b93) and this is what I found:

- Some classes (among them sun.io.ByteToCharISO8859_1) have been moved from btclasses.zip to personal.jar

- In b91 there were dupilcated classes:

java.lang.Terminator
sun.misc.* (at least some of them)
sun.security.provider.certpath.* (at least some of them)

are in btclasses.zip and also in personal.jar.

- b93 has no duplicated classes in those two files

- The class com.sun.cdc.io.j2me.comm.Protocol.class has been removed (it's not in b93's btclasses.zip or personal.jar)

Hope this helps.

Cheers,
Lucas

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
jldominguez
Offline
Joined: 2008-01-02
Points: 0

It works now, thanks.

davyp
Offline
Joined: 2007-01-03
Points: 0

Hi Lucas,

This issue emerged somewhere between development builds b91 and
b92 (I did not put my WinCE b92 builds online). However, my Linux/x86
builds have this problem too so it is not a WinCE specific problem. Perhaps
someone with a little bit more experience in this matter can tell us why
some class files end up in btclasses.zip and other ones in personal.jar,
and what can be done about it.

Davy

davyp
Offline
Joined: 2007-01-03
Points: 0

I received reports from other people that have encountered the same issue:

java.lang.UnsatisfiedLinkError:
sun.io.ByteToCharISO8859_1.convert([BII[CII)I

That is why I have decided to put an older development build (b91) back
online until this issue is resolved.

All my latest changes to the b93 builds and following have been
"backported" to the current b91 builds. This means that there might be a
slight difference with the b91 builds that were available several weeks ago.
Anyway, hopefully JNI now works again.

Cheers,
Davy

davyp
Offline
Joined: 2007-01-03
Points: 0

I have found the source of this problem and tracked it back to svn commit
14426. In that commit, the CVM_PRELOAD_LIB variable was deprecated
and replaced with CVM_PRELOAD_SET.

Previously, I used CVM_PRELOAD_LIB=false to make my builds and would
like to keep it that way because a full static build of the Personal Profile has
initialization errors due to method and data field identifiers not being
cached correctly. CHECK_PEER CREATION throws an exception because
(env->GetIntField(self, WCachedIDs.PPCObjectPeer_pDataFID) == 0) in
PPCFramePeer.cpp. But that's a different story.

Anyway, the build scripts now set CVM_PRELOAD_SET=minfull. Later on
this variable is used in cdc/build/share/rules.mk to create other lists
of classes to preload etc. I noticed that sun.io.ByteToCharISO8859_1 is in
the CVM_BUILDTIME_CLASSES variable but not in the
CVM_BUILDTIME_CLASSES_min list. Could this be the reason why the
above error occurs?

Davy