# HG changeset patch # User Nobuyasu Oshiro # Date 1390868199 -32400 # Node ID 202ea963ec2014db9b3f038b0b7424306f620c43 # Parent 29734d7d6521c5b955f58426a087a1e7fb6f8a3d Added requestCounter in BulletinBoardJungleManager diff -r 29734d7d6521 -r 202ea963ec20 src/main/java/app/bbs/BulletinBoardJungleManager.java --- a/src/main/java/app/bbs/BulletinBoardJungleManager.java Tue Jan 28 08:47:45 2014 +0900 +++ b/src/main/java/app/bbs/BulletinBoardJungleManager.java Tue Jan 28 09:16:39 2014 +0900 @@ -2,8 +2,8 @@ import java.nio.ByteBuffer; import java.util.Date; +import java.util.concurrent.atomic.AtomicInteger; -import javax.naming.directory.Attribute; import alice.jungle.operations.NetworkTreeOperationLog; import alice.jungle.transaction.JungleUpdater; @@ -11,8 +11,6 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; @@ -23,11 +21,20 @@ public class BulletinBoardJungleManager { private static BulletinBoardJungleManager instance = new BulletinBoardJungleManager(); private Jungle jungle; + private static AtomicInteger requestCounter = new AtomicInteger(0); private BulletinBoardJungleManager() { jungle = new DefaultJungle(null,"default",new DefaultTreeEditor(new DefaultTraverser())); } + public static int requestGetAndIncrement() { + return requestCounter.getAndIncrement(); + } + + public static int requestIncrementAndGet() { + return requestCounter.incrementAndGet(); + } + public static BulletinBoardJungleManager getInstantce() { return instance; } @@ -35,6 +42,9 @@ public static void setJungle(Jungle _j) { instance.jungle = _j; } + public static AtomicInteger getRequestCounter() { + return requestCounter; + } public static Jungle getJungle() { return instance.jungle; @@ -52,8 +62,6 @@ throw new IllegalStateException(); } } - - Either either = null; JungleTree tree = jungle.getTreeByName(treeName); @@ -73,6 +81,7 @@ }while(either.isA()); renewBoardTimeStamp(tree); + requestCounter.incrementAndGet(); return either; } @@ -86,10 +95,12 @@ Either either = null; do { either = editor.putAttribute(root, "renewtime", tBuffer); + if(either.isA()) { + throw new IllegalStateException(); + } editor = either.b(); either = editor.success(); }while(either.isA()); - } private static int calculatePosition(Node node, long newNodeTimeStamp) { diff -r 29734d7d6521 -r 202ea963ec20 src/main/java/app/bbs/NetworkJungleBulletinBoard.java --- a/src/main/java/app/bbs/NetworkJungleBulletinBoard.java Tue Jan 28 08:47:45 2014 +0900 +++ b/src/main/java/app/bbs/NetworkJungleBulletinBoard.java Tue Jan 28 09:16:39 2014 +0900 @@ -35,7 +35,7 @@ private final NetworkJournal journal; private final String LOG_DIR; private Boolean persistentFlag; - private AtomicInteger requestCounter = new AtomicInteger(0); + private AtomicInteger requestCounter; private NetworkJungleBulletinBoard(String _uuid, NetworkJournal _journal) { @@ -43,6 +43,7 @@ jungle = new NetworkDefaultJungle(journal, _uuid,new DefaultTreeEditor(new DefaultTraverser())); BulletinBoardJungleManager.setJungle(jungle); persistentFlag = false; + requestCounter = BulletinBoardJungleManager.getRequestCounter(); LOG_DIR = "./log"; } @@ -202,7 +203,10 @@ throw new IllegalStateException(); } either.b().success(); - + + /* + * Record latest renew time + */ editor = tree.getLocalTreeEditor(); either = editor.putAttribute(root, "renewtime", tBuffer); either.b().success();