Merge
This commit is contained in:
commit
04bb1f355b
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -407,6 +407,29 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
|||||||
return pkg;
|
return pkg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Also called by VM to define Package for classes loaded from the CDS
|
||||||
|
// archive
|
||||||
|
private void definePackageInternal(String pkgname, Manifest man, URL url)
|
||||||
|
{
|
||||||
|
if (getAndVerifyPackage(pkgname, man, url) == null) {
|
||||||
|
try {
|
||||||
|
if (man != null) {
|
||||||
|
definePackage(pkgname, man, url);
|
||||||
|
} else {
|
||||||
|
definePackage(pkgname, null, null, null, null, null, null, null);
|
||||||
|
}
|
||||||
|
} catch (IllegalArgumentException iae) {
|
||||||
|
// parallel-capable class loaders: re-verify in case of a
|
||||||
|
// race condition
|
||||||
|
if (getAndVerifyPackage(pkgname, man, url) == null) {
|
||||||
|
// Should never happen
|
||||||
|
throw new AssertionError("Cannot find package " +
|
||||||
|
pkgname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Defines a Class using the class bytes obtained from the specified
|
* Defines a Class using the class bytes obtained from the specified
|
||||||
* Resource. The resulting Class must be resolved before it can be
|
* Resource. The resulting Class must be resolved before it can be
|
||||||
@ -420,23 +443,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
|||||||
String pkgname = name.substring(0, i);
|
String pkgname = name.substring(0, i);
|
||||||
// Check if package already loaded.
|
// Check if package already loaded.
|
||||||
Manifest man = res.getManifest();
|
Manifest man = res.getManifest();
|
||||||
if (getAndVerifyPackage(pkgname, man, url) == null) {
|
definePackageInternal(pkgname, man, url);
|
||||||
try {
|
|
||||||
if (man != null) {
|
|
||||||
definePackage(pkgname, man, url);
|
|
||||||
} else {
|
|
||||||
definePackage(pkgname, null, null, null, null, null, null, null);
|
|
||||||
}
|
|
||||||
} catch (IllegalArgumentException iae) {
|
|
||||||
// parallel-capable class loaders: re-verify in case of a
|
|
||||||
// race condition
|
|
||||||
if (getAndVerifyPackage(pkgname, man, url) == null) {
|
|
||||||
// Should never happen
|
|
||||||
throw new AssertionError("Cannot find package " +
|
|
||||||
pkgname);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Now read the class bytes and define the class
|
// Now read the class bytes and define the class
|
||||||
java.nio.ByteBuffer bb = res.getByteBuffer();
|
java.nio.ByteBuffer bb = res.getByteBuffer();
|
||||||
|
Loading…
Reference in New Issue
Block a user