--- old/src/jdk/nashorn/internal/runtime/Context.java 2013-04-22 14:18:42.521883024 +0530 +++ new/src/jdk/nashorn/internal/runtime/Context.java 2013-04-22 14:18:42.453882683 +0530 @@ -535,7 +535,7 @@ if (classPathLoader != null) { try { return Class.forName(fullName, true, classPathLoader); - } catch (final ClassNotFoundException ignored) { + } catch (final LinkageError | ClassNotFoundException ignored) { // ignore, continue search } } --- old/src/jdk/nashorn/internal/runtime/NativeJavaPackage.java 2013-04-22 14:18:43.621888474 +0530 +++ new/src/jdk/nashorn/internal/runtime/NativeJavaPackage.java 2013-04-22 14:18:43.553888139 +0530 @@ -170,7 +170,7 @@ Class javaClass = null; try { javaClass = context.findClass(fullName); - } catch (final ClassNotFoundException e) { + } catch (final LinkageError | ClassNotFoundException e) { //ignored } --- /dev/null 2013-04-22 10:19:31.826721771 +0530 +++ new/test/script/basic/JDK-8012673.js 2013-04-22 14:18:44.209891392 +0530 @@ -0,0 +1,12 @@ +/** + * JDK-8021673: Nashorn's package name vs class name inferring logic is wrong + * + * @test + * @run + */ + +// no exception for the following +var ErrorClass = Packages.jdk.nashorn.test.models.Jdk8012673; +if (String(ErrorClass) != '[JavaPackage jdk.nashorn.test.models.Jdk8012673]') { + fail("should have resolved to a Java package"); +} --- /dev/null 2013-04-22 10:19:31.826721771 +0530 +++ new/test/src/jdk/nashorn/test/models/Jdk8012673.java 2013-04-22 14:18:44.477892725 +0530 @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2010, 2013, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.nashorn.test.models; + +/** + * Test class used by test script JDK-8012673.js + */ +public class Jdk8012673 { + static { + final Object obj = null; + // make sure ExceptionInInitializerError is thrown from here + obj.getClass(); + } +}