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