summaryrefslogtreecommitdiff
path: root/java/compiler
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2013-05-06 10:36:42 -0700
committerTor Norbye <tnorbye@google.com>2013-05-06 10:36:42 -0700
commitf56a0fff1a336635c966bffc25e16af9a4e6e988 (patch)
tree19e53b8f61e9fc94d35d5d6d97cc1499cad1cc59 /java/compiler
parent8fb0021093e7d978cc06043ba4c06b0a47778294 (diff)
downloadidea-f56a0fff1a336635c966bffc25e16af9a4e6e988.tar.gz
Snapshot 36a7a0702ddda30083713c9b8f140495d5f09d32 from master branch of git://git.jetbrains.org/idea/community.git
Change-Id: Ia9068e36d373808400a123a395b037bdb6940a17
Diffstat (limited to 'java/compiler')
-rw-r--r--java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerPersistentData.java49
1 files changed, 28 insertions, 21 deletions
diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerPersistentData.java b/java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerPersistentData.java
index 513be6c798f4..86c6803d6977 100644
--- a/java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerPersistentData.java
+++ b/java/compiler/impl/src/com/intellij/compiler/impl/generic/GenericCompilerPersistentData.java
@@ -16,6 +16,7 @@
package com.intellij.compiler.impl.generic;
import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.io.IOUtil;
import gnu.trove.TIntHashSet;
import org.jetbrains.annotations.NotNull;
@@ -46,32 +47,38 @@ public class GenericCompilerPersistentData {
return;
}
- DataInputStream input = new DataInputStream(new BufferedInputStream(new FileInputStream(myFile)));
try {
- final int dataVersion = input.readInt();
- if (dataVersion != VERSION) {
- LOG.info("Version of compiler info file (" + myFile.getAbsolutePath() + ") changed: " + dataVersion + " -> " + VERSION);
- myVersionChanged = true;
- return;
- }
+ DataInputStream input = new DataInputStream(new BufferedInputStream(new FileInputStream(myFile)));
+ try {
+ final int dataVersion = input.readInt();
+ if (dataVersion != VERSION) {
+ LOG.info("Version of compiler info file (" + myFile.getAbsolutePath() + ") changed: " + dataVersion + " -> " + VERSION);
+ myVersionChanged = true;
+ return;
+ }
- final int savedCompilerVersion = input.readInt();
- if (savedCompilerVersion != compilerVersion) {
- LOG.info("Compiler caches version changed (" + myFile.getAbsolutePath() + "): " + savedCompilerVersion + " -> " + compilerVersion);
- myVersionChanged = true;
- return;
- }
+ final int savedCompilerVersion = input.readInt();
+ if (savedCompilerVersion != compilerVersion) {
+ LOG.info("Compiler caches version changed (" + myFile.getAbsolutePath() + "): " + savedCompilerVersion + " -> " + compilerVersion);
+ myVersionChanged = true;
+ return;
+ }
- int size = input.readInt();
- while (size-- > 0) {
- final String target = IOUtil.readString(input);
- final int id = input.readInt();
- myTarget2Id.put(target, id);
- myUsedIds.add(id);
+ int size = input.readInt();
+ while (size-- > 0) {
+ final String target = IOUtil.readString(input);
+ final int id = input.readInt();
+ myTarget2Id.put(target, id);
+ myUsedIds.add(id);
+ }
+ }
+ finally {
+ input.close();
}
}
- finally {
- input.close();
+ catch (IOException e) {
+ FileUtil.delete(myFile);
+ throw e;
}
}