From 677303b39aa5d526f3e8623cdcf6cff74ed3408f Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Fri, 13 Jul 2012 13:47:27 +0200 Subject: [PATCH] IDEA-88779 java.lang.IndexOutOfBoundsException: queue is empty --- .../testSrc/org/jetbrains/ether/StorageDumper.java | 4 +++- .../src/com/intellij/openapi/project/DumbServiceImpl.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/StorageDumper.java b/jps/jps-builders/testSrc/org/jetbrains/ether/StorageDumper.java index 21fd56336451..dec30170dbce 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/ether/StorageDumper.java +++ b/jps/jps-builders/testSrc/org/jetbrains/ether/StorageDumper.java @@ -1,5 +1,6 @@ package org.jetbrains.ether; +import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.ether.dependencyView.Mappings; import java.io.File; @@ -118,8 +119,9 @@ public class StorageDumper { } else { try { - final String outputPath = (oath == null ? "" : oath) + File.separator + "snapshot-" + new SimpleDateFormat("dd-MM-yy(hh:mm:ss)").format(new Date()) + ".log"; + final File outputPath = new File(oath == null ? "" : oath, "snapshot-" + new SimpleDateFormat("dd-MM-yy(hh-mm-ss)").format(new Date()) + ".log"); final File dataStorageRoot = new File(path + File.separator + "mappings"); + FileUtil.createIfDoesntExist(outputPath); final Mappings mappings = new Mappings(dataStorageRoot, true); final PrintStream p = new PrintStream(outputPath); diff --git a/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java b/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java index 76797c6f7201..0d7fc2e1d4d7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java @@ -364,7 +364,7 @@ public class DumbServiceImpl extends DumbService { public void run() { IndexUpdateRunnable nextUpdateRunnable = null; try { - nextUpdateRunnable = myUpdatesQueue.pullFirst(); + nextUpdateRunnable = myUpdatesQueue.isEmpty()? null : myUpdatesQueue.pullFirst(); if (nextUpdateRunnable == null) { // really terminate the task myActionQueue.offer(NULL_ACTION);