This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push: new 4a2e0da Revert clean-up. definePackage always needs to be called. 4a2e0da is described below commit 4a2e0da8500175c219726ae56ff28412d21f730f Author: Mark Thomas <ma...@apache.org> AuthorDate: Fri Jul 30 08:20:28 2021 +0100 Revert clean-up. definePackage always needs to be called. --- .../catalina/loader/WebappClassLoaderBase.java | 68 ++++++++++++---------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/java/org/apache/catalina/loader/WebappClassLoaderBase.java b/java/org/apache/catalina/loader/WebappClassLoaderBase.java index e7a35db..16043b5 100644 --- a/java/org/apache/catalina/loader/WebappClassLoaderBase.java +++ b/java/org/apache/catalina/loader/WebappClassLoaderBase.java @@ -2436,40 +2436,46 @@ public abstract class WebappClassLoaderBase extends URLClassLoader } } - if (securityManager != null) { - // Looking up the package - int pos = name.lastIndexOf('.'); - if (pos != -1) { - String packageName = name.substring(0, pos); - Package pkg = getPackage(packageName); - - // Define the package (if null) - if (pkg == null) { - try { - if (manifest == null) { - definePackage(packageName, null, null, null, null, null, null, null); - } else { - definePackage(packageName, manifest, codeBase); - } - } catch (IllegalArgumentException e) { - // Ignore: normal error due to dual definition of package - } - pkg = getPackage(packageName); - } + // Looking up the package + String packageName = null; + int pos = name.lastIndexOf('.'); + if (pos != -1) { + packageName = name.substring(0, pos); + } + + Package pkg = null; - // Checking sealing - if (pkg != null) { - boolean sealCheck = true; - if (pkg.isSealed()) { - sealCheck = pkg.isSealed(codeBase); + if (packageName != null) { + pkg = getPackage(packageName); + + // Define the package (if null) + if (pkg == null) { + try { + if (manifest == null) { + definePackage(packageName, null, null, null, null, null, null, null); } else { - sealCheck = (manifest == null) || !isPackageSealed(packageName, manifest); - } - if (!sealCheck) { - throw new SecurityException - ("Sealing violation loading " + name + " : Package " - + packageName + " is sealed."); + definePackage(packageName, manifest, codeBase); } + } catch (IllegalArgumentException e) { + // Ignore: normal error due to dual definition of package + } + pkg = getPackage(packageName); + } + } + + if (securityManager != null) { + // Checking sealing + if (pkg != null) { + boolean sealCheck = true; + if (pkg.isSealed()) { + sealCheck = pkg.isSealed(codeBase); + } else { + sealCheck = (manifest == null) || !isPackageSealed(packageName, manifest); + } + if (!sealCheck) { + throw new SecurityException + ("Sealing violation loading " + name + " : Package " + + packageName + " is sealed."); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org