Merge branch 'new-features-20120503' of github.com:sleuthkit/autopsy into new-features-20120503

This commit is contained in:
Dick Fickling 2012-06-04 10:48:02 -04:00
commit cf8bd66e24
9 changed files with 76 additions and 47 deletions

View File

@ -46,7 +46,7 @@
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="crDbProgressBar" min="-2" pref="24" max="-2" attributes="1"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="progressLabel" min="-2" pref="12" max="-2" attributes="0"/>
<Component id="progressLabel" pref="12" max="32767" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>

View File

@ -85,7 +85,7 @@ final class AddImageVisualPanel2 extends JPanel {
org.openide.awt.Mnemonics.setLocalizedText(jLabel5, org.openide.util.NbBundle.getMessage(AddImageVisualPanel2.class, "AddImageVisualPanel2.jLabel5.text")); // NOI18N
crDbLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
crDbLabel.setFont(new java.awt.Font("Tahoma", 1, 14));
org.openide.awt.Mnemonics.setLocalizedText(crDbLabel, org.openide.util.NbBundle.getMessage(AddImageVisualPanel2.class, "AddImageVisualPanel2.crDbLabel.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(progressLabel, org.openide.util.NbBundle.getMessage(AddImageVisualPanel2.class, "AddImageVisualPanel2.progressLabel.text")); // NOI18N
@ -104,7 +104,7 @@ final class AddImageVisualPanel2 extends JPanel {
.addComponent(crDbLabel)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 552, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(0, 0, Short.MAX_VALUE))
.addGap(0, 16, Short.MAX_VALUE))
.addComponent(crDbProgressBar, javax.swing.GroupLayout.DEFAULT_SIZE, 568, Short.MAX_VALUE)
.addComponent(progressLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 568, Short.MAX_VALUE))
.addContainerGap())
@ -121,7 +121,7 @@ final class AddImageVisualPanel2 extends JPanel {
.addGap(18, 18, 18)
.addComponent(crDbProgressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(progressLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 12, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(progressLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 12, Short.MAX_VALUE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents

View File

@ -227,6 +227,8 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
private Case currentCase;
// true if the process was requested to stop
private boolean interrupted = false;
private boolean hasCritError = false;
private String errorString = null;
protected AddImgTask() {
this.progressBar = getComponent().getCrDbProgressBar();
@ -242,6 +244,7 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
@Override
protected Integer doInBackground() {
this.setProgress(0);
// Add a cleanup task to interupt the backgroud process if the
// wizard exits while the background process is running.
@ -249,7 +252,8 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
@Override
void cleanup() throws Exception {
addImageTask.interrupt();
logger.log(Level.INFO, "Add image process interrupted.");
addImageTask.interrupt(); //it might take time to truly interrupt
}
};
@ -281,11 +285,11 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
} catch (TskCoreException ex) {
logger.log(Level.WARNING, "Errors occurred while running add image. ", ex);
//critical core/system error and process needs to be interrupted
interrupted = true;
//TODO show record and add error count to add image summary stats dialog
hasCritError = true;
errorString = ex.getMessage();
} catch (TskDataException ex) {
logger.log(Level.WARNING, "Errors occurred while running add image. ", ex);
//TODO show record and add error count to add image summary stats dialog
errorString = ex.getMessage();
} finally {
// process is over, doesn't need to be dealt with if cancel happens
cancelledWhileRunning.disable();
@ -303,22 +307,26 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
progressBar.setIndeterminate(false);
// attempt actions that might fail and force the process to stop
try {
// get() will block until doInBackground done and throw any exceptions that were thrown in the background task
//get() will block until doInBackground done and throw any exceptions
//that were thrown in the background task
//if process was stopped, stop should have been complete (otherwise, unsafe to revert() )
get();
} catch (InterruptedException e) {
} catch (ExecutionException e) {
} finally {
if (interrupted) {
try {
try {
process.revert();
} catch (TskCoreException ex) {
Exceptions.printStackTrace(ex);
if (interrupted || hasCritError) {
logger.log(Level.INFO, "Handling errors or interruption that occured in add image process");
revert();
if (hasCritError) {
StringBuilder errMsgB = new StringBuilder();
errMsgB.append("<html>*Failed to add image");
if (errorString != null) {
errMsgB.append(": <br />").append(errorString);
}
} finally {
//unlock db write within EWT thread
SleuthkitCase.dbWriteUnlock();
errMsgB.append("</html>");
getComponent().changeProgressBarTextAndColor(errMsgB.toString(), 0, Color.black);
}
return;
}
@ -331,15 +339,10 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
// the add-image process needs to be reverted if the wizard doesn't finish
cleanupImage = action.new CleanupTask() {
//note, CleanupTask runs inside EWT thread
@Override
void cleanup() throws Exception {
try {
process.revert();
} finally {
//unlock db write within EWT thread
SleuthkitCase.dbWriteUnlock();
}
logger.log(Level.INFO, "Running cleanup task after add image process");
revert();
}
};
cleanupImage.enable();
@ -351,8 +354,9 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
AddImageVisualPanel2 panel = getComponent();
if (panel != null) {
Window w = SwingUtilities.getWindowAncestor(panel);
if (w!= null)
if (w != null) {
w.toFront();
}
}
setDbCreated(true);
@ -360,7 +364,7 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
} catch (Exception ex) {
//handle unchecked exceptions post image add
logger.log(Level.WARNING, "Unexpected errors occurred while running add image. ", ex);
logger.log(Level.WARNING, "Unexpected errors occurred while running post add image cleanup. ", ex);
getComponent().changeProgressBarTextAndColor("*Failed to add image.", 0, Color.black); // set error message
@ -374,10 +378,26 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
void interrupt() throws Exception {
interrupted = true;
try {
process.stop();
logger.log(Level.INFO, "interrupt() add image process");
process.stop(); //it might take time to truly stop processing and writing to db
} catch (TskException ex) {
throw new Exception("Error stopping add-image process.", ex);
}
}
//runs in EWT
void revert() {
try {
logger.log(Level.INFO, "Revert after add image process");
try {
process.revert();
} catch (TskCoreException ex) {
logger.log(Level.WARNING, "Error reverting add image process", ex);
}
} finally {
//unlock db write within EWT thread
SleuthkitCase.dbWriteUnlock();
}
}
}
}

View File

@ -84,6 +84,7 @@ public class Chrome extends Extract implements IngestServiceImage {
ContentUtils.writeToFile(FFSqlitedb.get(j), new File(currentCase.getTempDirectory() + File.separator + FFSqlitedb.get(j).getName().toString() + j + ".db"));
} catch (Exception ex) {
logger.log(Level.WARNING, "Error while trying to write out a sqlite db.{0}", ex);
this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + FFSqlitedb.get(j).getName());
}
File dbFile = new File(temps);
if (controller.isCancelled()) {
@ -95,7 +96,7 @@ public class Chrome extends Extract implements IngestServiceImage {
try {
Collection<BlackboardAttribute> bbattributes = new ArrayList<BlackboardAttribute>();
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", "", ((result.get("url").toString() != null) ? result.get("url").toString() : "")));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", ((Long.valueOf(result.get("last_visit_time").toString())) / 10000)));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", ((Long.valueOf(result.get("last_visit_time").toString())) / 10000000)));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), "Recent Activity", "", ((result.get("from_visit").toString() != null) ? result.get("from_visit").toString() : "")));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), "Recent Activity", "", ((result.get("title").toString() != null) ? result.get("title").toString() : "")));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "Recent Activity", "", "Chrome"));
@ -126,6 +127,7 @@ public class Chrome extends Extract implements IngestServiceImage {
ContentUtils.writeToFile(FFSqlitedb.get(j), new File(currentCase.getTempDirectory() + File.separator + FFSqlitedb.get(j).getName().toString() + j + ".db"));
} catch (Exception ex) {
logger.log(Level.WARNING, "Error while trying to write out a sqlite db.{0}", ex);
this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + FFSqlitedb.get(j).getName());
}
File dbFile = new File(temps);
if (controller.isCancelled()) {
@ -149,7 +151,7 @@ public class Chrome extends Extract implements IngestServiceImage {
String domain = Util.extractDomain(url);
BlackboardArtifact bbart = FFSqlitedb.get(j).newArtifact(ARTIFACT_TYPE.TSK_WEB_BOOKMARK);
Collection<BlackboardAttribute> bbattributes = new ArrayList<BlackboardAttribute>();
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", (date / 10000)));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", (date / 10000000)));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", "", url));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), "Recent Activity", "", name));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "Recent Activity", "", "Chrome"));
@ -184,6 +186,7 @@ public class Chrome extends Extract implements IngestServiceImage {
ContentUtils.writeToFile(FFSqlitedb.get(j), new File(currentCase.getTempDirectory() + File.separator + FFSqlitedb.get(j).getName().toString() + j + ".db"));
} catch (Exception ex) {
logger.log(Level.WARNING, "Error while trying to write out a sqlite db.{0}", ex);
this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + FFSqlitedb.get(j).getName());
}
File dbFile = new File(temps);
if (controller.isCancelled()) {
@ -196,7 +199,7 @@ public class Chrome extends Extract implements IngestServiceImage {
try {
Collection<BlackboardAttribute> bbattributes = new ArrayList<BlackboardAttribute>();
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), "Recent Activity", "Title", ((result.get("name").toString() != null) ? result.get("name").toString() : "")));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), "Recent Activity", "Last Visited", ((Long.valueOf(result.get("last_access_utc").toString())) / 10000)));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), "Recent Activity", "Last Visited", ((Long.valueOf(result.get("last_access_utc").toString())) / 10000000)));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), "Recent Activity", "", ((result.get("value").toString() != null) ? result.get("value").toString() : "")));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "Recent Activity", "", "Chrome"));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", "", ((result.get("host_key").toString() != null) ? result.get("host_key").toString() : "")));
@ -230,6 +233,7 @@ public class Chrome extends Extract implements IngestServiceImage {
ContentUtils.writeToFile(FFSqlitedb.get(j), new File(currentCase.getTempDirectory() + File.separator + FFSqlitedb.get(j).getName().toString() + j + ".db"));
} catch (Exception ex) {
logger.log(Level.WARNING, "Error while trying to write out a sqlite db.{0}", ex);
this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + FFSqlitedb.get(j).getName());
}
File dbFile = new File(temps);
if (controller.isCancelled()) {
@ -245,8 +249,8 @@ public class Chrome extends Extract implements IngestServiceImage {
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID(), "Recent Activity", "", Util.findID((result.get("full_path").toString()))));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", "", ((result.get("url").toString() != null) ? result.get("url").toString() : "")));
Long time = (Long.valueOf(result.get("start_time").toString()));
String Tempdate = time.toString() + "000";
time = Long.valueOf(Tempdate);
String Tempdate = time.toString();
time = Long.valueOf(Tempdate)/10000000;
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", time));
String domain = Util.extractDomain((result.get("url").toString() != null) ? result.get("url").toString() : "");
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), "Recent Activity", "", domain));
@ -284,12 +288,12 @@ public class Chrome extends Extract implements IngestServiceImage {
dbFile.delete();
break;
}
List<HashMap<String, Object>> tempList = this.dbConnect(temps, chquery);
List<HashMap<String, Object>> tempList = this.dbConnect(temps, chloginquery);
for (HashMap<String, Object> result : tempList) {
try {
Collection<BlackboardAttribute> bbattributes = new ArrayList<BlackboardAttribute>();
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), "Recent Activity", "", ((result.get("origin_url").toString() != null) ? result.get("origin_url").toString() : "")));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", ((Long.valueOf(result.get("last_visit_time").toString())) / 10000)));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_LAST_ACCESSED.getTypeID(), "Recent Activity", "Last Visited", ((Long.valueOf(result.get("last_visit_time").toString())) / 1000000)));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), "Recent Activity", "", ((result.get("from_visit").toString() != null) ? result.get("from_visit").toString() : "")));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), "Recent Activity", "", ((result.get("title").toString() != null) ? result.get("title").toString() : "")));
bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), "Recent Activity", "", "Chrome"));

View File

@ -128,7 +128,7 @@ public class ExtractIE extends Extract implements IngestServiceImage {
}
String name = Favorite.getName();
Long datetime = Favorite.getCrtime();
String Tempdate = datetime.toString() + "000";
String Tempdate = datetime.toString();
datetime = Long.valueOf(Tempdate);
String domain = Util.getBaseDomain(url);
try {
@ -172,7 +172,7 @@ public class ExtractIE extends Extract implements IngestServiceImage {
String value = values.length > 1 ? values[1] : "";
String name = values.length > 0 ? values[0] : "";
Long datetime = Cookie.getCrtime();
String Tempdate = datetime.toString() + "000";
String Tempdate = datetime.toString();
datetime = Long.valueOf(Tempdate);
String domain = url;
domain = domain.replaceFirst("^\\.+(?!$)", "");
@ -226,7 +226,7 @@ public class ExtractIE extends Extract implements IngestServiceImage {
String path = Util.getPath(recentString);
String name = Util.getFileName(path);
Long datetime = Recent.getCrtime();
String Tempdate = datetime.toString() + "000";
String Tempdate = datetime.toString();
datetime = Long.valueOf(Tempdate);
try {
Collection<BlackboardAttribute> bbattributes = new ArrayList<BlackboardAttribute>();
@ -452,6 +452,7 @@ public class ExtractIE extends Extract implements IngestServiceImage {
try {
Long epochtime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(actime).getTime();
ftime = epochtime.longValue();
ftime = ftime/1000;
} catch (ParseException e) {
logger.log(Level.SEVERE, "ExtractIE::parsePascosResults() -> ", e.getMessage());
}

View File

@ -220,7 +220,7 @@ public class ExtractRegistry implements IngestServiceImage {
Long epochtime = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy").parse(etime).getTime();
time = epochtime.longValue();
String Tempdate = time.toString();
time = Long.valueOf(Tempdate);
time = Long.valueOf(Tempdate)/1000;
} catch (ParseException e) {
logger.log(Level.SEVERE, "RegRipper::Conversion on DateTime -> ", e.getMessage());
}
@ -249,8 +249,9 @@ public class ExtractRegistry implements IngestServiceImage {
try {
utime = Long.parseLong(name);
String Tempdate = utime.toString() + "000";
String Tempdate = utime.toString();
utime = Long.valueOf(Tempdate);
utime = utime;
} catch (Exception e) {
logger.log(Level.SEVERE, "RegRipper::Conversion on DateTime -> ", e.getMessage());
}
@ -266,7 +267,7 @@ public class ExtractRegistry implements IngestServiceImage {
try {
Long epochtime = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy").parse(name).getTime();
ftime = epochtime.longValue();
ftime = ftime/1000;
} catch (ParseException e) {
logger.log(Level.SEVERE, "RegRipper::Conversion on DateTime -> ", e.getMessage());
}
@ -290,7 +291,7 @@ public class ExtractRegistry implements IngestServiceImage {
Long epochtime = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy").parse(value).getTime();
installtime = epochtime.longValue();
String Tempdate = installtime.toString();
installtime = Long.valueOf(Tempdate);
installtime = Long.valueOf(Tempdate)/1000;
} catch (ParseException e) {
logger.log(Level.SEVERE, "RegRipper::Conversion on DateTime -> ", e.getMessage());
}

View File

@ -47,11 +47,11 @@ import org.sleuthkit.datamodel.Image;
*/
public class Firefox extends Extract implements IngestServiceImage {
private static final String ffquery = "SELECT moz_historyvisits.id,url,title,visit_count,(visit_date/1000) as visit_date,from_visit,(SELECT url FROM moz_places WHERE id=moz_historyvisits.from_visit) as ref FROM moz_places, moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id AND hidden = 0";
private static final String ffcookiequery = "SELECT name,value,host,expiry,(lastAccessed/1000) as lastAccessed,(creationTime/1000) as creationTime FROM moz_cookies";
private static final String ff3cookiequery = "SELECT name,value,host,expiry,(lastAccessed/1000) as lastAccessed FROM moz_cookies";
private static final String ffquery = "SELECT moz_historyvisits.id,url,title,visit_count,(visit_date/1000000) as visit_date,from_visit,(SELECT url FROM moz_places WHERE id=moz_historyvisits.from_visit) as ref FROM moz_places, moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id AND hidden = 0";
private static final String ffcookiequery = "SELECT name,value,host,expiry,(lastAccessed/1000000) as lastAccessed,(creationTime/1000000) as creationTime FROM moz_cookies";
private static final String ff3cookiequery = "SELECT name,value,host,expiry,(lastAccessed/1000000) as lastAccessed FROM moz_cookies";
private static final String ffbookmarkquery = "SELECT fk, moz_bookmarks.title, url FROM moz_bookmarks INNER JOIN moz_places ON moz_bookmarks.fk=moz_places.id";
private static final String ffdownloadquery = "select target, source,(startTime/1000) as startTime, maxBytes from moz_downloads";
private static final String ffdownloadquery = "select target, source,(startTime/1000000) as startTime, maxBytes from moz_downloads";
public int FireFoxCount = 0;
public Firefox() {
@ -79,6 +79,7 @@ public class Firefox extends Extract implements IngestServiceImage {
ContentUtils.writeToFile(FFSqlitedb.get(j), new File(currentCase.getTempDirectory() + File.separator + FFSqlitedb.get(j).getName().toString() + j + ".db"));
} catch (Exception ex) {
logger.log(Level.WARNING, "Error while trying to write out a sqlite db.{0}", ex);
this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + FFSqlitedb.get(j).getName());
}
File dbFile = new File(temps);
if (controller.isCancelled()) {
@ -121,6 +122,7 @@ public class Firefox extends Extract implements IngestServiceImage {
ContentUtils.writeToFile(FFSqlitedb.get(j), new File(currentCase.getTempDirectory() + File.separator + FFSqlitedb.get(j).getName().toString() + j + ".db"));
} catch (Exception ex) {
logger.log(Level.WARNING, "Error while trying to write out a sqlite db.{0}", ex);
this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + FFSqlitedb.get(j).getName());
}
File dbFile = new File(temps);
if (controller.isCancelled()) {
@ -162,6 +164,7 @@ public class Firefox extends Extract implements IngestServiceImage {
ContentUtils.writeToFile(FFSqlitedb.get(j), new File(currentCase.getTempDirectory() + File.separator + FFSqlitedb.get(j).getName().toString() + j + ".db"));
} catch (Exception ex) {
logger.log(Level.WARNING, "Error while trying to write out a sqlite db.{0}", ex);
this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + FFSqlitedb.get(j).getName());
}
File dbFile = new File(temps);
if (controller.isCancelled()) {
@ -219,6 +222,7 @@ public class Firefox extends Extract implements IngestServiceImage {
ContentUtils.writeToFile(FFSqlitedb.get(j), new File(currentCase.getTempDirectory() + File.separator + FFSqlitedb.get(j).getName().toString() + j + ".db"));
} catch (Exception ex) {
logger.log(Level.WARNING, "Error while trying to write out a sqlite db.{0}", ex);
this.addErrorMessage(this.getName() + ": Error while trying to analyze file:" + FFSqlitedb.get(j).getName());
}
File dbFile = new File(temps);
if (controller.isCancelled()) {

View File

@ -1 +0,0 @@
OpenIDE-Module-Name=trove