You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by tb...@apache.org on 2014/02/14 19:17:33 UTC

git commit: AMBARI-4679 - NPE for View with no instances / resources / parameters.

Updated Branches:
  refs/heads/trunk ba50ff704 -> af54f0ff9


AMBARI-4679 - NPE for View with no instances / resources / parameters.


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/af54f0ff
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/af54f0ff
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/af54f0ff

Branch: refs/heads/trunk
Commit: af54f0ff9aac7d054ef7de1514b780a164e178f5
Parents: ba50ff7
Author: tbeerbower <tb...@hortonworks.com>
Authored: Fri Feb 14 11:19:54 2014 -0500
Committer: tbeerbower <tb...@hortonworks.com>
Committed: Fri Feb 14 13:16:55 2014 -0500

----------------------------------------------------------------------
 .../server/view/configuration/ViewConfig.java   |  7 ++--
 .../view/configuration/ViewConfigTest.java      | 37 ++++++++++++++------
 2 files changed, 31 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/af54f0ff/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java b/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java
index fa1bed1..829e08a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java
@@ -23,6 +23,7 @@ import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -104,7 +105,7 @@ public class ViewConfig {
    * @return the list of parameters
    */
   public List<ParameterConfig> getParameters() {
-    return parameters;
+    return parameters == null ? Collections.<ParameterConfig>emptyList() : parameters;
   }
 
   /**
@@ -113,7 +114,7 @@ public class ViewConfig {
    * @return return the list of resources
    */
   public List<ResourceConfig> getResources() {
-    return resources;
+    return resources == null ? Collections.<ResourceConfig>emptyList() : resources;
   }
 
   /**
@@ -122,6 +123,6 @@ public class ViewConfig {
    * @return the list of view instances
    */
   public List<InstanceConfig> getInstances() {
-    return instances;
+    return instances == null ? Collections.<InstanceConfig>emptyList() : instances;
   }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/af54f0ff/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java b/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java
index 27a7644..42dd7be 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java
@@ -73,14 +73,6 @@ public class ViewConfigTest {
       "        <provider-class>org.apache.ambari.server.view.configuration.ViewConfigTest$MyResourceProvider</provider-class>\n" +
       "        <service-class>org.apache.ambari.server.view.configuration.ViewConfigTest$MyResourceService</service-class>\n" +
       "    </resource>\n" +
-      "    <servlet>\n" +
-      "        <servlet-name>MyViewServlet</servlet-name>\n" +
-      "        <servlet-path>org.apache.ambari.server.view.configuration.ViewConfigTest$MyViewServlet</servlet-path>\n" +
-      "    </servlet>\n" +
-      "    <servlet-mapping>\n" +
-      "        <servlet-name>MyViewServlet</servlet-name>\n" +
-      "        <url-pattern>/ui</url-pattern>\n" +
-      "    </servlet-mapping>\n" +
       "    <instance>\n" +
       "        <name>INSTANCE1</name>\n" +
       "        <property>\n" +
@@ -102,6 +94,13 @@ public class ViewConfigTest {
       "</view>";
 
 
+  private static String minimal_xml = "<view>\n" +
+      "    <name>MY_VIEW</name>\n" +
+      "    <label>My View!</label>\n" +
+      "    <version>1.0.0</version>\n" +
+      "</view>";
+
+
   @Test
   public void testGetName() throws Exception {
     ViewConfig config = getConfig();
@@ -127,6 +126,12 @@ public class ViewConfigTest {
     Assert.assertEquals(2, parameters.size());
     Assert.assertEquals("p1", parameters.get(0).getName());
     Assert.assertEquals("p2", parameters.get(1).getName());
+
+    // check the case where no parameters are specified for the view...
+    config = getConfig(minimal_xml);
+    parameters = config.getParameters();
+    Assert.assertNotNull(parameters);
+    Assert.assertEquals(0, parameters.size());
   }
 
   @Test
@@ -136,15 +141,27 @@ public class ViewConfigTest {
     Assert.assertEquals(2, resources.size());
     Assert.assertEquals("resource", resources.get(0).getName());
     Assert.assertEquals("subresource", resources.get(1).getName());
+
+    // check the case where no resources are specified for the view...
+    config = getConfig(minimal_xml);
+    resources = config.getResources();
+    Assert.assertNotNull(resources);
+    Assert.assertEquals(0, resources.size());
   }
 
   @Test
   public void testGetInstances() throws Exception {
-    ViewConfig config = getConfig();
+    ViewConfig config = getConfig(xml);
     List<InstanceConfig> instances = config.getInstances();
     Assert.assertEquals(2, instances.size());
     Assert.assertEquals("INSTANCE1", instances.get(0).getName());
     Assert.assertEquals("INSTANCE2", instances.get(1).getName());
+
+    // check the case where no instances are specified for the view...
+    config = getConfig(minimal_xml);
+    instances = config.getInstances();
+    Assert.assertNotNull(instances);
+    Assert.assertEquals(0, instances.size());
   }
 
   public static  ViewConfig getConfig() throws JAXBException {
@@ -152,7 +169,7 @@ public class ViewConfigTest {
   }
 
   public static  ViewConfig getConfig(String xml) throws JAXBException {
-      InputStream configStream =  new ByteArrayInputStream(xml.getBytes());
+    InputStream configStream =  new ByteArrayInputStream(xml.getBytes());
     JAXBContext jaxbContext = JAXBContext.newInstance(ViewConfig.class);
     Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
     return (ViewConfig) unmarshaller.unmarshal(configStream);