Program: 951
Project: 951
Buggy source:
@Before public void setup(){
  GameThread.setGameThread();
  AssetManager assetManager=CoreRegistry.put(AssetManager.class,new AssetManager(new ModuleManagerImpl(new ModuleSecurityManager())));
  assetManager.setAssetFactory(AssetType.PREFAB,new AssetFactory<PrefabData,Prefab>(){
    @Override public Prefab buildAsset(    AssetUri uri,    PrefabData data){
      return new PojoPrefab(uri,data);
    }
  }
);
  EntitySystemBuilder builder=new EntitySystemBuilder();
  CoreRegistry.put(ComponentSystemManager.class,mock(ComponentSystemManager.class));
  blockManager=CoreRegistry.put(BlockManager.class,new BlockManagerImpl(mock(WorldAtlas.class),new DefaultBlockFamilyFactoryRegistry()));
  NetworkSystem networkSystem=mock(NetworkSystem.class);
  when(networkSystem.getMode()).thenReturn(NetworkMode.NONE);
  entityManager=builder.build(moduleManager,networkSystem,new ReflectionReflectFactory());
  worldStub=new WorldProviderCoreStub(BlockManager.getAir());
  worldProvider=new EntityAwareWorldProvider(worldStub,entityManager);
  blockWithString=new Block();
  PrefabData prefabData=new PrefabData();
  prefabData.addComponent(new StringComponent("String_Node_Str"));
  Assets.generateAsset(new AssetUri(AssetType.PREFAB,"String_Node_Str"),prefabData,Prefab.class);
  blockWithString.setPrefab("String_Node_Str");
  blockManager.addBlockFamily(new SymmetricFamily(new BlockUri("String_Node_Str"),blockWithString),true);
  blockWithDifferentString=new Block();
  prefabData=new PrefabData();
  prefabData.addComponent(new StringComponent("String_Node_Str"));
  Assets.generateAsset(new AssetUri(AssetType.PREFAB,"String_Node_Str"),prefabData,Prefab.class);
  blockWithDifferentString.setPrefab("String_Node_Str");
  blockManager.addBlockFamily(new SymmetricFamily(new BlockUri("String_Node_Str"),blockWithDifferentString),true);
  blockWithRetainedComponent=new Block();
  prefabData=new PrefabData();
  prefabData.addComponent(new RetainedOnBlockChangeComponent(3));
  Assets.generateAsset(new AssetUri(AssetType.PREFAB,"String_Node_Str"),prefabData,Prefab.class);
  blockWithRetainedComponent.setPrefab("String_Node_Str");
  blockManager.addBlockFamily(new SymmetricFamily(new BlockUri("String_Node_Str"),blockWithRetainedComponent),true);
  blockInFamilyOne=new Block();
  blockInFamilyOne.setKeepActive(true);
  blockInFamilyOne.setPrefab("String_Node_Str");
  blockInFamilyTwo=new Block();
  blockInFamilyTwo.setPrefab("String_Node_Str");
  blockInFamilyTwo.setKeepActive(true);
  blockManager.addBlockFamily(new HorizontalBlockFamily(new BlockUri("String_Node_Str"),ImmutableMap.<Side,Block>of(Side.FRONT,blockInFamilyOne,Side.LEFT,blockInFamilyTwo,Side.RIGHT,blockInFamilyTwo,Side.BACK,blockInFamilyOne),Collections.<String>emptyList()),true);
  keepActiveBlock=new Block();
  keepActiveBlock.setKeepActive(true);
  keepActiveBlock.setPrefab("String_Node_Str");
  blockManager.addBlockFamily(new SymmetricFamily(new BlockUri("String_Node_Str"),keepActiveBlock),true);
  worldProvider.initialise();
}

Fixed version (ground truth):
@Before public void setup(){
  GameThread.setGameThread();
  AssetManager assetManager=CoreRegistry.put(AssetManager.class,new AssetManager(new ModuleManagerImpl(new ModuleSecurityManager())));
  assetManager.setAssetFactory(AssetType.PREFAB,new AssetFactory<PrefabData,Prefab>(){
    @Override public Prefab buildAsset(    AssetUri uri,    PrefabData data){
      return new PojoPrefab(uri,data);
    }
  }
);
  EntitySystemBuilder builder=new EntitySystemBuilder();
  CoreRegistry.put(ComponentSystemManager.class,mock(ComponentSystemManager.class));
  blockManager=CoreRegistry.put(BlockManager.class,new BlockManagerImpl(mock(WorldAtlas.class),new DefaultBlockFamilyFactoryRegistry()));
  NetworkSystem networkSystem=mock(NetworkSystem.class);
  when(networkSystem.getMode()).thenReturn(NetworkMode.NONE);
  entityManager=builder.build(moduleManager,networkSystem,new ReflectionReflectFactory());
  worldStub=new WorldProviderCoreStub(BlockManager.getAir());
  worldProvider=new EntityAwareWorldProvider(worldStub,entityManager);
  plainBlock=new Block();
  blockManager.addBlockFamily(new SymmetricFamily(new BlockUri("String_Node_Str"),plainBlock),true);
  blockWithString=new Block();
  PrefabData prefabData=new PrefabData();
  prefabData.addComponent(new StringComponent("String_Node_Str"));
  Assets.generateAsset(new AssetUri(AssetType.PREFAB,"String_Node_Str"),prefabData,Prefab.class);
  blockWithString.setPrefab("String_Node_Str");
  blockManager.addBlockFamily(new SymmetricFamily(new BlockUri("String_Node_Str"),blockWithString),true);
  blockWithDifferentString=new Block();
  prefabData=new PrefabData();
  prefabData.addComponent(new StringComponent("String_Node_Str"));
  Assets.generateAsset(new AssetUri(AssetType.PREFAB,"String_Node_Str"),prefabData,Prefab.class);
  blockWithDifferentString.setPrefab("String_Node_Str");
  blockManager.addBlockFamily(new SymmetricFamily(new BlockUri("String_Node_Str"),blockWithDifferentString),true);
  blockWithRetainedComponent=new Block();
  prefabData=new PrefabData();
  prefabData.addComponent(new RetainedOnBlockChangeComponent(3));
  Assets.generateAsset(new AssetUri(AssetType.PREFAB,"String_Node_Str"),prefabData,Prefab.class);
  blockWithRetainedComponent.setPrefab("String_Node_Str");
  blockManager.addBlockFamily(new SymmetricFamily(new BlockUri("String_Node_Str"),blockWithRetainedComponent),true);
  blockInFamilyOne=new Block();
  blockInFamilyOne.setKeepActive(true);
  blockInFamilyOne.setPrefab("String_Node_Str");
  blockInFamilyTwo=new Block();
  blockInFamilyTwo.setPrefab("String_Node_Str");
  blockInFamilyTwo.setKeepActive(true);
  blockManager.addBlockFamily(new HorizontalBlockFamily(new BlockUri("String_Node_Str"),ImmutableMap.<Side,Block>of(Side.FRONT,blockInFamilyOne,Side.LEFT,blockInFamilyTwo,Side.RIGHT,blockInFamilyTwo,Side.BACK,blockInFamilyOne),Collections.<String>emptyList()),true);
  keepActiveBlock=new Block();
  keepActiveBlock.setKeepActive(true);
  keepActiveBlock.setPrefab("String_Node_Str");
  blockManager.addBlockFamily(new SymmetricFamily(new BlockUri("String_Node_Str"),keepActiveBlock),true);
  worldProvider.initialise();
}