Made RSARemoteServiceContainerAdapter more robust if exportRemoteService
fails

Change-Id: I8854cb315cabd05615421dde97d2157b5a80eab8
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/RSARemoteServiceContainerAdapter.java b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/RSARemoteServiceContainerAdapter.java
index 356aa8f..31de5c1 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/RSARemoteServiceContainerAdapter.java
+++ b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/RSARemoteServiceContainerAdapter.java
@@ -49,7 +49,13 @@
 		@Override
 		public void publish(RemoteServiceRegistryImpl reg, Object svc, String[] clzzes, Dictionary props) {
 			super.publish(reg, svc, clzzes, props);
-			this.extraProperties = getRSAContainer().exportRemoteService(this);
+			try {
+				this.extraProperties = getRSAContainer().exportRemoteService(this);
+			} catch (RuntimeException t) {
+				// unpublish in the event of 
+				reg.unpublishService(this);
+				throw t;
+			}
 		}
 
 		public void unregister() {
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/RemoteServiceContainerAdapterImpl.java b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/RemoteServiceContainerAdapterImpl.java
index 1eeb2d4..51c9f58 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/RemoteServiceContainerAdapterImpl.java
+++ b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/RemoteServiceContainerAdapterImpl.java
@@ -91,10 +91,8 @@
 		Trace.entering(Activator.PLUGIN_ID, IRemoteServiceImplDebugOptions.METHODS_ENTERING, this.getClass(), "registerRemoteService", new Object[] {clazzes, service, properties}); //$NON-NLS-1$
 		if (service == null)
 			throw new NullPointerException("service cannot be null"); //$NON-NLS-1$
-		final int size = clazzes.length;
-
-		if (size == 0)
-			throw new IllegalArgumentException("service classes list is empty"); //$NON-NLS-1$
+		if (clazzes.length == 0)
+			throw new IllegalArgumentException("service classes cannot be empty"); //$NON-NLS-1$
 
 		final String[] copy = new String[clazzes.length];
 		for (int i = 0; i < clazzes.length; i++)