FuturePut futurePut = peers[peerStore1].put(key1).requestP2PConfiguration(REQUEST_3)
.data(new Data("Test 2")).start();
futurePut.awaitUninterruptibly();
System.out.println("stored [Test 2] on " + futurePut.rawResult().keySet());
FutureGet futureGet = peers[peerGet].get(key1).all().start();
futureGet.awaitUninterruptibly();
System.out.println("peer[" + peerGet + "] got [" + futureGet.data().object() + "] should be [Test 2]");
// peer 11 and 8 joins again
peers[peerOffline1] = new PeerBuilderDHT(new PeerBuilder(peers[peerOffline1].peerID()).masterPeer(peers[0].peer()).start()).start();
peers[peerOffline2] = new PeerBuilderDHT(new PeerBuilder(peers[peerOffline2].peerID()).masterPeer(peers[0].peer()).start()).start();
peers[peerOffline3] = new PeerBuilderDHT(new PeerBuilder(peers[peerOffline3].peerID()).masterPeer(peers[0].peer()).start()).start();
peers[peerOffline1].peer().bootstrap().peerAddress(peers[0].peerAddress()).start().awaitUninterruptibly();
peers[peerOffline2].peer().bootstrap().peerAddress(peers[0].peerAddress()).start().awaitUninterruptibly();
peers[peerOffline3].peer().bootstrap().peerAddress(peers[0].peerAddress()).start().awaitUninterruptibly();
// load old data
System.out.println("The 3 peers are now onlyne again, with the old data");
Number640 key = new Number640(key1, Number160.ZERO, Number160.ZERO, Number160.ZERO);
peers[peerOffline1].storageLayer()
.put(key, new Data("Test 1"), null, false, false);
peers[peerOffline2].storageLayer()
.put(key, new Data("Test 1"), null, false, false);
peers[peerOffline3].storageLayer()
.put(key, new Data("Test 1"), null, false, false);
// we got Test 1
FutureGet futureGet2 = peers[0].get(key1).requestP2PConfiguration(REQUEST_3).all().start();
futureGet2.awaitUninterruptibly();
System.out.println("peer[0] got [" + futureGet2.data().object() + "] should be [Test 2]");
// we got Test 1!
FutureGet futureGet3 = peers[peerGet].get(key1).requestP2PConfiguration(REQUEST_3).all().start();
futureGet3.awaitUninterruptibly();
System.out.println("peer[" + peerGet + "] got [" + futureGet3.data().object() + "] should be [Test 2]");
}