}
public User readUser(String userID) throws InvalidUserException {
Transaction tx = new Transaction();
try {
XMLSerializableAdapter col = getUsersCollection();
User user = (User)userCache.get(userID);
if ( user != null ) {
// Perform access check for cached items
checkAccess(col, Access.READ);
}
else {
user = (User)col.getObject(tx, userID);
if ( user != null )
userCache.put(userID, user);
else
throw new InvalidUserException("User '"+userID+"' doesn't exist");
}