Skip to content

Commit c5782e0

Browse files
committed
Rethink error catch login for CFR
1 parent 1ce7712 commit c5782e0

1 file changed

Lines changed: 30 additions & 32 deletions

File tree

app/src/main/java/com/njlabs/showjava/processor/JavaExtractor.java

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public void extract() {
7373
case "fernflower":
7474
decompileWithFernFlower(jarInputFile, javaOutputDir);
7575
break;
76+
7677
}
7778

7879
}
@@ -83,41 +84,38 @@ private void decompileWithCFR(File jarInputFile, File javaOutputDir){
8384

8485
Options options = null;
8586
try {
86-
options = (Options) getOptParser.parse(args, OptionsImpl.getFactory());
87-
} catch (Exception e) {
88-
Crashlytics.logException(e);
89-
broadcastStatus("exit_process_on_error");
90-
}
91-
92-
if(!options.optionIsSet(OptionsImpl.HELP) && options.getOption(OptionsImpl.FILENAME) != null) {
93-
ClassFileSourceImpl classFileSource = new ClassFileSourceImpl(options);
94-
final DCCommonState dcCommonState = new DCCommonState(options, classFileSource);
95-
final String path = (String)options.getOption(OptionsImpl.FILENAME);
96-
String type = (String)options.getOption(OptionsImpl.ANALYSE_AS);
97-
if(type == null) {
98-
type = dcCommonState.detectClsJar(path);
99-
}
100-
101-
ThreadGroup group = new ThreadGroup("Jar 2 Java Group");
102-
Thread javaExtractionThread = new Thread(group, new Runnable() {
103-
@Override
104-
public void run() {
105-
boolean javaError = false;
106-
try {
107-
Main.doJar(dcCommonState, path);
108-
} catch (Exception | StackOverflowError e) {
109-
Ln.e(e);
110-
javaError = true;
87+
options = getOptParser.parse(args, OptionsImpl.getFactory());
88+
89+
if(!options.optionIsSet(OptionsImpl.HELP) && options.getOption(OptionsImpl.FILENAME) != null) {
90+
ClassFileSourceImpl classFileSource = new ClassFileSourceImpl(options);
91+
final DCCommonState dcCommonState = new DCCommonState(options, classFileSource);
92+
final String path = options.getOption(OptionsImpl.FILENAME);
93+
94+
ThreadGroup group = new ThreadGroup("Jar 2 Java Group");
95+
Thread javaExtractionThread = new Thread(group, new Runnable() {
96+
@Override
97+
public void run() {
98+
boolean javaError = false;
99+
try {
100+
Main.doJar(dcCommonState, path);
101+
} catch (Exception | StackOverflowError e) {
102+
Ln.e(e);
103+
javaError = true;
104+
}
105+
startXMLExtractor(!javaError);
111106
}
112-
startXMLExtractor(!javaError);
113-
}
114-
}, "Jar to Java Thread", processService.STACK_SIZE);
107+
}, "Jar to Java Thread", processService.STACK_SIZE);
115108

116-
javaExtractionThread.setPriority(Thread.MAX_PRIORITY);
117-
javaExtractionThread.setUncaughtExceptionHandler(exceptionHandler);
118-
javaExtractionThread.start();
109+
javaExtractionThread.setPriority(Thread.MAX_PRIORITY);
110+
javaExtractionThread.setUncaughtExceptionHandler(exceptionHandler);
111+
javaExtractionThread.start();
119112

120-
} else {
113+
} else {
114+
broadcastStatus("exit_process_on_error");
115+
}
116+
117+
} catch (Exception e) {
118+
Crashlytics.logException(e);
121119
broadcastStatus("exit_process_on_error");
122120
}
123121

0 commit comments

Comments
 (0)