remove use of deprecated method for file search, use thread-safe method

This commit is contained in:
adam-m 2013-02-12 15:45:13 -05:00 committed by Sean-M
parent 3dbf7b1ed2
commit e480c4802e

View File

@ -20,7 +20,6 @@ package org.sleuthkit.autopsy.datamodel;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
@ -28,15 +27,12 @@ import org.sleuthkit.autopsy.coreutils.Logger;
import org.openide.nodes.AbstractNode; import org.openide.nodes.AbstractNode;
import org.openide.nodes.ChildFactory; import org.openide.nodes.ChildFactory;
import org.openide.nodes.Node; import org.openide.nodes.Node;
import org.openide.util.Exceptions;
import org.openide.util.lookup.Lookups;
import org.sleuthkit.autopsy.datamodel.SearchFilters.FileSearchFilter;
import org.sleuthkit.datamodel.Content; import org.sleuthkit.datamodel.Content;
import org.sleuthkit.datamodel.ContentVisitor; import org.sleuthkit.datamodel.ContentVisitor;
import org.sleuthkit.datamodel.Directory;
import org.sleuthkit.datamodel.File; import org.sleuthkit.datamodel.File;
import org.sleuthkit.datamodel.FsContent; import org.sleuthkit.datamodel.FsContent;
import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.SleuthkitCase;
import org.sleuthkit.datamodel.TskCoreException;
/** /**
* *
@ -61,38 +57,29 @@ class FileSearchFilterChildren extends ChildFactory<Content> {
} }
private String createQuery(){ private String createQuery(){
String query = "select * from tsk_files where known <> 1 and (0"; String query = "known <> 1 AND (0";
for(String s : filter.getFilter()){ for(String s : filter.getFilter()){
query += " or name like '%" + s + "'"; query += " OR name LIKE '%" + s + "'";
} }
query += ')'; query += ')';
//query += " limit " + MAX_OBJECTS; //query += " LIMIT " + MAX_OBJECTS;
return query; return query;
} }
@SuppressWarnings("deprecation")
private List<FsContent> runQuery(){ private List<FsContent> runQuery(){
ResultSet rs = null; ResultSet rs = null;
List<FsContent> list = new ArrayList<FsContent>(); List<FsContent> list = new ArrayList<FsContent>();
try { try {
rs = skCase.runQuery(createQuery()); List<FsContent> res = skCase.findFilesWhere(createQuery());
for(FsContent c : skCase.resultSetToFsContents(rs)){ for(FsContent c : res){
if(c.isFile()){ if(c.isFile()){
list.add(c); list.add(c);
} }
} }
} catch (SQLException ex) { } catch (TskCoreException ex) {
logger.log(Level.WARNING, "Couldn't get search results", ex); logger.log(Level.WARNING, "Couldn't get search results", ex);
} }
finally {
if (rs != null) {
try {
skCase.closeRunQuery(rs);
} catch (SQLException ex) {
logger.log(Level.SEVERE, "Error closing result set after executing fscontents query for file search results", ex);
}
}
}
return list; return list;
} }