[
https://issues.apache.org/jira/browse/SVN-4443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Branko Čibej resolved SVN-4443.
-------------------------------
Resolution: Won't Fix
Please report a bug in gcj. If it wants to be a drop-in replacement for the
"official" Java SDK, it should have identical behaviour.
> New inner classes in javahl JNI interface are not handled correctly by javah
> from gcj
> -------------------------------------------------------------------------------------
>
> Key: SVN-4443
> URL: https://issues.apache.org/jira/browse/SVN-4443
> Project: Subversion
> Issue Type: Bug
> Components: bindings_javahl
> Affects Versions: 1.8.x
> Reporter: Dominik Stadler
> Fix For: ---
>
>
> {noformat:nopanel=true}
> Since 1.8 there is a new class VersionExtended.java in javahl which contains 4
> inner classes, all of them contain native interfaces.
> The usual steps for handling javahl Java->H generation seems to be to use
> build/generator/gen_make.py to generate the build-outputs.mk file which then
> contains all the necessary dependencies and calls. It seems gen_make.py
> currently expects the inner classes to be automatically generated as part of
> running javah on the outer class, as no special handling is implemented there.
> However on Ubuntu Precise (12.04) when the build uses javah from gcj, I do not
> get the .h files generated for the new inner classes.
> I.e. the following call will generate only one .h, whereas the build expects
> inner classes to be generated as well
> $ /usr/lib/jvm/java-gcj/bin/javah -force -d subversion/bindings/javahl/include
> -classpath subversion/bindings/javahl/classes:
> org.apache.subversion.javahl.types.VersionExtended
> With a different JDK, 4 additional header files will be generated.
> $ /usr/lib/jvm/java-7-oracle/bin/javah -force -d
> subversion/bindings/javahl/include -classpath
> subversion/bindings/javahl/classes:
> org.apache.subversion.javahl.types.VersionExtended
> So it seems javah from gcj expects the inner classes to be specified
> explicetely, when I specify them via
> "org.apache.subversion.javahl.types.VersionExtended$LoadedLib" when calling
> javah, the classes are generated successfully.
> I tried with the following Java versions, only gcj did not generate them,
> Sun/Oracle JDK seems to generate them in all recent major versions:
> $ /usr/lib/jvm/java-gcj/bin/javah -version
> javah (GNU Classpath) 0.98
> => No inner classes are generated
> $ /usr/lib/jvm/java-7-oracle/bin/javah -version
> javah version "1.7.0_45"
> => Inner classes are generated
> $ /usr/lib/jvm/java-1.5.0-sun/bin/javah -version
> javah version "1.5.0_19"
> => Inner classes are generated
> $ /usr/lib/jvm/java-1.6.0-openjdk/bin/javah -version
> javah version "1.6.0_27"
> => Inner classes are generated
> $ /usr/lib/jvm/java-7-openjdk-amd64/bin/javah -version
> javah version "1.7.0_25"
> => Inner classes are generated
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)