if (type == Role.USER || type == Role.GROUP) {
if (type == org.osgi.service.useradmin.Role.USER || type == org.osgi.service.useradmin.Role.GROUP) {
	protected void loadRole(Preferences node, Role role) throws BackingStoreException {		int type = node.getInt(typeString, Integer.MIN_VALUE);		if (type == Integer.MIN_VALUE) {			String errorString = NLS.bind(UserAdminMsg.Backing_Store_Read_Exception, new Object[] {NLS.bind(UserAdminMsg.Unable_to_load_role__27, node.name())});			BackingStoreException ex = new BackingStoreException(errorString);			log.log(log.LOG_ERROR, errorString, ex);			throw (ex);		}		if (role == null) {			role = (Role) useradmin.createRole(node.name(), type, false);		}		Preferences propsNode = node.node(propertiesNode);		String[] keys = propsNode.keys();		UserAdminHashtable properties = (UserAdminHashtable) role.getProperties();		String value;		//load properties		for (int i = 0; i < keys.length; i++) {			value = propsNode.get(keys[i], null);			properties.put(keys[i], value, false);		}		//load credentials		if (type == Role.USER || type == Role.GROUP) {			Object credValue;			Preferences credNode = node.node(credentialsNode);			keys = credNode.keys();			UserAdminHashtable credentials = (UserAdminHashtable) ((User) role).getCredentials();			for (int i = 0; i < keys.length; i++) {				credValue = credNode.get(keys[i], null);				credentials.put(keys[i], credValue, false);			}		}		//load group members		if (type == Role.GROUP) {			Preferences memberNode = node.node(membersNode);			keys = memberNode.keys();			for (int i = 0; i < keys.length; i++) {				value = memberNode.get(keys[i], null);				Role member = (Role) useradmin.getRole(keys[i]);				if (member == null) //then we have not loaded this one yet, so load it				{					loadRole(rootNode.node(keys[i]), null); // modified to solve defect 95982					member = (Role) useradmin.getRole(keys[i]);				}				if (value.equals(requiredString)) {					((Group) role).addRequiredMember(member, false);				} else {					((Group) role).addMember(member, false);				}			}		}	}