private void copyObjects( final FastBlobStateEngine otherStateEngine, final String serializerName, final int numThreads, final int threadNumber) { FastBlobTypeDeserializationState<?> typeDeserializationState = getTypeDeserializationState(serializerName); int maxOrdinal = typeDeserializationState.maxOrdinal() + 1; if (maxOrdinal < threadNumber) { return; } FastBlobTypeSerializationState<?> typeSerializationState = getTypeSerializationState(serializerName); boolean imageMembershipsFlags[] = new boolean[numberOfConfigurations]; for (int i = threadNumber; i < maxOrdinal; i += numThreads) { Object obj = typeDeserializationState.get(i); if (obj != null) { for (int imageIndex = 0; imageIndex < numberOfConfigurations; imageIndex++) { imageMembershipsFlags[imageIndex] = typeSerializationState.getImageMembershipBitSet(imageIndex).get(i); } otherStateEngine.add( typeSerializationState.getSchema().getName(), obj, FastBlobImageUtils.toLong(imageMembershipsFlags)); } } }