Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2013-05-19 05:48:11 +0000
committerslewis2013-05-19 05:48:11 +0000
commitf37004aae0aba1d5beec2769edecfe352b272313 (patch)
treebc37e2e88dc1c5c86f567e8d7a7bf66b76875944
parent91c3238366b946ed2bfbd0f9115265b328187939 (diff)
downloadorg.eclipse.ecf-f37004aae0aba1d5beec2769edecfe352b272313.tar.gz
org.eclipse.ecf-f37004aae0aba1d5beec2769edecfe352b272313.tar.xz
org.eclipse.ecf-f37004aae0aba1d5beec2769edecfe352b272313.zip
Fix for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=408450
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java23
1 files changed, 19 insertions, 4 deletions
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java
index b8d4f9cfe..fd2d57500 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java
@@ -48,11 +48,26 @@ public abstract class AbstractMetadataFactory {
result.setPropertyString(name, value.toString());
}
+ private static final Long DEFAULT_LONG = new Long(0);
+
protected Long decodeLong(IServiceProperties props, String name) {
- String longAsString = props.getPropertyString(name);
- if (longAsString == null)
- return new Long(0);
- return new Long(longAsString);
+ // This is for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=408450
+ Object o = props.getPropertyString(name);
+ if (o == null)
+ return DEFAULT_LONG;
+ if (o instanceof Long)
+ return (Long) o;
+ if (o instanceof Integer)
+ return new Long(((Integer) o).longValue());
+ if (o instanceof String)
+ try {
+ return new Long((String) o);
+ } catch (NumberFormatException e) {
+ LogUtility
+ .logError(
+ "decodeLong", DebugOptions.METADATA_FACTORY, this.getClass(), "Exception decoding long with name=" + name + " and value=" + o); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ return DEFAULT_LONG;
}
protected void encodeList(IServiceProperties props, String name,

Back to the top