mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 16:06:15 +00:00
Refine error message in JythonModuleLoader
This commit is contained in:
parent
7df48651a1
commit
7c9db8bbb5
@ -24,6 +24,7 @@ import java.io.FilenameFilter;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
import java.util.logging.Level;
|
||||||
import org.openide.DialogDisplayer;
|
import org.openide.DialogDisplayer;
|
||||||
import org.openide.NotifyDescriptor;
|
import org.openide.NotifyDescriptor;
|
||||||
import org.python.util.PythonInterpreter;
|
import org.python.util.PythonInterpreter;
|
||||||
@ -62,7 +63,15 @@ public final class JythonModuleLoader {
|
|||||||
String line = fileScanner.nextLine();
|
String line = fileScanner.nextLine();
|
||||||
if (line.startsWith("class ") && (line.contains("IngestModuleFactoryAdapter") || line.contains("IngestModuleFactory"))) {
|
if (line.startsWith("class ") && (line.contains("IngestModuleFactoryAdapter") || line.contains("IngestModuleFactory"))) {
|
||||||
String className = line.substring(6, line.indexOf("("));
|
String className = line.substring(6, line.indexOf("("));
|
||||||
|
try {
|
||||||
factories.add((IngestModuleFactory) createObjectFromScript(script, className, IngestModuleFactory.class));
|
factories.add((IngestModuleFactory) createObjectFromScript(script, className, IngestModuleFactory.class));
|
||||||
|
} catch (Exception ex) {
|
||||||
|
// RJCTODO: Improve
|
||||||
|
String msg = String.format("Failed to load %s from %s", className, script.getName());
|
||||||
|
logger.log(Level.SEVERE, msg, ex);
|
||||||
|
msg += ", see log for details";
|
||||||
|
DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(msg, NotifyDescriptor.ERROR_MESSAGE));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (FileNotFoundException ex) {
|
} catch (FileNotFoundException ex) {
|
||||||
@ -75,18 +84,10 @@ public final class JythonModuleLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static Object createObjectFromScript(File script, String className, Class clazz) {
|
private static Object createObjectFromScript(File script, String className, Class clazz) {
|
||||||
try {
|
|
||||||
PythonInterpreter interpreter = new PythonInterpreter(); // RJCTODO: Does a new one need to be created each time?
|
PythonInterpreter interpreter = new PythonInterpreter(); // RJCTODO: Does a new one need to be created each time?
|
||||||
interpreter.execfile(script.getAbsolutePath());
|
interpreter.execfile(script.getAbsolutePath());
|
||||||
interpreter.exec("obj = " + className + "()");
|
interpreter.exec("obj = " + className + "()");
|
||||||
return interpreter.get("obj", clazz);
|
return interpreter.get("obj", clazz);
|
||||||
} catch (Exception ex) {
|
|
||||||
// RJCTODO: Do error different handling
|
|
||||||
// Jython exceptions apparently don't support getMessage()
|
|
||||||
DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(ex.toString(), NotifyDescriptor.ERROR_MESSAGE));
|
|
||||||
return null;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class PythonScriptFileFilter implements FilenameFilter {
|
private static class PythonScriptFileFilter implements FilenameFilter {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user