You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by pe...@apache.org on 2012/01/06 04:21:00 UTC
svn commit: r1227948 -
/river/jtsk/trunk/src/net/jini/lookup/ServiceDiscoveryManager.java
Author: peter_firmstone
Date: Fri Jan 6 03:21:00 2012
New Revision: 1227948
URL: http://svn.apache.org/viewvc?rev=1227948&view=rev
Log:
River-402 Fix null pointer exception
Modified:
river/jtsk/trunk/src/net/jini/lookup/ServiceDiscoveryManager.java
Modified: river/jtsk/trunk/src/net/jini/lookup/ServiceDiscoveryManager.java
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/src/net/jini/lookup/ServiceDiscoveryManager.java?rev=1227948&r1=1227947&r2=1227948&view=diff
==============================================================================
--- river/jtsk/trunk/src/net/jini/lookup/ServiceDiscoveryManager.java (original)
+++ river/jtsk/trunk/src/net/jini/lookup/ServiceDiscoveryManager.java Fri Jan 6 03:21:00 2012
@@ -804,7 +804,7 @@ public class ServiceDiscoveryManager {
/** A wrapper class for a ServiceRegistrar. */
private final static class ProxyReg {
- public ServiceRegistrar proxy;
+ private final ServiceRegistrar proxy;
public ProxyReg(ServiceRegistrar proxy) {
if(proxy == null) throw new IllegalArgumentException
("proxy cannot be null");
@@ -813,14 +813,21 @@ public class ServiceDiscoveryManager {
public boolean equals(Object obj) {
if (obj instanceof ProxyReg){
- return proxy.equals(((ProxyReg)obj).proxy);
+ return getProxy().equals(((ProxyReg)obj).getProxy());
} else return false;
}//end equals
public int hashCode() {
- return proxy.hashCode();
+ return getProxy().hashCode();
}//end hashCode
+ /**
+ * @return the proxy
+ */
+ public ServiceRegistrar getProxy() {
+ return proxy;
+ }
+
}//end class ServiceDiscoveryManager.ProxyReg
/** The Listener class for the LeaseRenewalManager. */
@@ -907,7 +914,7 @@ public class ServiceDiscoveryManager {
long duration = getLeaseDuration();
if(duration < 0) return;
try {
- EventReg eventReg = registerListener(reg.proxy,
+ EventReg eventReg = registerListener(reg.getProxy(),
tmpl,
lookupListenerProxy,
duration);
@@ -929,7 +936,7 @@ public class ServiceDiscoveryManager {
cacheTerminated = bCacheTerminated;
}//end sync
ServiceDiscoveryManager.this.fail
- (e,reg.proxy,this.getClass().getName(),"run",
+ (e, reg.getProxy(),this.getClass().getName(),"run",
"Exception occurred while attempting to register "
+"with the lookup service event mechanism",
cacheTerminated);
@@ -948,7 +955,7 @@ public class ServiceDiscoveryManager {
}
public void run() {
logger.finest("ServiceDiscoveryManager - LookupTask started");
- ServiceRegistrar proxy = reg.proxy;
+ ServiceRegistrar proxy = reg.getProxy();
ServiceMatches matches;
/* For the given lookup, get all services matching the tmpl */
try {
@@ -1147,7 +1154,7 @@ public class ServiceDiscoveryManager {
* item, or a newly discovered item.
*/
if(transition == ServiceRegistrar.TRANSITION_MATCH_NOMATCH) {
- handleMatchNoMatch(reg.proxy, sid, item);
+ handleMatchNoMatch(reg.getProxy(), sid, item);
} else {//(transition == NOMATCH_MATCH or MATCH_MATCH)
(new NewOldServiceTask(reg, item,
(transition == ServiceRegistrar.TRANSITION_MATCH_MATCH),
@@ -1401,18 +1408,18 @@ public class ServiceDiscoveryManager {
+"NewOldServiceTask completed");
return;
}//endif
- itemReg = new ServiceItemReg( reg.proxy, srvcItem );
+ itemReg = new ServiceItemReg( reg.getProxy(), srvcItem );
serviceIdMap.put( thisTaskSid, itemReg );
} else {
changed = true;
}
}//end sync(serviceIdMap)
if(changed) {//a. old, previously discovered item
- itemMatchMatchChange(reg.proxy, srvcItem,
+ itemMatchMatchChange(reg.getProxy(), srvcItem,
itemReg, matchMatchEvent);
} else {//b. newly discovered item
ServiceItem newFilteredItem =
- filterMaybeDiscard(srvcItem,reg.proxy,false);
+ filterMaybeDiscard(srvcItem, reg.getProxy(),false);
if(newFilteredItem != null) {
addServiceNotify(newFilteredItem);
}//endif
@@ -1470,7 +1477,7 @@ public class ServiceDiscoveryManager {
ServiceRegistrar proxy = null;
ServiceItem item;
synchronized(itemReg) {
- item = itemReg.removeProxy(reg.proxy);//disassociate the LUS
+ item = itemReg.removeProxy(reg.getProxy());//disassociate the LUS
if (item != null) {// new LUS chosen to track changes
proxy = itemReg.proxy;
} else if( itemReg.hasNoProxys() ) {//no more LUSs, remove from map
@@ -1879,16 +1886,18 @@ public class ServiceDiscoveryManager {
eReg.lookupsPending++;
t = new LookupTask(reg, taskSeqN++, eReg);
if( logger.isLoggable(Levels.HANDLED) ) {
- String msg ="notifyServiceMap - GAP in event sequence "
- +"[serviceRegistrar={0}], "
- +"[serviceItem={1}, "
- +"serviceID={2}], "
- +"[eventSource={3}, "
- +"eventID={4,number,#}, "
- +"oldSeqN={5,number,#}, "
- +"newSeqN={6,number,#}]";
- Object[] params = new Object[] { reg.proxy,
- item.service,
+ StringBuilder sb = new StringBuilder(300);
+ sb.append("notifyServiceMap - GAP in event sequence ")
+ .append("[serviceRegistrar={0}], ")
+ .append("[serviceItem={1}, ")
+ .append("serviceID={2}], ")
+ .append("[eventSource={3}, ")
+ .append("eventID={4,number,#}, ")
+ .append("oldSeqN={5,number,#}, ")
+ .append("newSeqN={6,number,#}]");
+ String msg = sb.toString();
+ Object[] params = new Object[] { reg !=null ? reg.getProxy() : "",
+ item != null ? item.service : "",
sid,
eventSource,
new Long(eventID),
@@ -2511,7 +2520,7 @@ public class ServiceDiscoveryManager {
while(iter.hasNext()) {
ProxyReg reg = (ProxyReg)iter.next();
cacheAddProxy(reg);
- if(notifies != null) listenerDiscovered(reg.proxy, notifies);
+ if(notifies != null) listenerDiscovered(reg.getProxy(), notifies);
}//end loop
}//end DiscMgrListener.discovered
@@ -2846,7 +2855,7 @@ public class ServiceDiscoveryManager {
Iterator iter = proxyRegSet.iterator();
while(iter.hasNext()) {
ProxyReg reg = (ProxyReg)iter.next();
- proxys[k++] = reg.proxy;
+ proxys[k++] = reg.getProxy();
}//end loop
return proxys;
}//end buildServiceRegistrar
@@ -3613,7 +3622,7 @@ public class ServiceDiscoveryManager {
Iterator iter = proxyRegSet.iterator();
while(iter.hasNext()) {
ProxyReg reg =(ProxyReg)iter.next();
- if(reg.proxy.equals(proxy)) return reg;
+ if(reg.getProxy().equals(proxy)) return reg;
}//end loop
return null;
}//end findReg