You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Dave Brosius <db...@apache.org> on 2011/10/17 04:45:39 UTC
seemingly incorrect if guard
Greetings,
org.apache.jackrabbit.webdav.security.report.AclPrincipalReport.java
does the following
This logic seems wrong to me
*if (href == null && respMap.containsKey(href)) {*
i'd expect it should be ||
correct?
@Override
public void init(DavResource resource, ReportInfo info) throws
DavException {
super.init(resource, info);
// build the DAV:responses objects.
DavProperty<?> acl = resource.getProperty(SecurityConstants.ACL);
if (!(acl instanceof AclProperty)) {
throw new
DavException(DavServletResponse.SC_INTERNAL_SERVER_ERROR, "DAV:acl
property expected.");
}
DavResourceLocator loc = resource.getLocator();
Map<String, MultiStatusResponse> respMap = new HashMap<String,
MultiStatusResponse>();
List<AclProperty.Ace> list = (List<AclProperty.Ace>)
((AclProperty)acl).getValue();
for (AclProperty.Ace ace : list) {
String href = ace.getPrincipal().getHref();
*if (href == null && respMap.containsKey(href)) {*
// ignore non-href principals and principals that have
been listed before
continue;
}
// href-principal that has not been found before
DavResourceLocator princLocator =
loc.getFactory().createResourceLocator(loc.getPrefix(), href);
DavResource principalResource =
resource.getFactory().createResource(princLocator, resource.getSession());
respMap.put(href, new
MultiStatusResponse(principalResource, info.getPropertyNameSet()));
}
this.responses = respMap.values().toArray(new
MultiStatusResponse[respMap.size()]);
}
Re: seemingly incorrect if guard
Posted by Julian Reschke <ju...@gmx.de>.
On 2011-10-17 04:45, Dave Brosius wrote:
> Greetings,
>
> org.apache.jackrabbit.webdav.security.report.AclPrincipalReport.java
>
> does the following
>
> This logic seems wrong to me
>
> *if (href == null && respMap.containsKey(href)) {*
>
>
> i'd expect it should be ||
>
> correct?
> ...
Probably.
It would be good to have test cases :-)