public void run() { URL deviceURL = rd.getIdentity().getDescriptorURL(); // Performance optimization, try to avoid concurrent GET requests for device descriptor, // if we retrieve it once, we have the hydrated device. There is no different outcome // processing this several times concurrently. if (activeRetrievals.contains(deviceURL)) { log.finer("Exiting early, active retrieval for URL already in progress: " + deviceURL); return; } // Exit if it has been discovered already, could be we have been waiting in the executor queue too long if (getUpnpService().getRegistry().getRemoteDevice(rd.getIdentity().getUdn(), true) != null) { log.finer("Exiting early, already discovered: " + deviceURL); return; } try { activeRetrievals.add(deviceURL); describe(); } catch (RouterException ex) { log.log(Level.WARNING, "Descriptor retrieval failed: " + deviceURL, ex ); } finally { activeRetrievals.remove(deviceURL); } }
synchronized public boolean notifyDiscoveryStart(final RemoteDevice device) { // Exit if we have it already, this is atomic inside this method, finally if (getUpnpService().getRegistry().getRemoteDevice(device.getIdentity().getUdn(), true) != null) { log.finer("Not notifying listeners, already registered: " + device); return false; } for (final RegistryListener listener : getListeners()) { getConfiguration().getRegistryListenerExecutor().execute( new Runnable() { public void run() { listener.remoteDeviceDiscoveryStarted(RegistryImpl.this, device); } } ); } return true; }
public void run() { URL deviceURL = rd.getIdentity().getDescriptorURL(); // Performance optimization, try to avoid concurrent GET requests for device descriptor, // if we retrieve it once, we have the hydrated device. There is no different outcome // processing this several times concurrently. if (activeRetrievals.contains(deviceURL)) { log.finer("Exiting early, active retrieval for URL already in progress: " + deviceURL); return; } // Exit if it has been discovered already, could be we have been waiting in the executor queue too long if (getUpnpService().getRegistry().getRemoteDevice(rd.getIdentity().getUdn(), true) != null) { log.finer("Exiting early, already discovered: " + deviceURL); return; } try { activeRetrievals.add(deviceURL); describe(); } catch (RouterException ex) { log.log(Level.WARNING, "Descriptor retrieval failed: " + deviceURL, ex ); } finally { activeRetrievals.remove(deviceURL); } }
synchronized public boolean notifyDiscoveryStart(final RemoteDevice device) { // Exit if we have it already, this is atomic inside this method, finally if (getUpnpService().getRegistry().getRemoteDevice(device.getIdentity().getUdn(), true) != null) { log.finer("Not notifying listeners, already registered: " + device); return false; } for (final RegistryListener listener : getListeners()) { getConfiguration().getRegistryListenerExecutor().execute( new Runnable() { public void run() { listener.remoteDeviceDiscoveryStarted(RegistryImpl.this, device); } } ); } return true; }
public void run() { URL deviceURL = rd.getIdentity().getDescriptorURL(); // Performance optimization, try to avoid concurrent GET requests for device descriptor, // if we retrieve it once, we have the hydrated device. There is no different outcome // processing this several times concurrently. if (activeRetrievals.contains(deviceURL)) { log.finer("Exiting early, active retrieval for URL already in progress: " + deviceURL); return; } // Exit if it has been discovered already, could be we have been waiting in the executor queue too long if (getUpnpService().getRegistry().getRemoteDevice(rd.getIdentity().getUdn(), true) != null) { log.finer("Exiting early, already discovered: " + deviceURL); return; } try { activeRetrievals.add(deviceURL); describe(); } catch (RouterException ex) { log.log(Level.WARNING, "Descriptor retrieval failed: " + deviceURL, ex ); } finally { activeRetrievals.remove(deviceURL); } }
synchronized public boolean notifyDiscoveryStart(final RemoteDevice device) { // Exit if we have it already, this is atomic inside this method, finally if (getUpnpService().getRegistry().getRemoteDevice(device.getIdentity().getUdn(), true) != null) { log.finer("Not notifying listeners, already registered: " + device); return false; } for (final RegistryListener listener : getListeners()) { getConfiguration().getRegistryListenerExecutor().execute( new Runnable() { public void run() { listener.remoteDeviceDiscoveryStarted(RegistryImpl.this, device); } } ); } return true; }