Revert "Synchronize the mDNS events and timer with the MdnsDiscoveryAgent class instead of the instance object as a workaround for JmDNS issue #49"

This reverts commit d92ad050aa4482cdaaf8f7345222da26c31d84f6.
This commit is contained in:
Cameron Gutman 2016-02-23 10:54:03 -05:00
parent c1c3af3c66
commit 1db84efb68

View File

@ -28,48 +28,37 @@ public class MdnsDiscoveryAgent {
private boolean stop;
private ServiceListener nvstreamListener = new ServiceListener() {
public void serviceAdded(ServiceEvent event) {
synchronized (MdnsDiscoveryAgent.class) {
if (resolver == null) {
LimeLog.warning("mDNS callback invoked without a resolver!");
return;
}
LimeLog.info("mDNS: Machine appeared: "+event.getInfo().getName());
ServiceInfo[] infos = resolver.getServiceInfos(SERVICE_TYPE, event.getInfo().getName(), 500);
if (infos == null || infos.length == 0) {
// This machine is pending resolution
pendingResolution.add(event.getInfo().getName());
return;
}
LimeLog.info("mDNS: Resolved (blocking) with "+infos.length+" service entries");
handleResolvedServiceInfo(infos[0]);
LimeLog.info("mDNS: Machine appeared: "+event.getInfo().getName());
ServiceInfo[] infos = resolver.getServiceInfos(SERVICE_TYPE, event.getInfo().getName(), 500);
if (infos == null || infos.length == 0) {
// This machine is pending resolution
pendingResolution.add(event.getInfo().getName());
return;
}
LimeLog.info("mDNS: Resolved (blocking) with "+infos.length+" service entries");
handleResolvedServiceInfo(infos[0]);
}
public void serviceRemoved(ServiceEvent event) {
synchronized (MdnsDiscoveryAgent.class) {
LimeLog.info("mDNS: Machine disappeared: "+event.getInfo().getName());
Inet4Address addrs[] = event.getInfo().getInet4Addresses();
for (Inet4Address addr : addrs) {
synchronized (computers) {
MdnsComputer computer = computers.remove(addr);
if (computer != null) {
listener.notifyComputerRemoved(computer);
break;
}
LimeLog.info("mDNS: Machine disappeared: "+event.getInfo().getName());
Inet4Address addrs[] = event.getInfo().getInet4Addresses();
for (Inet4Address addr : addrs) {
synchronized (computers) {
MdnsComputer computer = computers.remove(addr);
if (computer != null) {
listener.notifyComputerRemoved(computer);
break;
}
}
}
}
public void serviceResolved(ServiceEvent event) {
synchronized (MdnsDiscoveryAgent.class) {
LimeLog.info("mDNS: Machine resolved (callback): "+event.getInfo().getName());
handleResolvedServiceInfo(event.getInfo());
}
LimeLog.info("mDNS: Machine resolved (callback): "+event.getInfo().getName());
handleResolvedServiceInfo(event.getInfo());
}
};
@ -124,7 +113,7 @@ public class MdnsDiscoveryAgent {
t.schedule(new TimerTask() {
@Override
public void run() {
synchronized (MdnsDiscoveryAgent.class) {
synchronized (MdnsDiscoveryAgent.this) {
// Stop if requested
if (stop) {
// There will be no further timer invocations now