Program: 63364
Project: 63364
Buggy source:
@Override public Map<ObjectIdentity,Acl> readAclsById(List<ObjectIdentity> oids,List<Sid> sids) throws NotFoundException {
  Map<ObjectIdentity,Acl> aclMaps=new HashMap<ObjectIdentity,Acl>();
  HTableInterface htable=null;
  Result result=null;
  try {
    htable=HBaseConnection.get(hbaseUrl).getTable(userTableName);
    for (    ObjectIdentity oid : oids) {
      if (false && aclCache.containsKey(oid)) {
        aclMaps.put(oid,aclCache.get(oid));
      }
 else {
        result=htable.get(new Get(Bytes.toBytes(String.valueOf(oid.getIdentifier()))));
        if (null != result && !result.isEmpty()) {
          SidInfo owner=sidSerializer.deserialize(result.getValue(Bytes.toBytes(ACL_INFO_FAMILY),Bytes.toBytes(ACL_INFO_FAMILY_OWNER_COLUMN)));
          Sid ownerSid=(null == owner) ? null : (owner.isPrincipal() ? new PrincipalSid(owner.getSid()) : new GrantedAuthoritySid(owner.getSid()));
          boolean entriesInheriting=Bytes.toBoolean(result.getValue(Bytes.toBytes(ACL_INFO_FAMILY),Bytes.toBytes(ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN)));
          Acl parentAcl=null;
          DomainObjectInfo parentInfo=domainObjSerializer.deserialize(result.getValue(Bytes.toBytes(ACL_INFO_FAMILY),Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN)));
          if (null != parentInfo) {
            ObjectIdentity parentObj=new ObjectIdentityImpl(parentInfo.getType(),parentInfo.getId());
            parentAcl=readAclById(parentObj,null);
          }
          AclImpl acl=new AclImpl(oid,oid.getIdentifier(),aclAuthorizationStrategy,permissionGrantingStrategy,parentAcl,null,entriesInheriting,ownerSid);
          genAces(sids,result,acl);
          aclMaps.put(oid,acl);
          aclCache.put(oid,acl);
        }
 else {
          throw new NotFoundException("String_Node_Str" + oid + "String_Node_Str");
        }
      }
    }
  }
 catch (  IOException e) {
    logger.error(e.getLocalizedMessage(),e);
  }
 finally {
    IOUtils.closeQuietly(htable);
  }
  return aclMaps;
}

Fixed version (ground truth):
@Override public Map<ObjectIdentity,Acl> readAclsById(List<ObjectIdentity> oids,List<Sid> sids) throws NotFoundException {
  Map<ObjectIdentity,Acl> aclMaps=new HashMap<ObjectIdentity,Acl>();
  HTableInterface htable=null;
  Result result=null;
  try {
    htable=HBaseConnection.get(hbaseUrl).getTable(aclTableName);
    for (    ObjectIdentity oid : oids) {
      if (aclCache.containsKey(oid)) {
        aclMaps.put(oid,aclCache.get(oid));
      }
 else {
        result=htable.get(new Get(Bytes.toBytes(String.valueOf(oid.getIdentifier()))));
        if (null != result && !result.isEmpty()) {
          SidInfo owner=sidSerializer.deserialize(result.getValue(Bytes.toBytes(ACL_INFO_FAMILY),Bytes.toBytes(ACL_INFO_FAMILY_OWNER_COLUMN)));
          Sid ownerSid=(null == owner) ? null : (owner.isPrincipal() ? new PrincipalSid(owner.getSid()) : new GrantedAuthoritySid(owner.getSid()));
          boolean entriesInheriting=Bytes.toBoolean(result.getValue(Bytes.toBytes(ACL_INFO_FAMILY),Bytes.toBytes(ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN)));
          Acl parentAcl=null;
          DomainObjectInfo parentInfo=domainObjSerializer.deserialize(result.getValue(Bytes.toBytes(ACL_INFO_FAMILY),Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN)));
          if (null != parentInfo) {
            ObjectIdentity parentObj=new ObjectIdentityImpl(parentInfo.getType(),parentInfo.getId());
            parentAcl=readAclById(parentObj,null);
          }
          AclImpl acl=new AclImpl(oid,oid.getIdentifier(),aclAuthorizationStrategy,permissionGrantingStrategy,parentAcl,null,entriesInheriting,ownerSid);
          genAces(sids,result,acl);
          aclMaps.put(oid,acl);
          aclCache.put(oid,acl);
        }
 else {
          throw new NotFoundException("String_Node_Str" + oid + "String_Node_Str");
        }
      }
    }
  }
 catch (  IOException e) {
    logger.error(e.getLocalizedMessage(),e);
  }
 finally {
    IOUtils.closeQuietly(htable);
  }
  return aclMaps;
}