# HG changeset patch # User simonis # Date 1433948113 -7200 # Wed Jun 10 16:55:13 2015 +0200 # Node ID 1cdbaafbed9d4008b0d1860a9705e6dd54286047 # Parent 51e129e42c9262a7c00d4877abe65c601995bcbb 8081674: EmptyStackException at startup if running with extended or unsupported charset Reviewed-by: mchung diff --git a/make/mapfiles/libjava/mapfile-vers b/make/mapfiles/libjava/mapfile-vers --- a/make/mapfiles/libjava/mapfile-vers +++ b/make/mapfiles/libjava/mapfile-vers @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -128,12 +128,12 @@ Java_java_lang_ClassLoader_defineClass0; Java_java_lang_ClassLoader_defineClass1; Java_java_lang_ClassLoader_defineClass2; + Java_java_lang_ClassLoader_findBuiltinLib; Java_java_lang_ClassLoader_findLoadedClass0; Java_java_lang_ClassLoader_resolveClass0; Java_java_lang_ClassLoader_00024NativeLibrary_find; Java_java_lang_ClassLoader_00024NativeLibrary_load; Java_java_lang_ClassLoader_00024NativeLibrary_unload; - Java_java_lang_ClassLoader_00024NativeLibrary_findBuiltinLib; Java_java_lang_ClassLoader_registerNatives; Java_java_lang_Compiler_registerNatives; Java_java_lang_Double_longBitsToDouble; diff --git a/src/share/classes/java/lang/ClassLoader.java b/src/share/classes/java/lang/ClassLoader.java --- a/src/share/classes/java/lang/ClassLoader.java +++ b/src/share/classes/java/lang/ClassLoader.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1690,6 +1690,8 @@ return null; } + static native String findBuiltinLib(String name); + /** * The inner class NativeLibrary denotes a loaded native library instance. * Every classloader contains a vector of loaded native libraries in the @@ -1724,7 +1726,6 @@ native long find(String name); native void unload(String name, boolean isBuiltin); - static native String findBuiltinLib(String name); public NativeLibrary(Class fromClass, String name, boolean isBuiltin) { this.name = name; @@ -1867,7 +1868,7 @@ private static boolean loadLibrary0(Class fromClass, final File file) { // Check to see if we're attempting to access a static library - String name = NativeLibrary.findBuiltinLib(file.getName()); + String name = findBuiltinLib(file.getName()); boolean isBuiltin = (name != null); if (!isBuiltin) { boolean exists = AccessController.doPrivileged( diff --git a/src/share/native/java/lang/ClassLoader.c b/src/share/native/java/lang/ClassLoader.c --- a/src/share/native/java/lang/ClassLoader.c +++ b/src/share/native/java/lang/ClassLoader.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -493,12 +493,12 @@ return res; } /* - * Class: java_lang_ClassLoader_NativeLibrary + * Class: java_lang_ClassLoader * Method: findBuiltinLib * Signature: (Ljava/lang/String;)Ljava/lang/String; */ JNIEXPORT jstring JNICALL -Java_java_lang_ClassLoader_00024NativeLibrary_findBuiltinLib +Java_java_lang_ClassLoader_findBuiltinLib (JNIEnv *env, jclass cls, jstring name) { const char *cname; @@ -514,8 +514,6 @@ JNU_ThrowInternalError(env, "NULL filename for native library"); return NULL; } - // Can't call initIDs because it will recurse into NativeLibrary via - // FindClass to check context so set prochandle here as well. procHandle = getProcessHandle(); cname = JNU_GetStringPlatformChars(env, name, 0); if (cname == NULL) {