Issue 121258 - unowinreg.dll: can't load ia 32-bit .dll on a amd 64-bit platform
Summary: unowinreg.dll: can't load ia 32-bit .dll on a amd 64-bit platform
Status: REOPENED
Alias: None
Product: App Dev
Classification: Unclassified
Component: sdk (show other issues)
Version: 3.4.1
Hardware: PC Windows, all
: P3 Normal
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-23 14:12 UTC by imacat@mail.imacat.idv.tw
Modified: 2020-05-11 23:23 UTC (History)
1 user (show)

See Also:
Issue Type: ENHANCEMENT
Latest Confirmation in: 4.1.3
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description imacat@mail.imacat.idv.tw 2012-10-23 14:12:21 UTC
The unowinreg.dll from OpenOffice SDK does not work with Windows Java 64-bit VM.  OpenOffice client applications built with unowinreg.dll will not work on 64bit 64-bit Windows with Java 64-bit VM installed.  As 64-bit Windows and 64-bit Java VM is very common now, this makes OpenOffice client applications unavailable on many platforms.

A 64-bit unowinreg.dll and a mechanism for switching between 32-bit and 64-bit unowinreg.dll should be provided in the OpenOffice loader in OpenOffice SDK.

The console log is below.

C:\>java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

C:\>java -jar D:calcmosaic.jar
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\imacat\AppData\Local\Temp\unowinreg1072712583236131558.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(Unknown Source)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.load0(Unknown Source)
        at java.lang.System.load(Unknown Source)
        at com.sun.star.lib.loader.WinRegKey.<clinit>(WinRegKey.java:81)
        at com.sun.star.lib.loader.InstallationFinder.getPathFromWindowsRegistry(InstallationFinder.java:197)
        at com.sun.star.lib.loader.InstallationFinder.getPath(InstallationFinder.java:105)
        at com.sun.star.lib.loader.Loader.getCustomLoader(Loader.java:170)
        at com.sun.star.lib.loader.Loader.main(Loader.java:130)

C:\>
Comment 1 Keith N. McKenna 2016-10-23 15:27:06 UTC
As AOO on Windows is only a 32 Bit application I am tempted to set this as an Enhancement rather than a defect, but would appreciate advise from those more knowledgeable.
Comment 2 Marcus 2016-10-23 15:56:19 UTC
There are no plans to move to 64-bit. Therefore it's sufficient to still provide a 32-bit "unowinreg.dll".
Comment 3 Ariel Constenla-Haile 2016-10-27 14:06:05 UTC
Reopening.
unowinreg.dll is a library used by UNO Java applications to query the Windows registry in order to find the OpenOffice installation.

When the UNO Java application is run with a 64 bit JVM, the 32 bit library cannot be loaded.

We should embed both 32 and 64 bit versions of the library, and the glue code that we embed in all client applications should detect if the application is run inside a 32 or a 64 bit JVM, and try to load the proper version the library.

Cf. https://svn.apache.org/viewvc/openoffice/trunk/main/odk/source/com/sun/star/lib/loader/WinRegKey.java?revision=1413471&view=markup#l64
https://svn.apache.org/viewvc/openoffice/trunk/main/odk/source/unowinreg/win/unowinreg.cxx?revision=1413471&view=markup
Comment 4 Keith N. McKenna 2020-05-11 23:23:33 UTC
Changing from defect to enhancement.