Description
After restarting a ZooKeeper server to which a PublishingEndpointListener is connected, when it reconnects a NodeExistsException is thrown causing the endpoint to be missed.
org.apache.zookeeper.KeeperException$NodeExistsException: KeeperErrorCode = NodeExists for /osgi/service_registry/sample/MyService/192.168.1.1#9000##sample#MyService
at org.apache.zookeeper.KeeperException.create(KeeperException.java:110)[201:org.apache.hadoop.zookeeper:3.3.1]
at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)[201:org.apache.hadoop.zookeeper:3.3.1]
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:637)[201:org.apache.hadoop.zookeeper:3.3.1]
at org.apache.cxf.dosgi.discovery.zookeeper.PublishingEndpointListener.addEndpoint(PublishingEndpointListener.java:103)[147:cxf-dosgi-ri-discovery-distributed:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.discovery.zookeeper.PublishingEndpointListener.endpointAdded(PublishingEndpointListener.java:73)[147:cxf-dosgi-ri-discovery-distributed:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.topologymanager.exporter.EndpointListenerNotifier.notifyListener(EndpointListenerNotifier.java:113)[146:cxf-dosgi-ri-topology-manager:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.topologymanager.exporter.EndpointListenerNotifier.notifyListeners(EndpointListenerNotifier.java:91)[146:cxf-dosgi-ri-topology-manager:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.topologymanager.exporter.TopologyManagerExport.exportServiceUsingRemoteServiceAdmin(TopologyManagerExport.java:179)[146:cxf-dosgi-ri-topology-manager:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.topologymanager.exporter.TopologyManagerExport.doExportService(TopologyManagerExport.java:160)[146:cxf-dosgi-ri-topology-manager:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.topologymanager.exporter.TopologyManagerExport$3.run(TopologyManagerExport.java:136)[146:cxf-dosgi-ri-topology-manager:1.5.0.SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_21]
at java.lang.Thread.run(Thread.java:722)[:1.7.0_21]
org.apache.zookeeper.KeeperException$NodeExistsException: KeeperErrorCode = NodeExists for /osgi/service_registry/sample/MyService/192.168.1.1#9000##sample#MyService
at org.apache.zookeeper.KeeperException.create(KeeperException.java:110)[201:org.apache.hadoop.zookeeper:3.3.1]
at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)[201:org.apache.hadoop.zookeeper:3.3.1]
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:637)[201:org.apache.hadoop.zookeeper:3.3.1]
at org.apache.cxf.dosgi.discovery.zookeeper.PublishingEndpointListener.addEndpoint(PublishingEndpointListener.java:103)[147:cxf-dosgi-ri-discovery-distributed:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.discovery.zookeeper.PublishingEndpointListener.endpointAdded(PublishingEndpointListener.java:73)[147:cxf-dosgi-ri-discovery-distributed:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.topologymanager.exporter.EndpointListenerNotifier.notifyListener(EndpointListenerNotifier.java:113)[146:cxf-dosgi-ri-topology-manager:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.topologymanager.exporter.EndpointListenerNotifier$1.addingService(EndpointListenerNotifier.java:64)[146:cxf-dosgi-ri-topology-manager:1.5.0.SNAPSHOT]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932)[karaf.jar:2.3.1]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)[karaf.jar:2.3.1]
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)[karaf.jar:2.3.1]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)[karaf.jar:2.3.1]
at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:894)[karaf.jar:2.3.1]
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)[osgi-3.8.0.v20120529-1548.jar:]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)[osgi-3.8.0.v20120529-1548.jar:]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)[osgi-3.8.0.v20120529-1548.jar:]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)[osgi-3.8.0.v20120529-1548.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)[osgi-3.8.0.v20120529-1548.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)[osgi-3.8.0.v20120529-1548.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)[osgi-3.8.0.v20120529-1548.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)[osgi-3.8.0.v20120529-1548.jar:]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)[osgi-3.8.0.v20120529-1548.jar:]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451)[osgi-3.8.0.v20120529-1548.jar:]
at org.apache.cxf.dosgi.discovery.zookeeper.PublishingEndpointListenerFactory.start(PublishingEndpointListenerFactory.java:78)[147:cxf-dosgi-ri-discovery-distributed:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.discovery.zookeeper.ZooKeeperDiscovery.start(ZooKeeperDiscovery.java:72)[147:cxf-dosgi-ri-discovery-distributed:1.5.0.SNAPSHOT]
at org.apache.cxf.dosgi.discovery.zookeeper.ZooKeeperDiscovery.process(ZooKeeperDiscovery.java:125)[147:cxf-dosgi-ri-discovery-distributed:1.5.0.SNAPSHOT]
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:488)[201:org.apache.hadoop.zookeeper:3.3.1]