From 62eabe352674ef206e19d679e4ab2c345ebb7505 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Fri, 31 Aug 2012 17:00:08 +0400 Subject: [PATCH] EA-38496 - IAE: WorkingContextManager.pack --- .../tasks/context/WorkingContextManager.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/context/WorkingContextManager.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/context/WorkingContextManager.java index bb95333f8a2a..c411c50eb19d 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/context/WorkingContextManager.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/context/WorkingContextManager.java @@ -58,10 +58,9 @@ public class WorkingContextManager { private static final String CONTEXT_ZIP_POSTFIX = ".contexts.zip"; private static final Comparator ENTRY_COMPARATOR = new Comparator() { public int compare(JBZipEntry o1, JBZipEntry o2) { - return (int)(o2.getTime() - o1.getTime()); + return Long.signum(o2.getTime() - o1.getTime()); } }; - private final Object myLock = new Object(); public static WorkingContextManager getInstance(Project project) { return ServiceManager.getService(project, WorkingContextManager.class); @@ -225,17 +224,15 @@ public class WorkingContextManager { private void pack(int max, int delta, String zipPostfix) { try { JBZipFile archive = getTasksArchive(zipPostfix); - synchronized (myLock) { - List entries = archive.getEntries(); - if (entries.size() > max + delta) { - JBZipEntry[] array = entries.toArray(new JBZipEntry[entries.size()]); - Arrays.sort(array, ENTRY_COMPARATOR); - for (int i = array.length - 1; i >= max; i--) { - archive.eraseEntry(array[i]); - } + List entries = archive.getEntries(); + if (entries.size() > max + delta) { + JBZipEntry[] array = entries.toArray(new JBZipEntry[entries.size()]); + Arrays.sort(array, ENTRY_COMPARATOR); + for (int i = array.length - 1; i >= max; i--) { + archive.eraseEntry(array[i]); } - archive.close(); } + archive.close(); } catch (IOException e) { LOG.error(e);