RFR: Export InitializeEncoding for JVM access
Roger Riggs
Roger.Riggs at Oracle.com
Mon Apr 9 18:52:42 UTC 2018
Hi Andrew,
ok, it turns out the prototype in jni_util.h also needs to be updated
to be consistent for Windows and Solaris.
And no surprise, there are no test failures.
I put an updated webrev in:
http://cr.openjdk.java.net/~rriggs/webrev-encoding-8201246/
If there are no more comments, I'll commit tomorrow.
Regards, Roger
On 4/9/2018 8:57 AM, Andrew Leonard wrote:
> Thanks for the feedback Roger,
> Yes, exporting the InitializeEncoding entry point would make sense,
> keeping it consistent with Canonicalize(). I have attached the new
> patch below:
> Many thanks
> Andrew
>
>
> diff --git a/src/java.base/share/native/libjava/jni_util.c
> b/src/java.base/share/native/libjava/jni_util.c
> --- a/src/java.base/share/native/libjava/jni_util.c
> +++ b/src/java.base/share/native/libjava/jni_util.c
> @@ -774,8 +774,10 @@
> return newSizedStringJava(env, str, len);
> }
>
> -/* Initialize the fast encoding from the encoding name. */
> -void
> +/* Initialize the fast encoding from the encoding name.
> + * Export InitializeEncoding so that the VM can initialize it if
> required.
> + */
> +JNIEXPORT void
> InitializeEncoding(JNIEnv *env, const char *encname)
> {
> jclass strClazz = NULL;
>
>
>
> Andrew Leonard
> Java Runtimes Development
> IBM Hursley
> IBM United Kingdom Ltd
> Phone internal: 245913, external: 01962 815913
> internet email: andrew_m_leonard at uk.ibm.com
>
>
>
>
> From: Roger Riggs <Roger.Riggs at Oracle.com>
> To: Andrew Leonard <andrew_m_leonard at uk.ibm.com>
> Cc: core-libs-dev at openjdk.java.net
> Date: 06/04/2018 15:39
> Subject: Re: RFR: Export InitializeEncoding for JVM access
> ------------------------------------------------------------------------
>
>
>
> Hi Andrew,
>
> Would it be sufficient to export the InitializeEncoding entry point?
>
> Introducing a JNU_xx name may imply a level of support that is
> unwarranted since
> it is part of system initialization and may change as needed by the
> implementation.
> Simply exporting it would put it on par with Canonicalize.
>
> Thanks, Roger
>
> p.s. Tracking issue:
> _https://bugs.openjdk.java.net/browse/JDK-8201246_
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__bugs.openjdk.java.net_browse_JDK-2D8201246&d=DwMD-g&c=jf_iaSHvJObTbx-siA1ZOg&r=NaV8Iy8Ld-vjpXZFDdTbgGlRTghGHnwM75wUPd5_NUQ&m=p_fQLlNXJvoVJa69tdD-jWziIgb70BegiqN-SuPhUPk&s=Jvw6DlMaepuFnlUKt1l04hqhMaetcEE4PwHYD_9pnrE&e=>
>
> On 4/5/2018 5:49 AM, Andrew Leonard wrote:
> Hi Roger,
> The OpenJ9 VM implementation provides its own java.lang.System, which
> performs similar type early-on VM initialization to the OpenJDK core
> library classes. The basic reason for invoking the method is to
> initialize the platform encoding either called from a related core
> library method, eg.initProperties(), or from the VM in the early
> stages of initialization.
>
> My suggested comparison with canonicalize was based on it's indicated
> usage:
> /*
> * Export the platform dependent path canonicalization so that
> * VM can find it when loading system classes.
> * This function is also used by the instrumentation agent.
> */
> extern int canonicalize(char *path, const char *out, int len);
>
> JNIEXPORT int
> Canonicalize(JNIEnv *unused, char *orig, char *out, int len)
> {
> /* canonicalize an already natived path */
> return canonicalize(orig, out, len);
> }
>
>
> Many thanks,
> Andrew
>
>
> Andrew Leonard
> Java Runtimes Development
> IBM Hursley
> IBM United Kingdom Ltd
> Phone internal: 245913, external: 01962 815913
> internet email: _andrew_m_leonard at uk.ibm.com_
> <mailto:andrew_m_leonard at uk.ibm.com>
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with
> number 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
> 3AU
>
>
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with
> number 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
More information about the core-libs-dev
mailing list