浏览代码

AMBARI-11774 - Views : NPE accessing view that includes velocity. (tbeerbower)

tbeerbower 10 年之前
父节点
当前提交
f25834109c

+ 1 - 0
ambari-server/src/main/java/org/apache/ambari/server/view/ViewClassLoader.java

@@ -81,6 +81,7 @@ public class ViewClassLoader extends WebAppClassLoader {
     // add as system classes to avoid conflicts and linkage errors
     webAppContext.addSystemClass("org.slf4j.");
     webAppContext.addSystemClass("com.sun.jersey.");
+    webAppContext.addSystemClass("org.apache.velocity.");
 
     // set the class loader settings from the configuration
     if (viewConfig != null) {

+ 6 - 0
ambari-server/src/test/java/org/apache/ambari/server/view/ViewClassLoaderTest.java

@@ -80,6 +80,7 @@ public class ViewClassLoaderTest {
     expect(parentClassLoader.loadClass("com.google.inject.AbstractModule")).andReturn(parentClass).once();
     expect(parentClassLoader.loadClass("org.slf4j.LoggerFactory")).andReturn(parentClass).once();
     expect(parentClassLoader.loadClass("com.sun.jersey.api.ConflictException")).andReturn(parentClass).once();
+    expect(parentClassLoader.loadClass("org.apache.velocity.VelocityContext")).andReturn(parentClass).once();
 
     replay(parentClassLoader, viewConfig);
 
@@ -126,6 +127,11 @@ public class ViewClassLoaderTest {
     Assert.assertNotNull(clazz);
     Assert.assertSame(parentClass, clazz);
 
+    clazz = classLoader.loadClass("org.apache.velocity.VelocityContext");
+
+    Assert.assertNotNull(clazz);
+    Assert.assertSame(parentClass, clazz);
+
     verify(parentClassLoader, viewConfig);
   }