IDEA-132625 (decompiler time limit)

master
Roman Shevchenko 10 years ago
parent 52a7e1c7e9
commit 3940565598
  1. 2
      src/org/jetbrains/java/decompiler/main/rels/ClassWrapper.java
  2. 17
      src/org/jetbrains/java/decompiler/main/rels/MethodProcessorRunnable.java

@ -94,7 +94,7 @@ public class ClassWrapper {
mtThread.start();
while (mtThread.isAlive()) {
while (!mtProc.isFinished()) {
synchronized (mtProc.lock) {
mtProc.lock.wait(100);
}

@ -41,6 +41,7 @@ public class MethodProcessorRunnable implements Runnable {
private volatile RootStatement root;
private volatile Throwable error;
private volatile boolean finished = false;
public MethodProcessorRunnable(StructMethod method, VarProcessor varProc, DecompilerContext parentContext) {
this.method = method;
@ -57,10 +58,6 @@ public class MethodProcessorRunnable implements Runnable {
try {
root = codeToJava(method, varProc);
synchronized (lock) {
lock.notifyAll();
}
}
catch (ThreadDeath ex) {
throw ex;
@ -68,6 +65,14 @@ public class MethodProcessorRunnable implements Runnable {
catch (Throwable ex) {
error = ex;
}
finally {
DecompilerContext.setCurrentContext(null);
}
finished = true;
synchronized (lock) {
lock.notifyAll();
}
}
public static RootStatement codeToJava(StructMethod mt, VarProcessor varProc) throws IOException {
@ -206,7 +211,7 @@ public class MethodProcessorRunnable implements Runnable {
return root;
}
public Throwable getError() {
return error;
public boolean isFinished() {
return finished;
}
}

Loading…
Cancel
Save