Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2013-05-19 08:17:49 +0000
committerslewis2013-05-19 08:17:49 +0000
commitcef347de97d0d3aca37d278a5cbf3107399a5e02 (patch)
tree564d1112171b558b66c64e3fbc71f585b9596880
parenta6151569e879afb10e233af0628d9676734808ea (diff)
downloadorg.eclipse.ecf-cef347de97d0d3aca37d278a5cbf3107399a5e02.tar.gz
org.eclipse.ecf-cef347de97d0d3aca37d278a5cbf3107399a5e02.tar.xz
org.eclipse.ecf-cef347de97d0d3aca37d278a5cbf3107399a5e02.zip
Final fix for 408450
-rw-r--r--osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/AbstractMetadataFactory.java22
1 files changed, 18 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..27c93d29e 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,25 @@ public abstract class AbstractMetadataFactory {
result.setPropertyString(name, value.toString());
}
+ private 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);
+ Object o = props.getProperty(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