@@ -69,9 +69,9 @@ public class NativeImageAgentJNIHandleSet extends JNIHandleSet {
6969
7070 private JNIMethodId javaLangReflectConstructorDeclaringClassName ;
7171
72- final JNIMethodId javaUtilLocaleToLanguageTag ;
73- final JNIFieldId javaUtilResourceBundleParentField ;
74- final JNIMethodId javaUtilResourceBundleGetLocale ;
72+ private JNIMethodId javaUtilLocaleToLanguageTag = WordFactory . nullPointer () ;
73+ private JNIFieldId javaUtilResourceBundleParentField = WordFactory . nullPointer () ;
74+ private JNIMethodId javaUtilResourceBundleGetLocale = WordFactory . nullPointer () ;
7575
7676 NativeImageAgentJNIHandleSet (JNIEnvironment env ) {
7777 super (env );
@@ -102,11 +102,6 @@ public class NativeImageAgentJNIHandleSet extends JNIHandleSet {
102102 javaLangInvokeWrongMethodTypeException = newClassGlobalRef (env , "java/lang/invoke/WrongMethodTypeException" );
103103 javaLangIllegalArgumentException = newClassGlobalRef (env , "java/lang/IllegalArgumentException" );
104104
105- JNIObjectHandle javaUtilLocale = findClass (env , "java/util/Locale" );
106- javaUtilLocaleToLanguageTag = getMethodId (env , javaUtilLocale , "toLanguageTag" , "()Ljava/lang/String;" , false );
107- JNIObjectHandle javaUtilResourceBundle = findClass (env , "java/util/ResourceBundle" );
108- javaUtilResourceBundleParentField = getFieldId (env , javaUtilResourceBundle , "parent" , "Ljava/util/ResourceBundle;" , false );
109- javaUtilResourceBundleGetLocale = getMethodId (env , javaUtilResourceBundle , "getLocale" , "()Ljava/util/Locale;" , false );
110105 }
111106
112107 JNIMethodId getJavaLangInvokeMethodTypeReturnType (JNIEnvironment env ) {
@@ -176,4 +171,28 @@ JNIMethodId getJavaLangReflectConstructorDeclaringClassName(JNIEnvironment env,
176171 }
177172 return javaLangReflectConstructorDeclaringClassName ;
178173 }
174+
175+ public JNIMethodId getJavaUtilLocaleToLanguageTag (JNIEnvironment env ) {
176+ if (javaUtilLocaleToLanguageTag .isNull ()) {
177+ JNIObjectHandle javaUtilLocale = findClass (env , "java/util/Locale" );
178+ javaUtilLocaleToLanguageTag = getMethodId (env , javaUtilLocale , "toLanguageTag" , "()Ljava/lang/String;" , false );
179+ }
180+ return javaUtilLocaleToLanguageTag ;
181+ }
182+
183+ public JNIFieldId getJavaUtilResourceBundleParentField (JNIEnvironment env ) {
184+ if (javaUtilResourceBundleParentField .isNull ()) {
185+ JNIObjectHandle javaUtilResourceBundle = findClass (env , "java/util/ResourceBundle" );
186+ javaUtilResourceBundleParentField = getFieldId (env , javaUtilResourceBundle , "parent" , "Ljava/util/ResourceBundle;" , false );
187+ }
188+ return javaUtilResourceBundleParentField ;
189+ }
190+
191+ public JNIMethodId getJavaUtilResourceBundleGetLocale (JNIEnvironment env ) {
192+ if (javaUtilResourceBundleGetLocale .isNull ()) {
193+ JNIObjectHandle javaUtilResourceBundle = findClass (env , "java/util/ResourceBundle" );
194+ javaUtilResourceBundleGetLocale = getMethodId (env , javaUtilResourceBundle , "getLocale" , "()Ljava/util/Locale;" , false );
195+ }
196+ return javaUtilResourceBundleGetLocale ;
197+ }
179198}
0 commit comments