public synchronized <T> FieldIndex<T> createRandomAccessFieldIndex(
			Class type, String[] fieldNames, boolean unique,
			boolean caseInsensitive) {
		if (!opened) {
			throw new StorageError(StorageError.STORAGE_NOT_OPENED);
		}

		FieldIndex<T> index = caseInsensitive ? (FieldIndex) new RndBtreeCaseInsensitiveMultiFieldIndex(
				type, fieldNames, unique)
				: (FieldIndex) new RndBtreeMultiFieldIndex(type, fieldNames,
						unique);
		index.assignOid(this, 0, false);
		return index;
	}