private CommunityAccount accountFromResultSet( Connection con, ResultSet rs ) throws SQLException {
		
		long id = rs.getLong("uid");
		/**
		 * Grab roles from other table. Don't use the wrapper since this is only called 
		 * from process() (i.e., when we already have the lock)
		 */
		PreparedStatement s = con.prepareStatement("SELECT role_id FROM user_roles WHERE uid = ?");
		s.setLong(1, id);
		ResultSet roleSet = s.executeQuery();
		List<Long> roles = new ArrayList<Long>();
		while( roleSet.next() ) { 
			roles.add(roleSet.getLong(1));
		}
		s.close();
		
		String [] converted = new String[roles.size()];
		for( int i=0; i<converted.length; i++ ) { 
			// -1 corrects for SQL 1-based indexing
			converted[i] = UserRole.values()[roles.get(i).intValue()-1].getTag();
//			converted[i] = UserRole.roleForID(roles.get(i).intValue()).getTag();
		}
		
		CommunityAccount out = new CommunityAccount(rs.getString("username"), 
					rs.getString("password_hash"),
					converted, 
					rs.getInt("registered_keys"), 
					rs.getInt("max_registrations"), 
					rs.getLong("uid"));
		
		if( logger.isLoggable(Level.FINEST) ) {
			logger.finest("Converted account: " + out); 
		}
		
		return out;
	}