diff options
author | gjoranv <gjoranv@gmail.com> | 2016-06-17 16:13:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-17 16:13:35 +0200 |
commit | 7731f962a5064c6ba29ba52dbfe8edf743b58a32 (patch) | |
tree | a9c3eee97ec634239b3abb0c271d7c936abbb831 | |
parent | 77eb221fff4ab953b8288662bc140d56ad56275c (diff) | |
parent | b5e6d6de45f52311bac17d0677b8a2e6c0d6a8b7 (diff) |
Merge pull request #76 from yahoo/arnej/fix-forceload-api
Arnej/fix forceload api
4 files changed, 13 insertions, 12 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/ForceLoad.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/ForceLoad.java index ecbab688821..381e7da994f 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/ForceLoad.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/ForceLoad.java @@ -19,7 +19,6 @@ public class ForceLoad { "VdsHit", "Grouping", "Hit", - "ForceLoad", "MinAggregationResult", "GroupingLevel", "MaxAggregationResult", @@ -27,10 +26,10 @@ public class ForceLoad { "AverageAggregationResult", "ExpressionCountAggregationResult", "hll.SparseSketch", - "hll.NormalSketch", - "ForceLoad" + "hll.NormalSketch" }; - com.yahoo.system.ForceLoad.forceLoad(pkg, classes); + com.yahoo.system.ForceLoad.forceLoad(pkg, classes, + ForceLoad.class.getClassLoader()); } public static boolean forceLoad() { diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/ForceLoad.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/ForceLoad.java index 6ebb4c672c8..8b12f4c5967 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/ForceLoad.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/ForceLoad.java @@ -58,7 +58,6 @@ public class ForceLoad { "FloatResultNodeVector", "StringResultNodeVector", "RawResultNodeVector", - "ForceLoad", "MultiplyFunctionNode", "IntegerBucketResultNode", "FloatBucketResultNode", @@ -77,10 +76,10 @@ public class ForceLoad { "ZCurveFunctionNode", "XorBitFunctionNode", "MultiArgFunctionNode", - "DebugWaitFunctionNode", - "ForceLoad" + "DebugWaitFunctionNode" }; - com.yahoo.system.ForceLoad.forceLoad(pkg, classes); + com.yahoo.system.ForceLoad.forceLoad(pkg, classes, + ForceLoad.class.getClassLoader()); } public static boolean forceLoad() { diff --git a/vespajlib/src/main/java/com/yahoo/system/ForceLoad.java b/vespajlib/src/main/java/com/yahoo/system/ForceLoad.java index f924740321f..4946f3b8033 100644 --- a/vespajlib/src/main/java/com/yahoo/system/ForceLoad.java +++ b/vespajlib/src/main/java/com/yahoo/system/ForceLoad.java @@ -15,14 +15,14 @@ public class ForceLoad { * @param classNames array of names of classes (without package prefix) * to force load. **/ - public static void forceLoad(String packageName, String[] classNames) + public static void forceLoad(String packageName, String[] classNames, ClassLoader loader) throws ForceLoadError { String fullClassName = ""; try { for (String className : classNames) { fullClassName = packageName + "." + className; - Class.forName(fullClassName); + loader.loadClass(fullClassName); } } catch (Exception e) { throw new ForceLoadError(fullClassName, e); diff --git a/vespajlib/src/test/java/com/yahoo/system/ForceLoadTestCase.java b/vespajlib/src/test/java/com/yahoo/system/ForceLoadTestCase.java index ec4f716247e..078142014cd 100644 --- a/vespajlib/src/test/java/com/yahoo/system/ForceLoadTestCase.java +++ b/vespajlib/src/test/java/com/yahoo/system/ForceLoadTestCase.java @@ -8,8 +8,10 @@ public class ForceLoadTestCase extends junit.framework.TestCase { } public void testLoadClasses() { + try { - ForceLoad.forceLoad(getClass().getPackage().getName(), new String[] { "Foo", "Bar" }); + ForceLoad.forceLoad(getClass().getPackage().getName(), new String[] { "Foo", "Bar" }, + this.getClass().getClassLoader()); } catch (ForceLoadError e) { e.printStackTrace(); assertTrue(false); @@ -18,7 +20,8 @@ public class ForceLoadTestCase extends junit.framework.TestCase { public void testLoadBogusClass() { try { - ForceLoad.forceLoad(getClass().getPackage().getName(), new String[] { "Foo", "Bar", "Baz" }); + ForceLoad.forceLoad(getClass().getPackage().getName(), new String[] { "Foo", "Bar", "Baz" }, + this.getClass().getClassLoader()); } catch (ForceLoadError e) { return; } |