project leak 3
authorAlexey Kudravtsev <cdr@intellij.com>
Fri, 2 Jul 2010 15:18:30 +0000 (19:18 +0400)
committerAlexey Kudravtsev <cdr@intellij.com>
Mon, 5 Jul 2010 10:08:14 +0000 (14:08 +0400)
plugins/git4idea/src/git4idea/history/GitUsersComponent.java

index 8c289b6197f58bbf2614499dd2f934580ddf1a18..ff3d4a7ed80d9ab8a959c83900f5d0afb57af2cc 100644 (file)
@@ -48,11 +48,11 @@ import java.io.IOException;
 import java.util.*;
 
 public class GitUsersComponent {
-  private final static int ourPackSize = 50;
+  private static final int ourPackSize = 50;
   private static final int ourBackInterval = 60 * 1000;
   private static final int ourForwardInterval = 100 * 60 * 1000;
   
-  private final static Logger LOG = Logger.getInstance("#git4idea.history.GitUsersComponent");
+  private static final Logger LOG = Logger.getInstance("#git4idea.history.GitUsersComponent");
 
   private final Object myLock;
   private PersistentHashMap<String, UsersData> myState;
@@ -60,8 +60,8 @@ public class GitUsersComponent {
 
   // activate-deactivate
   private volatile boolean myIsActive;
-  private ControlledCycle myControlledCycle;
-  private VcsListener myVcsListener;
+  private final ControlledCycle myControlledCycle;
+  private final VcsListener myVcsListener;
   private final GitVcs myVcs;
   private final ProjectLevelVcsManager myManager;
   private final File myFile;
@@ -181,48 +181,11 @@ public class GitUsersComponent {
     myIsActive = false;
   }
 
-  private DataExternalizer<UsersData> createExternalizer() {
-    return new DataExternalizer<UsersData>() {
-      public void save(DataOutput out, UsersData value) throws IOException {
-        final UpdatedReference<Long> closer = value.getCloserDate();
-        out.writeLong(closer.getT());
-        out.writeLong(closer.getTime());
-
-        final UpdatedReference<Long> earlier = value.getEarlierDate();
-        out.writeLong(earlier.getT());
-        out.writeLong(earlier.getTime());
-
-        final List<String> users = value.getUsers();
-        out.writeInt(users.size());
-        for (String user : users) {
-          out.writeUTF(user);
-        }
-
-        out.writeBoolean(value.isStartReached());
-      }
-
-      public UsersData read(DataInput in) throws IOException {
-        final UsersData data = new UsersData();
-        final long closerDate = in.readLong();
-        final long closerUpdate = in.readLong();
-        data.setCloserDate(new UpdatedReference<Long>(closerDate, closerUpdate));
-        final long earlierDate = in.readLong();
-        final long earlierUpdate = in.readLong();
-        data.setEarlierDate(new UpdatedReference<Long>(earlierDate, earlierUpdate));
-
-        final List<String> users = new LinkedList<String>();
-        final int size = in.readInt();
-        for (int i = 0; i < size; i++) {
-          users.add(in.readUTF());
-        }
-        data.addUsers(users);
-        data.setStartReached(in.readBoolean());
-        return data;
-      }
-    };
+  private static DataExternalizer<UsersData> createExternalizer() {
+    return new UsersDataExternalizer();
   }
 
-  private class UsersData {
+  private static class UsersData {
     private UpdatedReference<Long> myCloserDate;
     private UpdatedReference<Long> myEarlierDate;
     private final List<String> myUsers;
@@ -279,7 +242,7 @@ public class GitUsersComponent {
       try {
         final Set<String> newData = new HashSet<String>();
         boolean result = false;
-        if ((! myStartReached) && (myForceUpdate || myEarlierDate.isTimeToUpdate(ourBackInterval))) {
+        if (!myStartReached && (myForceUpdate || myEarlierDate.isTimeToUpdate(ourBackInterval))) {
           result = true;
           lookBack(lowLevelAccess, newData, atomicSectionsAware);
         }
@@ -354,4 +317,43 @@ public class GitUsersComponent {
       }
     }
   }
+
+  private static class UsersDataExternalizer implements DataExternalizer<UsersData> {
+    public void save(DataOutput out, UsersData value) throws IOException {
+      final UpdatedReference<Long> closer = value.getCloserDate();
+      out.writeLong(closer.getT());
+      out.writeLong(closer.getTime());
+
+      final UpdatedReference<Long> earlier = value.getEarlierDate();
+      out.writeLong(earlier.getT());
+      out.writeLong(earlier.getTime());
+
+      final List<String> users = value.getUsers();
+      out.writeInt(users.size());
+      for (String user : users) {
+        out.writeUTF(user);
+      }
+
+      out.writeBoolean(value.isStartReached());
+    }
+
+    public UsersData read(DataInput in) throws IOException {
+      final UsersData data = new UsersData();
+      final long closerDate = in.readLong();
+      final long closerUpdate = in.readLong();
+      data.setCloserDate(new UpdatedReference<Long>(closerDate, closerUpdate));
+      final long earlierDate = in.readLong();
+      final long earlierUpdate = in.readLong();
+      data.setEarlierDate(new UpdatedReference<Long>(earlierDate, earlierUpdate));
+
+      final List<String> users = new LinkedList<String>();
+      final int size = in.readInt();
+      for (int i = 0; i < size; i++) {
+        users.add(in.readUTF());
+      }
+      data.addUsers(users);
+      data.setStartReached(in.readBoolean());
+      return data;
+    }
+  }
 }