You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2015/08/05 21:13:07 UTC
svn commit: r1694287 -
/felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/WebConsolePlugin.java
Author: cziegeler
Date: Wed Aug 5 19:13:06 2015
New Revision: 1694287
URL: http://svn.apache.org/r1694287
Log:
Fix class cast exception if pid is string[] or collection
Modified:
felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/WebConsolePlugin.java
Modified: felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/WebConsolePlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/WebConsolePlugin.java?rev=1694287&r1=1694286&r2=1694287&view=diff
==============================================================================
--- felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/WebConsolePlugin.java (original)
+++ felix/trunk/webconsole-plugins/ds/src/main/java/org/apache/felix/webconsole/plugins/ds/internal/WebConsolePlugin.java Wed Aug 5 19:13:06 2015
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
@@ -263,16 +264,43 @@ class WebConsolePlugin extends SimpleWeb
final Map<String, Object> props = component.properties;
- final String pid = (String) (props != null ? props.get(Constants.SERVICE_PID)
- : null);
+ String pid = null;
+ String configurationPid = null;
+ final Object obj = props != null ? props.get(Constants.SERVICE_PID) : null;
+ if ( obj instanceof String )
+ {
+ pid = (String)obj;
+ configurationPid = pid;
+ }
+ else if ( obj instanceof String[] )
+ {
+ final String[] arr = (String[])obj;
+ if ( arr.length > 0 )
+ {
+ pid = Arrays.toString(arr);
+ configurationPid = arr[0];
+ }
+ }
+ else if ( obj instanceof Collection )
+ {
+ final Collection<?> col = (Collection<?>)obj;
+ if ( !col.isEmpty() )
+ {
+ pid = col.toString();
+ configurationPid = col.iterator().next().toString();
+ }
+ }
if (pid != null)
{
jw.key("pid"); //$NON-NLS-1$
jw.value(pid);
- if (isConfigurable(this.getBundleContext().getBundle(0).getBundleContext().getBundle(component.description.bundle.id), pid))
+ if ( configurationPid != null )
{
- jw.key("configurable"); //$NON-NLS-1$
- jw.value(pid);
+ if (isConfigurable(this.getBundleContext().getBundle(0).getBundleContext().getBundle(component.description.bundle.id), configurationPid))
+ {
+ jw.key("configurable"); //$NON-NLS-1$
+ jw.value(configurationPid);
+ }
}
}