Mercurial > hg > Database > jungle-network
diff src/jungle/test/bbs/NetworkJungleBulletinBoard.java @ 56:ccfe9b5e8f11
bug LogUpdateCodeSegment
author | one |
---|---|
date | Sun, 14 Jul 2013 21:26:49 +0900 |
parents | 61b2de3f7730 |
children | 1bfd13f831ea |
line wrap: on
line diff
--- a/src/jungle/test/bbs/NetworkJungleBulletinBoard.java Sun Jul 14 17:23:48 2013 +0900 +++ b/src/jungle/test/bbs/NetworkJungleBulletinBoard.java Sun Jul 14 21:26:49 2013 +0900 @@ -2,6 +2,7 @@ import java.io.IOException; import java.nio.ByteBuffer; +import java.util.Date; import java.util.concurrent.atomic.AtomicInteger; import alice.jungle.codesegment.HashLogUpdateCodeSegment; @@ -77,9 +78,10 @@ if(result.isA()){ throw new IllegalStateException(); } + final long timestamp = new Date().getTime(); /* Put DataSegment */ try { - putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor); + putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, timestamp); } catch (IOException e1) { e1.printStackTrace(); } @@ -97,6 +99,8 @@ _e = _e.getAttributes().put("author",ByteBuffer.wrap(_author.getBytes())).b(); _e = _e.getAttributes().put("mes",ByteBuffer.wrap(_initMessage.getBytes())).b(); _e = _e.getAttributes().put("key",ByteBuffer.wrap(_editKey.getBytes())).b(); + ByteBuffer tBuffer = ByteBuffer.allocate(16); + _e = _e.getAttributes().put("timestamp",tBuffer.putLong(timestamp)).b(); return DefaultEither.newB(_e); } }; @@ -109,7 +113,7 @@ editor.success(); /* Put DataSegment */ try { - putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor); + putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, timestamp); } catch (IOException e1) { e1.printStackTrace(); } @@ -136,11 +140,14 @@ throw new IllegalStateException(); } editor = either.b(); + final long timestamp = new Date().getTime(); NodeEditor e = new NodeEditor(){ public <T extends EditableNode<T>> Either<Error, T> edit(T _e){ _e = _e.getAttributes().put("author",ByteBuffer.wrap(_author.getBytes())).b(); _e = _e.getAttributes().put("mes",ByteBuffer.wrap(_message.getBytes())).b(); _e = _e.getAttributes().put("key",ByteBuffer.wrap(_editKey.getBytes())).b(); + ByteBuffer tBuffer = ByteBuffer.allocate(16); + _e = _e.getAttributes().put("timestamp",tBuffer.putLong(timestamp)).b(); return DefaultEither.newB(_e); } }; @@ -152,7 +159,7 @@ editor = either.b(); either = editor.success(); try { - putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor); + putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, timestamp); } catch (IOException e1) { e1.printStackTrace(); } @@ -170,11 +177,14 @@ JungleTree tree = jungle.getTreeByName(_board); editor = tree.getTreeEditor(); + final long timestamp = new Date().getTime(); NodeEditor e = new NodeEditor(){ public <T extends EditableNode<T>> Either<Error, T> edit(T _e){ _e = _e.getAttributes().put("author",ByteBuffer.wrap(_author.getBytes())).b(); _e = _e.getAttributes().put("mes",ByteBuffer.wrap(_message.getBytes())).b(); _e = _e.getAttributes().put("key",ByteBuffer.wrap(_editKey.getBytes())).b(); + ByteBuffer tBuffer = ByteBuffer.allocate(16); + _e = _e.getAttributes().put("timestamp",tBuffer.putLong(timestamp)).b(); return DefaultEither.newB(_e); } }; @@ -186,7 +196,7 @@ editor = either.b(); either = editor.success(); try { - putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor); + putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, timestamp); } catch (IOException e1) { e1.printStackTrace(); } @@ -213,27 +223,28 @@ return new IterableConverter<BoardMessage,Node>(chs,converter); } - private void putTreeOperationLog(NetworkDefaultJungleTreeEditor editor) throws IOException { + private void putTreeOperationLog(NetworkDefaultJungleTreeEditor editor, long timestamp) throws IOException { String uuid = editor.getID(); String treeName = editor.getTreeName(); String updaterName = editor.getUpdaterName(); String revision = editor.getRevision(); Iterable<TreeOperation> log = editor.getTreeOperationLog(); - putDataSegment(uuid, treeName, updaterName, log, revision); + putDataSegment(uuid, treeName, updaterName, log, revision, timestamp); } - private void putDataSegment(String _uuid, String _treeName, String _updaterName, Iterable<TreeOperation> _log, String nextRevision) throws IOException { + private void putDataSegment(String _uuid, String _treeName, String _updaterName, Iterable<TreeOperation> _log, String nextRevision, long timestamp) throws IOException { DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer(); container.setTreeName(_treeName); container.setUUID(_uuid); container.setUpdaterName(_updaterName); container.setRevision(nextRevision); container.unconvert(_log); - NullCodeSegmentForUpdate cs = new NullCodeSegmentForUpdate(); + container.setTimeStamp(timestamp); + HashLogUpdateCodeSegment cs = new HashLogUpdateCodeSegment(); + container.getHashLogString(); cs.ods.put("log", container); - new HashLogUpdateCodeSegment(container.getHashLogString()); - System.out.println("putDataSegment"); - System.out.println(container.getHashLogString()); + cs.ods.put("logString", container.getHashLogString()); + System.out.println("putDataSegment : "+container.getHashLogString()); /* If this node is not Root node, push log to parent node's DS */ if(!_updaterName.equals("node0")) { cs.ods.put("parent", "childLog", container);