diff options
author | slewis | 2013-05-19 08:17:49 +0000 |
---|---|---|
committer | slewis | 2013-05-19 08:17:49 +0000 |
commit | cef347de97d0d3aca37d278a5cbf3107399a5e02 (patch) | |
tree | 564d1112171b558b66c64e3fbc71f585b9596880 | |
parent | a6151569e879afb10e233af0628d9676734808ea (diff) | |
download | org.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.java | 22 |
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, |