[FELIX-1994]Web Console admin,features and gogo plugins do not work with Equinox

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@900659 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/karaf/webconsole/admin/src/main/java/org/apache/felix/karaf/webconsole/admin/AdminPlugin.java b/karaf/webconsole/admin/src/main/java/org/apache/felix/karaf/webconsole/admin/AdminPlugin.java
index 71542f3..cd2d3c7 100644
--- a/karaf/webconsole/admin/src/main/java/org/apache/felix/karaf/webconsole/admin/AdminPlugin.java
+++ b/karaf/webconsole/admin/src/main/java/org/apache/felix/karaf/webconsole/admin/AdminPlugin.java
@@ -174,6 +174,15 @@
 
     protected URL getResource(String path) {
         path = path.substring(NAME.length() + 1);
+        if (path.length() == 0) {
+            //it means input parameter path is just plugin name like /admin but not real resource path.
+            //on felix the return url would be null in this case, which is correct expected behavior.
+            //but on equinox the return url is like bundleresource://184.fwk1674485910/,
+            //which cause NPE in AbstractWebConsolePlugin.spoolResource
+            //so just return null ensure it works both with felix and equinox
+            return null;
+        }
+
         URL url = this.classLoader.getResource(path);
         try {
             InputStream ins = url.openStream();
diff --git a/karaf/webconsole/features/src/main/java/org/apache/felix/karaf/webconsole/features/FeaturesPlugin.java b/karaf/webconsole/features/src/main/java/org/apache/felix/karaf/webconsole/features/FeaturesPlugin.java
index ea2c087..4036b52 100644
--- a/karaf/webconsole/features/src/main/java/org/apache/felix/karaf/webconsole/features/FeaturesPlugin.java
+++ b/karaf/webconsole/features/src/main/java/org/apache/felix/karaf/webconsole/features/FeaturesPlugin.java
@@ -195,6 +195,15 @@
     protected URL getResource( String path )
     {
         path = path.substring( NAME.length() + 1 );
+        if (path.length() == 0) {
+            //it means input parameter path is just plugin name like /features but not real resource path.
+            //on felix the return url would be null in this case, which is correct expected behavior.
+            //but on equinox the return url is like bundleresource://184.fwk1674485910/,
+            //which cause NPE in AbstractWebConsolePlugin.spoolResource
+            //so just return null ensure it works both with felix and equinox
+            return null;
+        }
+
         URL url = this.classLoader.getResource( path );
         try
         {
diff --git a/karaf/webconsole/gogo/src/main/java/org/apache/felix/karaf/webconsole/gogo/GogoPlugin.java b/karaf/webconsole/gogo/src/main/java/org/apache/felix/karaf/webconsole/gogo/GogoPlugin.java
index ed61eac..8f2f3ec 100644
--- a/karaf/webconsole/gogo/src/main/java/org/apache/felix/karaf/webconsole/gogo/GogoPlugin.java
+++ b/karaf/webconsole/gogo/src/main/java/org/apache/felix/karaf/webconsole/gogo/GogoPlugin.java
@@ -135,6 +135,15 @@
     protected URL getResource( String path )
     {
         path = path.substring( NAME.length() + 1 );
+        if (path.length() == 0) {
+            //it means input parameter path is just plugin name like /gogo but not real resource path.
+            //on felix the return url would be null in this case, which is correct expected behavior.
+            //but on equinox the return url is like bundleresource://184.fwk1674485910/,
+            //which cause NPE in AbstractWebConsolePlugin.spoolResource
+            //so just return null ensure it works both with felix and equinox
+            return null;
+        }
+
         URL url = this.getClass().getClassLoader().getResource( path );
         try
         {