From dcecbffab1f06a04916061867dc14cf7ac21ffef Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 13 Jul 2016 10:32:50 +0000 Subject: [PATCH] SSDM-3745: Jython27ClassLoader fixed: defining package in loadClass() SVN: 36813 --- .../shared/utils/Jython27ClassLoader.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/Jython27ClassLoader.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/Jython27ClassLoader.java index f9dee1f7f61..6308592a8d6 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/Jython27ClassLoader.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/Jython27ClassLoader.java @@ -99,9 +99,25 @@ public class Jython27ClassLoader extends ClassLoader resolveClass(clazz); } cachedClasses.put(name, clazz); + definePackage(name); return clazz; } + private void definePackage(String className) + { + String packageName = getPackageName(className); + if (getPackage(packageName) == null) + { + definePackage(packageName, null, null, null, null, null, null, null); + } + } + + private String getPackageName(String className) + { + int offset = className.lastIndexOf('.'); + return (offset == -1) ? null : className.substring(0, offset); + } + @Override public URL getResource(String name) { -- GitLab