diff --git a/webconsole/changelog.txt b/webconsole/changelog.txt
index 197eef1..a2d8d16 100644
--- a/webconsole/changelog.txt
+++ b/webconsole/changelog.txt
@@ -1,3 +1,16 @@
+Changes from 4.2.10 to 4.2.12
+-----------------------------
+** Bug
+    * [FELIX-5004] - Null is passed to BundleInfoProvider if plugin root is null
+
+
+Changes from 4.2.8 to 4.2.10
+----------------------------
+** Bug
+    * [FELIX-4852] - Unbinding configuration does not have desired effect
+    * [FELIX-4886] - Check for ConfigAdmin#listConfigurations returning null
+
+
 Changes from 4.2.6 to 4.2.8
 ---------------------------
 ** Bug
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/bundleinfo/BundleInfoType.java b/webconsole/src/main/java/org/apache/felix/webconsole/bundleinfo/BundleInfoType.java
index 3aec8c5..033564b 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/bundleinfo/BundleInfoType.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/bundleinfo/BundleInfoType.java
@@ -22,7 +22,7 @@
 
 /**
  * This pre-java 5 enum defines all valid bundle information value types.
- * 
+ *
  * @author Valentin Valchev
  */
 public final class BundleInfoType
@@ -34,7 +34,7 @@
      * with <code>&lt;protocol&gt;://</code> the link will be considered as
      * external. Otherwise the link should be absolute link to a local Servlet
      * and must always start with <code>/</code>.
-     * 
+     *
      * for security reasons, the protocol cannot be <code>file</code> for
      * external links.
      */
@@ -65,7 +65,7 @@
 
     /**
      * Returns the name of the type.
-     * 
+     *
      * @return the type name
      */
     public final String getName()
@@ -77,7 +77,7 @@
     /**
      * That method is used to validate if the object is correct for the
      * specified type.
-     * 
+     *
      * @param value
      *            the value that will be validated.
      */
@@ -93,19 +93,19 @@
             if ( idx == -1 )
             {
                 if ( !val.startsWith( "/" ) ) //$NON-NLS-1$
-                    throw new IllegalArgumentException( "Invalid local link" );
+                    throw new IllegalArgumentException( "Invalid local link: " + val );
             }
             else
             {
                 // check external link
                 if ( val.substring( 0, idx ).equalsIgnoreCase( "file" ) ) //$NON-NLS-1$
-                    throw new IllegalArgumentException( "External link cannot use file protocol" );
+                    throw new IllegalArgumentException( "External link cannot use file protocol: " + value );
             }
         }
         else if ( this == RESOURCE )
         {
             if ( !( value instanceof URL ) )
-                throw new IllegalArgumentException( "Invalid URL" );
+                throw new IllegalArgumentException( "Invalid URL: " + value );
         }
     }
 
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
index 3bd0461..ba35938 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
@@ -822,7 +822,7 @@
         }
 
         listHeaders( jw, bundle );
-        final String appRoot = ( pluginRoot == null ) ? null : pluginRoot.substring( 0, pluginRoot.lastIndexOf( "/" ) );
+        final String appRoot = ( pluginRoot == null ) ? "" : pluginRoot.substring( 0, pluginRoot.lastIndexOf( "/" ) );
         bundleInfoDetails( jw, bundle, appRoot, locale );
 
         jw.endArray();
