@ -275,7 +275,7 @@ public final class BasicLookupStrategy implements LookupStrategy {
@@ -275,7 +275,7 @@ public final class BasicLookupStrategy implements LookupStrategy {
Stringsql=computeRepeatingSql("(ACL_OBJECT_IDENTITY.OBJECT_ID_IDENTITY = ? and ACL_CLASS.CLASS = ?)",
objectIdentities.length);
jdbcTemplate.query(sql,
SetparentsToLookup=(Set)jdbcTemplate.query(sql,
newPreparedStatementSetter(){
publicvoidsetValues(PreparedStatementps)
throwsSQLException{
@ -293,6 +293,11 @@ public final class BasicLookupStrategy implements LookupStrategy {
@@ -293,6 +293,11 @@ public final class BasicLookupStrategy implements LookupStrategy {
}
}
},newProcessResultSet(acls,sids));
// Lookup the parents, now that our JdbcTemplate has released the database connection (SEC-547)
if(parentsToLookup.size()>0){
lookupPrimaryKeys(acls,parentsToLookup,sids);
}
// Finally, convert our "acls" containing StubAclParents into true Acls
MapresultMap=newHashMap();
@ -324,7 +329,7 @@ public final class BasicLookupStrategy implements LookupStrategy {
@@ -324,7 +329,7 @@ public final class BasicLookupStrategy implements LookupStrategy {
@ -337,6 +342,11 @@ public final class BasicLookupStrategy implements LookupStrategy {
@@ -337,6 +342,11 @@ public final class BasicLookupStrategy implements LookupStrategy {
}
}
},newProcessResultSet(acls,sids));
// Lookup the parents, now that our JdbcTemplate has released the database connection (SEC-547)
if(parentsToLookup.size()>0){
lookupPrimaryKeys(acls,parentsToLookup,sids);
}
}
/**
@ -428,6 +438,17 @@ public final class BasicLookupStrategy implements LookupStrategy {
@@ -428,6 +438,17 @@ public final class BasicLookupStrategy implements LookupStrategy {
SetparentIdsToLookup=newHashSet();// Set of parent_id Longs
@ -457,13 +478,8 @@ public final class BasicLookupStrategy implements LookupStrategy {
@@ -457,13 +478,8 @@ public final class BasicLookupStrategy implements LookupStrategy {
}
}
// Lookup parents, adding Acls (with StubAclParents) to "acl" map
if(parentIdsToLookup.size()>0){
lookupPrimaryKeys(acls,parentIdsToLookup,sids);
}
// Return null to meet ResultSetExtractor method contract
returnnull;
// Return the parents left to lookup to the calller