diff --git a/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/main/rels/ClassWrapper.java b/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/main/rels/ClassWrapper.java index fcc1a5dd0225..55f7dd39ac51 100644 --- a/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/main/rels/ClassWrapper.java +++ b/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/main/rels/ClassWrapper.java @@ -61,6 +61,7 @@ public class ClassWrapper { } int maxSec = Integer.parseInt(DecompilerContext.getProperty(IFernflowerPreferences.MAX_PROCESSING_METHOD).toString()); + boolean testMode = DecompilerContext.getOption(IFernflowerPreferences.UNIT_TEST_MODE); for (StructMethod mt : classStruct.getMethods()) { DecompilerContext.getLogger().startMethod(mt.getName() + " " + mt.getDescriptor()); @@ -83,7 +84,7 @@ public class ClassWrapper { try { if (mt.containsCode()) { - if (maxSec == 0) { + if (maxSec == 0 || testMode) { root = MethodProcessorRunnable.codeToJava(mt, varProc); } else { diff --git a/plugins/java-decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaDecompiler.java b/plugins/java-decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaDecompiler.java index 130acb7ec7da..b67f88b8b1ed 100644 --- a/plugins/java-decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaDecompiler.java +++ b/plugins/java-decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaDecompiler.java @@ -109,6 +109,10 @@ public class IdeaDecompiler extends ClassFileDecompilers.Light { } }); } + + if (app.isUnitTestMode()) { + myOptions.put(IFernflowerPreferences.UNIT_TEST_MODE, "1"); + } } private void showLegalNotice(final Project project, final VirtualFile file) { diff --git a/plugins/java-decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaLogger.java b/plugins/java-decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaLogger.java index c9adb6c7417d..53fe6ed1dbae 100644 --- a/plugins/java-decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaLogger.java +++ b/plugins/java-decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaLogger.java @@ -44,7 +44,8 @@ public class IdeaLogger extends IFernflowerLogger { if (t instanceof InternalException) throw (InternalException)t; else if (t instanceof ProcessCanceledException) throw (ProcessCanceledException)t; else if (t instanceof InterruptedException) throw new ProcessCanceledException(t); - else throw new InternalException(message, t); + if (myClass != null) message = message + " [" + myClass + "]"; + throw new InternalException(message, t); } @Override