From f459005fe769990486c695374d3b17b17c8e07c0 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 1 Jul 2014 20:12:12 +0400 Subject: [PATCH] Fix GeneratedClassLoader so that it loads Package instances --- .../org/jetbrains/jet/codegen/GeneratedClassLoader.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/GeneratedClassLoader.java b/compiler/backend/src/org/jetbrains/jet/codegen/GeneratedClassLoader.java index 0a0e865c863..70e6627821a 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/GeneratedClassLoader.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/GeneratedClassLoader.java @@ -22,6 +22,7 @@ import org.jetbrains.jet.OutputFile; import java.net.URL; import java.net.URLClassLoader; import java.util.List; +import java.util.jar.Manifest; public class GeneratedClassLoader extends URLClassLoader { private ClassFileFactory state; @@ -39,6 +40,13 @@ public class GeneratedClassLoader extends URLClassLoader { OutputFile outputFile = state.get(classFilePath); if (outputFile != null) { byte[] bytes = outputFile.asByteArray(); + int lastDot = name.lastIndexOf('.'); + if (lastDot >= 0) { + String pkgName = name.substring(0, lastDot); + if (getPackage(pkgName) == null) { + definePackage(pkgName, new Manifest(), null); + } + } return defineClass(name, bytes, 0, bytes.length); }