[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[udig-devel] [jira] Created: (UDIG-351) Catalog.find appears to call blocking method members.
|
Catalog.find appears to call blocking method members.
-----------------------------------------------------
Key: UDIG-351
URL: http://jira.codehaus.org/browse/UDIG-351
Project: uDIG
Type: Bug
Components: catalog
Versions: UDIG 0.9
Reporter: Richard Gould
Assigned to: David Zwiers
Fix For: UDIG 0.9
The method Catalog.find doesn't appear to declare that it blocks, but it calls Service.members, which is clearly a blocking method.
Around line 185 of CatalogImpl.java
----------------
public List<IResolve> find(URL query){
List<IResolve> list=new ArrayList<IResolve>();
for( Iterator iter = services.iterator(); iter.hasNext(); ) {
IService service = (IService) iter.next();
if( service.getIdentifier().getProtocol().equalsIgnoreCase(query.getProtocol()) &&
((service.getIdentifier().getHost()==null || "".equals(service.getIdentifier().getHost())) || (service.getIdentifier().getHost()!=null && service.getIdentifier().getHost().equalsIgnoreCase(query.getHost()))) && //$NON-NLS-1$
((service.getIdentifier().getPath()==null || "".equals(service.getIdentifier().getPath()))|| (service.getIdentifier().getPath()!=null && service.getIdentifier().getPath().equalsIgnoreCase(query.getPath()))) && //$NON-NLS-1$
((service.getIdentifier().getQuery()==null || "".equals(service.getIdentifier().getQuery()))|| (service.getIdentifier().getQuery()!=null && service.getIdentifier().getQuery().equalsIgnoreCase(query.getQuery()))) && //$NON-NLS-1$
((service.getIdentifier().getAuthority()==null || "".equals(service.getIdentifier().getAuthority()))|| (service.getIdentifier().getAuthority()!=null && service.getIdentifier().getAuthority().equalsIgnoreCase(query.getAuthority()))) ){ //$NON-NLS-1$
Iterator<IResolve> i;
try {
List t =service.members(null);
i = t==null?(new LinkedList<IResolve>()).iterator():t.iterator();
if(query.getRef()!=null){
// it's a resource
while(i.hasNext()){
IGeoResource res = (IGeoResource)i.next();
if(query.getRef().equals(res.getIdentifier().getRef()))
list.add(res);
}
}else{
while(i.hasNext())
list.add(i.next());
}
} catch (IOException e) {
CorePlugin.log(CatalogPlugin.getDefault(), e);
}
}
}
return list;
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira