mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 07:56:16 +00:00
Merge remote-tracking branch 'upstream/develop' into serialize_ingest_module_settings
This commit is contained in:
commit
56f5d0cf9f
@ -69,6 +69,7 @@ class SampleFileIngestModule extends IngestModuleAdapter implements FileIngestMo
|
|||||||
@Override
|
@Override
|
||||||
public void startUp(IngestJobContext context) throws IngestModuleException {
|
public void startUp(IngestJobContext context) throws IngestModuleException {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
refCounter.incrementAndGet(context.getJobId());
|
||||||
|
|
||||||
synchronized (SampleFileIngestModule.class) {
|
synchronized (SampleFileIngestModule.class) {
|
||||||
if (attrId == -1) {
|
if (attrId == -1) {
|
||||||
@ -97,10 +98,6 @@ class SampleFileIngestModule extends IngestModuleAdapter implements FileIngestMo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method is thread-safe with per ingest job reference counted
|
|
||||||
// management of shared data.
|
|
||||||
initBlackboardPostCount(context.getJobId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -168,15 +165,15 @@ class SampleFileIngestModule extends IngestModuleAdapter implements FileIngestMo
|
|||||||
reportBlackboardPostCount(context.getJobId());
|
reportBlackboardPostCount(context.getJobId());
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized static void initBlackboardPostCount(long ingestJobId) {
|
|
||||||
Long refCount = refCounter.incrementAndGet(ingestJobId);
|
|
||||||
if (refCount == 1) {
|
|
||||||
artifactCountsForIngestJobs.put(ingestJobId, 0L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
synchronized static void addToBlackboardPostCount(long ingestJobId, long countToAdd) {
|
synchronized static void addToBlackboardPostCount(long ingestJobId, long countToAdd) {
|
||||||
Long fileCount = artifactCountsForIngestJobs.get(ingestJobId);
|
Long fileCount = artifactCountsForIngestJobs.get(ingestJobId);
|
||||||
|
|
||||||
|
// Ensures that this job has an entry
|
||||||
|
if (fileCount == null) {
|
||||||
|
fileCount = 0L;
|
||||||
|
artifactCountsForIngestJobs.put(ingestJobId, fileCount);
|
||||||
|
}
|
||||||
|
|
||||||
fileCount += countToAdd;
|
fileCount += countToAdd;
|
||||||
artifactCountsForIngestJobs.put(ingestJobId, fileCount);
|
artifactCountsForIngestJobs.put(ingestJobId, fileCount);
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ import org.openide.util.NbBundle;
|
|||||||
import org.sleuthkit.autopsy.ingest.IngestModuleFactory;
|
import org.sleuthkit.autopsy.ingest.IngestModuleFactory;
|
||||||
import org.sleuthkit.autopsy.ingest.DataSourceIngestModule;
|
import org.sleuthkit.autopsy.ingest.DataSourceIngestModule;
|
||||||
import org.sleuthkit.autopsy.ingest.FileIngestModule;
|
import org.sleuthkit.autopsy.ingest.FileIngestModule;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSetttingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings;
|
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettingsPanel;
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ public class SampleIngestModuleFactory implements IngestModuleFactory {
|
|||||||
* @return A global settings panel.
|
* @return A global settings panel.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public IngestModuleGlobalSetttingsPanel getGlobalSettingsPanel() {
|
public IngestModuleGlobalSettingsPanel getGlobalSettingsPanel() {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -325,7 +325,7 @@ class IngestJobConfigurationPanel extends javax.swing.JPanel {
|
|||||||
static private class IngestModuleModel {
|
static private class IngestModuleModel {
|
||||||
|
|
||||||
private final IngestModuleTemplate moduleTemplate;
|
private final IngestModuleTemplate moduleTemplate;
|
||||||
private IngestModuleGlobalSetttingsPanel globalSettingsPanel = null;
|
private IngestModuleGlobalSettingsPanel globalSettingsPanel = null;
|
||||||
private IngestModuleIngestJobSettingsPanel moduleSettingsPanel = null;
|
private IngestModuleIngestJobSettingsPanel moduleSettingsPanel = null;
|
||||||
|
|
||||||
IngestModuleModel(IngestModuleTemplate moduleTemplate) {
|
IngestModuleModel(IngestModuleTemplate moduleTemplate) {
|
||||||
@ -370,7 +370,7 @@ class IngestJobConfigurationPanel extends javax.swing.JPanel {
|
|||||||
return moduleTemplate.hasGlobalSettingsPanel();
|
return moduleTemplate.hasGlobalSettingsPanel();
|
||||||
}
|
}
|
||||||
|
|
||||||
IngestModuleGlobalSetttingsPanel getGlobalSettingsPanel() {
|
IngestModuleGlobalSettingsPanel getGlobalSettingsPanel() {
|
||||||
return globalSettingsPanel;
|
return globalSettingsPanel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,9 +21,11 @@ package org.sleuthkit.autopsy.ingest;
|
|||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
import java.beans.PropertyChangeSupport;
|
import java.beans.PropertyChangeSupport;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CancellationException;
|
import java.util.concurrent.CancellationException;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
@ -61,8 +63,8 @@ public class IngestManager {
|
|||||||
private final ExecutorService startIngestJobsExecutor = Executors.newSingleThreadExecutor();
|
private final ExecutorService startIngestJobsExecutor = Executors.newSingleThreadExecutor();
|
||||||
private final ExecutorService dataSourceIngestTasksExecutor = Executors.newSingleThreadExecutor();
|
private final ExecutorService dataSourceIngestTasksExecutor = Executors.newSingleThreadExecutor();
|
||||||
private final ExecutorService fileIngestTasksExecutor = Executors.newFixedThreadPool(MAX_NUMBER_OF_FILE_INGEST_THREADS);
|
private final ExecutorService fileIngestTasksExecutor = Executors.newFixedThreadPool(MAX_NUMBER_OF_FILE_INGEST_THREADS);
|
||||||
private final HashMap<Long, IngestJob> ingestJobs = new HashMap<>(); // Maps job ids to jobs
|
private final ConcurrentHashMap<Long, IngestJob> ingestJobs = new ConcurrentHashMap<>(1, 0.9f, 4); // Maps job ids to jobs.
|
||||||
private final HashMap<Long, Future<?>> ingestTasks = new HashMap<>(); // Maps task ids to task cancellation handles
|
private final HashMap<Long, Future<?>> ingestTasks = new HashMap<>(); // Maps task ids to task cancellation handles. Guarded by this.
|
||||||
private AtomicLong ingestJobId = new AtomicLong(0L);
|
private AtomicLong ingestJobId = new AtomicLong(0L);
|
||||||
private AtomicLong ingestTaskId = new AtomicLong(0L);
|
private AtomicLong ingestTaskId = new AtomicLong(0L);
|
||||||
private volatile IngestUI ingestMessageBox;
|
private volatile IngestUI ingestMessageBox;
|
||||||
@ -124,11 +126,11 @@ public class IngestManager {
|
|||||||
*
|
*
|
||||||
* @return True if any ingest jobs are in progress, false otherwise
|
* @return True if any ingest jobs are in progress, false otherwise
|
||||||
*/
|
*/
|
||||||
public synchronized boolean isIngestRunning() {
|
public boolean isIngestRunning() {
|
||||||
return (ingestJobs.isEmpty() == false);
|
return (ingestJobs.isEmpty() == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized void addFileToIngestJob(long ingestJobId, AbstractFile file) {
|
void addFileToIngestJob(long ingestJobId, AbstractFile file) {
|
||||||
IngestJob job = ingestJobs.get(ingestJobId);
|
IngestJob job = ingestJobs.get(ingestJobId);
|
||||||
if (job != null) {
|
if (job != null) {
|
||||||
scheduler.getFileIngestScheduler().queueFile(job, file);
|
scheduler.getFileIngestScheduler().queueFile(job, file);
|
||||||
@ -301,7 +303,7 @@ public class IngestManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void stopIngestTasks() {
|
private void stopIngestTasks() {
|
||||||
// First mark all of the ingest jobs as cancelled. This way the
|
// First mark all of the ingest jobs as cancelled. This way the
|
||||||
// ingest modules will know they are being shut down due to
|
// ingest modules will know they are being shut down due to
|
||||||
// cancellation when the cancelled run ingest module tasks release
|
// cancellation when the cancelled run ingest module tasks release
|
||||||
@ -312,21 +314,25 @@ public class IngestManager {
|
|||||||
|
|
||||||
// Cancel the run ingest module tasks, setting the state of the threads
|
// Cancel the run ingest module tasks, setting the state of the threads
|
||||||
// running them to interrupted.
|
// running them to interrupted.
|
||||||
|
synchronized(this) {
|
||||||
for (Future<?> task : ingestTasks.values()) {
|
for (Future<?> task : ingestTasks.values()) {
|
||||||
task.cancel(true);
|
task.cancel(true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Jettision the remaining data source and file ingest tasks.
|
// Jettision the remaining data source and file ingest tasks.
|
||||||
scheduler.getFileIngestScheduler().emptyQueues();
|
scheduler.getFileIngestScheduler().emptyQueues();
|
||||||
scheduler.getDataSourceIngestScheduler().emptyQueues();
|
scheduler.getDataSourceIngestScheduler().emptyQueues();
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized void reportStartIngestJobsTaskDone(long taskId) {
|
private synchronized void reportStartIngestJobsTaskDone(long taskId) {
|
||||||
ingestTasks.remove(taskId);
|
ingestTasks.remove(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized void reportRunIngestModulesTaskDone(long taskId) {
|
private void reportRunIngestModulesTaskDone(long taskId) {
|
||||||
|
synchronized(this) {
|
||||||
ingestTasks.remove(taskId);
|
ingestTasks.remove(taskId);
|
||||||
|
}
|
||||||
|
|
||||||
List<Long> completedJobs = new ArrayList<>();
|
List<Long> completedJobs = new ArrayList<>();
|
||||||
for (IngestJob job : ingestJobs.values()) {
|
for (IngestJob job : ingestJobs.values()) {
|
||||||
@ -384,9 +390,7 @@ public class IngestManager {
|
|||||||
|
|
||||||
// Create an ingest job.
|
// Create an ingest job.
|
||||||
IngestJob ingestJob = new IngestJob(IngestManager.this.ingestJobId.incrementAndGet(), dataSource, moduleTemplates, processUnallocatedSpace);
|
IngestJob ingestJob = new IngestJob(IngestManager.this.ingestJobId.incrementAndGet(), dataSource, moduleTemplates, processUnallocatedSpace);
|
||||||
synchronized (IngestManager.this) {
|
|
||||||
ingestJobs.put(ingestJob.getId(), ingestJob);
|
ingestJobs.put(ingestJob.getId(), ingestJob);
|
||||||
}
|
|
||||||
|
|
||||||
// Start at least one instance of each kind of ingest
|
// Start at least one instance of each kind of ingest
|
||||||
// pipeline for this ingest job. This allows for an early out
|
// pipeline for this ingest job. This allows for an early out
|
||||||
@ -420,10 +424,8 @@ public class IngestManager {
|
|||||||
"IngestManager.StartIngestJobsTask.run.startupErr.dlgTitle"), JOptionPane.ERROR_MESSAGE);
|
"IngestManager.StartIngestJobsTask.run.startupErr.dlgTitle"), JOptionPane.ERROR_MESSAGE);
|
||||||
|
|
||||||
// Jettison the ingest job and move on to the next one.
|
// Jettison the ingest job and move on to the next one.
|
||||||
synchronized (IngestManager.this) {
|
|
||||||
ingestJob.cancel();
|
ingestJob.cancel();
|
||||||
ingestJobs.remove(ingestJob.getId());
|
ingestJobs.remove(ingestJob.getId());
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ public interface IngestModuleFactory {
|
|||||||
*
|
*
|
||||||
* @return A global settings panel.
|
* @return A global settings panel.
|
||||||
*/
|
*/
|
||||||
IngestModuleGlobalSetttingsPanel getGlobalSettingsPanel();
|
IngestModuleGlobalSettingsPanel getGlobalSettingsPanel();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the default per ingest job settings for instances of the family of
|
* Gets the default per ingest job settings for instances of the family of
|
||||||
|
@ -39,7 +39,7 @@ public abstract class IngestModuleFactoryAdapter implements IngestModuleFactory
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IngestModuleGlobalSetttingsPanel getGlobalSettingsPanel() {
|
public IngestModuleGlobalSettingsPanel getGlobalSettingsPanel() {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ import javax.swing.JPanel;
|
|||||||
/**
|
/**
|
||||||
* Base class for ingest module global settings panels.
|
* Base class for ingest module global settings panels.
|
||||||
*/
|
*/
|
||||||
public abstract class IngestModuleGlobalSetttingsPanel extends JPanel {
|
public abstract class IngestModuleGlobalSettingsPanel extends JPanel {
|
||||||
|
|
||||||
public abstract void saveSettings();
|
public abstract void saveSettings();
|
||||||
}
|
}
|
@ -65,7 +65,7 @@ final class IngestModuleTemplate {
|
|||||||
return moduleFactory.hasGlobalSettingsPanel();
|
return moduleFactory.hasGlobalSettingsPanel();
|
||||||
}
|
}
|
||||||
|
|
||||||
IngestModuleGlobalSetttingsPanel getGlobalSettingsPanel() {
|
IngestModuleGlobalSettingsPanel getGlobalSettingsPanel() {
|
||||||
return moduleFactory.getGlobalSettingsPanel();
|
return moduleFactory.getGlobalSettingsPanel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ import org.sleuthkit.autopsy.ingest.FileIngestModule;
|
|||||||
import org.sleuthkit.autopsy.ingest.IngestModuleFactory;
|
import org.sleuthkit.autopsy.ingest.IngestModuleFactory;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings;
|
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettingsPanel;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSetttingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An factory that creates file ingest modules that detect mismatches between
|
* An factory that creates file ingest modules that detect mismatches between
|
||||||
@ -83,7 +83,7 @@ public class FileExtMismatchDetectorModuleFactory extends IngestModuleFactoryAda
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IngestModuleGlobalSetttingsPanel getGlobalSettingsPanel() {
|
public IngestModuleGlobalSettingsPanel getGlobalSettingsPanel() {
|
||||||
FileExtMismatchSettingsPanel globalOptionsPanel = new FileExtMismatchSettingsPanel();
|
FileExtMismatchSettingsPanel globalOptionsPanel = new FileExtMismatchSettingsPanel();
|
||||||
globalOptionsPanel.load();
|
globalOptionsPanel.load();
|
||||||
return globalOptionsPanel;
|
return globalOptionsPanel;
|
||||||
|
@ -23,7 +23,6 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
@ -52,10 +51,31 @@ public class FileExtMismatchIngestModule extends IngestModuleAdapter implements
|
|||||||
private final FileExtMismatchDetectorModuleSettings settings;
|
private final FileExtMismatchDetectorModuleSettings settings;
|
||||||
private HashMap<String, String[]> SigTypeToExtMap = new HashMap<>();
|
private HashMap<String, String[]> SigTypeToExtMap = new HashMap<>();
|
||||||
private long jobId;
|
private long jobId;
|
||||||
private static AtomicLong processTime = new AtomicLong(0);
|
private static final HashMap<Long, IngestJobTotals> totalsForIngestJobs = new HashMap<>();
|
||||||
private static AtomicLong numFiles = new AtomicLong(0);
|
|
||||||
private static final IngestModuleReferenceCounter refCounter = new IngestModuleReferenceCounter();
|
private static final IngestModuleReferenceCounter refCounter = new IngestModuleReferenceCounter();
|
||||||
|
|
||||||
|
private static class IngestJobTotals {
|
||||||
|
private long processTime = 0;
|
||||||
|
private long numFiles = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the match time total and increment num of files for this job
|
||||||
|
* @param ingestJobId
|
||||||
|
* @param matchTimeInc amount of time to add
|
||||||
|
*/
|
||||||
|
private static synchronized void addToTotals(long ingestJobId, long processTimeInc) {
|
||||||
|
IngestJobTotals ingestJobTotals = totalsForIngestJobs.get(ingestJobId);
|
||||||
|
if (ingestJobTotals == null) {
|
||||||
|
ingestJobTotals = new IngestJobTotals();
|
||||||
|
totalsForIngestJobs.put(ingestJobId, ingestJobTotals);
|
||||||
|
}
|
||||||
|
|
||||||
|
ingestJobTotals.processTime += processTimeInc;
|
||||||
|
ingestJobTotals.numFiles++;
|
||||||
|
totalsForIngestJobs.put(ingestJobId, ingestJobTotals);
|
||||||
|
}
|
||||||
|
|
||||||
FileExtMismatchIngestModule(FileExtMismatchDetectorModuleSettings settings) {
|
FileExtMismatchIngestModule(FileExtMismatchDetectorModuleSettings settings) {
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
}
|
}
|
||||||
@ -64,6 +84,7 @@ public class FileExtMismatchIngestModule extends IngestModuleAdapter implements
|
|||||||
public void startUp(IngestJobContext context) throws IngestModuleException {
|
public void startUp(IngestJobContext context) throws IngestModuleException {
|
||||||
jobId = context.getJobId();
|
jobId = context.getJobId();
|
||||||
refCounter.incrementAndGet(jobId);
|
refCounter.incrementAndGet(jobId);
|
||||||
|
|
||||||
FileExtMismatchXML xmlLoader = FileExtMismatchXML.getDefault();
|
FileExtMismatchXML xmlLoader = FileExtMismatchXML.getDefault();
|
||||||
SigTypeToExtMap = xmlLoader.load();
|
SigTypeToExtMap = xmlLoader.load();
|
||||||
}
|
}
|
||||||
@ -87,8 +108,7 @@ public class FileExtMismatchIngestModule extends IngestModuleAdapter implements
|
|||||||
|
|
||||||
boolean mismatchDetected = compareSigTypeToExt(abstractFile);
|
boolean mismatchDetected = compareSigTypeToExt(abstractFile);
|
||||||
|
|
||||||
processTime.getAndAdd(System.currentTimeMillis() - startTime);
|
addToTotals(jobId, System.currentTimeMillis() - startTime);
|
||||||
numFiles.getAndIncrement();
|
|
||||||
|
|
||||||
if (mismatchDetected) {
|
if (mismatchDetected) {
|
||||||
// add artifact
|
// add artifact
|
||||||
@ -156,20 +176,27 @@ public class FileExtMismatchIngestModule extends IngestModuleAdapter implements
|
|||||||
public void shutDown(boolean ingestJobCancelled) {
|
public void shutDown(boolean ingestJobCancelled) {
|
||||||
// We only need to post the summary msg from the last module per job
|
// We only need to post the summary msg from the last module per job
|
||||||
if (refCounter.decrementAndGet(jobId) == 0) {
|
if (refCounter.decrementAndGet(jobId) == 0) {
|
||||||
|
IngestJobTotals jobTotals;
|
||||||
|
synchronized(this) {
|
||||||
|
jobTotals = totalsForIngestJobs.remove(jobId);
|
||||||
|
}
|
||||||
|
if (jobTotals != null) {
|
||||||
StringBuilder detailsSb = new StringBuilder();
|
StringBuilder detailsSb = new StringBuilder();
|
||||||
detailsSb.append("<table border='0' cellpadding='4' width='280'>"); //NON-NLS
|
detailsSb.append("<table border='0' cellpadding='4' width='280'>"); //NON-NLS
|
||||||
detailsSb.append("<tr><td>").append(FileExtMismatchDetectorModuleFactory.getModuleName()).append("</td></tr>"); //NON-NLS
|
detailsSb.append("<tr><td>").append(FileExtMismatchDetectorModuleFactory.getModuleName()).append("</td></tr>"); //NON-NLS
|
||||||
detailsSb.append("<tr><td>").append( //NON-NLS
|
detailsSb.append("<tr><td>").append( //NON-NLS
|
||||||
NbBundle.getMessage(this.getClass(), "FileExtMismatchIngestModule.complete.totalProcTime"))
|
NbBundle.getMessage(this.getClass(), "FileExtMismatchIngestModule.complete.totalProcTime"))
|
||||||
.append("</td><td>").append(processTime.get()).append("</td></tr>\n"); //NON-NLS
|
.append("</td><td>").append(jobTotals.processTime).append("</td></tr>\n"); //NON-NLS
|
||||||
detailsSb.append("<tr><td>").append( //NON-NLS
|
detailsSb.append("<tr><td>").append( //NON-NLS
|
||||||
NbBundle.getMessage(this.getClass(), "FileExtMismatchIngestModule.complete.totalFiles"))
|
NbBundle.getMessage(this.getClass(), "FileExtMismatchIngestModule.complete.totalFiles"))
|
||||||
.append("</td><td>").append(numFiles.get()).append("</td></tr>\n"); //NON-NLS
|
.append("</td><td>").append(jobTotals.numFiles).append("</td></tr>\n"); //NON-NLS
|
||||||
detailsSb.append("</table>"); //NON-NLS
|
detailsSb.append("</table>"); //NON-NLS
|
||||||
|
|
||||||
services.postMessage(IngestMessage.createMessage(IngestMessage.MessageType.INFO, FileExtMismatchDetectorModuleFactory.getModuleName(),
|
services.postMessage(IngestMessage.createMessage(IngestMessage.MessageType.INFO, FileExtMismatchDetectorModuleFactory.getModuleName(),
|
||||||
NbBundle.getMessage(this.getClass(),
|
NbBundle.getMessage(this.getClass(),
|
||||||
"FileExtMismatchIngestModule.complete.svcMsg.text"),
|
"FileExtMismatchIngestModule.complete.svcMsg.text"),
|
||||||
detailsSb.toString()));
|
detailsSb.toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ import javax.swing.ListSelectionModel;
|
|||||||
import javax.swing.event.ListSelectionEvent;
|
import javax.swing.event.ListSelectionEvent;
|
||||||
import javax.swing.event.ListSelectionListener;
|
import javax.swing.event.ListSelectionListener;
|
||||||
import javax.swing.table.AbstractTableModel;
|
import javax.swing.table.AbstractTableModel;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSetttingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.autopsy.modules.filetypeid.FileTypeIdIngestModule;
|
import org.sleuthkit.autopsy.modules.filetypeid.FileTypeIdIngestModule;
|
||||||
@ -39,7 +39,7 @@ import org.sleuthkit.autopsy.corecomponents.OptionsPanel;
|
|||||||
* Container panel for File Extension Mismatch Ingest Module advanced
|
* Container panel for File Extension Mismatch Ingest Module advanced
|
||||||
* configuration options
|
* configuration options
|
||||||
*/
|
*/
|
||||||
final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSetttingsPanel implements OptionsPanel {
|
final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel implements OptionsPanel {
|
||||||
|
|
||||||
private static Logger logger = Logger.getLogger(FileExtMismatchSettingsPanel.class.getName());
|
private static Logger logger = Logger.getLogger(FileExtMismatchSettingsPanel.class.getName());
|
||||||
private HashMap<String, String[]> editableMap = new HashMap<>();
|
private HashMap<String, String[]> editableMap = new HashMap<>();
|
||||||
|
@ -211,16 +211,24 @@
|
|||||||
</signature>
|
</signature>
|
||||||
<signature mimetype="image/gif">
|
<signature mimetype="image/gif">
|
||||||
<ext>gif</ext>
|
<ext>gif</ext>
|
||||||
|
<ext>jpeg</ext>
|
||||||
|
<ext>jpg</ext>
|
||||||
|
<ext>png</ext>
|
||||||
</signature>
|
</signature>
|
||||||
<signature mimetype="image/jpeg">
|
<signature mimetype="image/jpeg">
|
||||||
|
<ext>gif</ext>
|
||||||
<ext>jfi</ext>
|
<ext>jfi</ext>
|
||||||
<ext>jfif</ext>
|
<ext>jfif</ext>
|
||||||
<ext>jif</ext>
|
<ext>jif</ext>
|
||||||
<ext>jpe</ext>
|
<ext>jpe</ext>
|
||||||
<ext>jpeg</ext>
|
<ext>jpeg</ext>
|
||||||
<ext>jpg</ext>
|
<ext>jpg</ext>
|
||||||
|
<ext>png</ext>
|
||||||
</signature>
|
</signature>
|
||||||
<signature mimetype="image/png">
|
<signature mimetype="image/png">
|
||||||
|
<ext>gif</ext>
|
||||||
|
<ext>jpeg</ext>
|
||||||
|
<ext>jpg</ext>
|
||||||
<ext>png</ext>
|
<ext>png</ext>
|
||||||
</signature>
|
</signature>
|
||||||
<signature mimetype="image/tiff">
|
<signature mimetype="image/tiff">
|
||||||
|
@ -61,10 +61,6 @@ public class FileTypeIdIngestModule extends IngestModuleAdapter implements FileI
|
|||||||
long numFiles = 0;
|
long numFiles = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static synchronized void initTotals(long ingestJobId) {
|
|
||||||
totalsForIngestJobs.put(ingestJobId, new IngestJobTotals());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the match time total and increment num of files for this job
|
* Update the match time total and increment num of files for this job
|
||||||
* @param ingestJobId
|
* @param ingestJobId
|
||||||
@ -72,6 +68,11 @@ public class FileTypeIdIngestModule extends IngestModuleAdapter implements FileI
|
|||||||
*/
|
*/
|
||||||
private static synchronized void addToTotals(long ingestJobId, long matchTimeInc) {
|
private static synchronized void addToTotals(long ingestJobId, long matchTimeInc) {
|
||||||
IngestJobTotals ingestJobTotals = totalsForIngestJobs.get(ingestJobId);
|
IngestJobTotals ingestJobTotals = totalsForIngestJobs.get(ingestJobId);
|
||||||
|
if (ingestJobTotals == null) {
|
||||||
|
ingestJobTotals = new IngestJobTotals();
|
||||||
|
totalsForIngestJobs.put(ingestJobId, ingestJobTotals);
|
||||||
|
}
|
||||||
|
|
||||||
ingestJobTotals.matchTime += matchTimeInc;
|
ingestJobTotals.matchTime += matchTimeInc;
|
||||||
ingestJobTotals.numFiles++;
|
ingestJobTotals.numFiles++;
|
||||||
totalsForIngestJobs.put(ingestJobId, ingestJobTotals);
|
totalsForIngestJobs.put(ingestJobId, ingestJobTotals);
|
||||||
@ -84,9 +85,7 @@ public class FileTypeIdIngestModule extends IngestModuleAdapter implements FileI
|
|||||||
@Override
|
@Override
|
||||||
public void startUp(IngestJobContext context) throws IngestModuleException {
|
public void startUp(IngestJobContext context) throws IngestModuleException {
|
||||||
jobId = context.getJobId();
|
jobId = context.getJobId();
|
||||||
if (refCounter.incrementAndGet(jobId) == 1) {
|
refCounter.incrementAndGet(jobId);
|
||||||
initTotals(jobId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -133,8 +132,11 @@ public class FileTypeIdIngestModule extends IngestModuleAdapter implements FileI
|
|||||||
public void shutDown(boolean ingestJobCancelled) {
|
public void shutDown(boolean ingestJobCancelled) {
|
||||||
// We only need to post the summary msg from the last module per job
|
// We only need to post the summary msg from the last module per job
|
||||||
if (refCounter.decrementAndGet(jobId) == 0) {
|
if (refCounter.decrementAndGet(jobId) == 0) {
|
||||||
IngestJobTotals jobTotals = totalsForIngestJobs.remove(jobId);
|
IngestJobTotals jobTotals;
|
||||||
|
synchronized(this) {
|
||||||
|
jobTotals = totalsForIngestJobs.remove(jobId);
|
||||||
|
}
|
||||||
|
if (jobTotals != null) {
|
||||||
StringBuilder detailsSb = new StringBuilder();
|
StringBuilder detailsSb = new StringBuilder();
|
||||||
detailsSb.append("<table border='0' cellpadding='4' width='280'>"); //NON-NLS
|
detailsSb.append("<table border='0' cellpadding='4' width='280'>"); //NON-NLS
|
||||||
detailsSb.append("<tr><td>").append(FileTypeIdModuleFactory.getModuleName()).append("</td></tr>"); //NON-NLS
|
detailsSb.append("<tr><td>").append(FileTypeIdModuleFactory.getModuleName()).append("</td></tr>"); //NON-NLS
|
||||||
@ -151,6 +153,7 @@ public class FileTypeIdIngestModule extends IngestModuleAdapter implements FileI
|
|||||||
detailsSb.toString()));
|
detailsSb.toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate if a given mime type is in the detector's registry.
|
* Validate if a given mime type is in the detector's registry.
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<Group type="102" alignment="0" attributes="0">
|
<Group type="102" alignment="0" attributes="0">
|
||||||
<EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
|
<EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
|
||||||
<Component id="skipKnownCheckBox" min="-2" max="-2" attributes="0"/>
|
<Component id="skipKnownCheckBox" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace pref="608" max="32767" attributes="0"/>
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
|
@ -72,7 +72,7 @@ final class FileTypeIdModuleSettingsPanel extends IngestModuleIngestJobSettingsP
|
|||||||
.addGroup(layout.createSequentialGroup()
|
.addGroup(layout.createSequentialGroup()
|
||||||
.addGap(10, 10, 10)
|
.addGap(10, 10, 10)
|
||||||
.addComponent(skipKnownCheckBox)
|
.addComponent(skipKnownCheckBox)
|
||||||
.addContainerGap(608, Short.MAX_VALUE))
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
);
|
);
|
||||||
layout.setVerticalGroup(
|
layout.setVerticalGroup(
|
||||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
@ -47,6 +47,7 @@ import javax.swing.JDialog;
|
|||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
import javax.swing.SwingWorker;
|
import javax.swing.SwingWorker;
|
||||||
import org.openide.filesystems.FileUtil;
|
import org.openide.filesystems.FileUtil;
|
||||||
|
import org.openide.util.Exceptions;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.sleuthkit.autopsy.casemodule.Case;
|
import org.sleuthkit.autopsy.casemodule.Case;
|
||||||
import org.sleuthkit.autopsy.coreutils.EscapeUtil;
|
import org.sleuthkit.autopsy.coreutils.EscapeUtil;
|
||||||
@ -910,11 +911,7 @@ import org.sleuthkit.datamodel.TskData;
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get any tags that associated with this artifact and apply the tag filter.
|
// Get any tags that associated with this artifact and apply the tag filter.
|
||||||
HashSet<String> uniqueTagNames = new HashSet<>();
|
HashSet<String> uniqueTagNames = getUniqueTagNames(rs.getLong("artifact_id"));
|
||||||
ResultSet tagNameRows = skCase.runQuery("SELECT display_name FROM tag_names WHERE artifact_id = " + rs.getLong("artifact_id")); //NON-NLS
|
|
||||||
while (tagNameRows.next()) {
|
|
||||||
uniqueTagNames.add(tagNameRows.getString("display_name")); //NON-NLS
|
|
||||||
}
|
|
||||||
if(failsTagFilter(uniqueTagNames, tagNamesFilter)) {
|
if(failsTagFilter(uniqueTagNames, tagNamesFilter)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1050,11 +1047,7 @@ import org.sleuthkit.datamodel.TskData;
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get any tags that associated with this artifact and apply the tag filter.
|
// Get any tags that associated with this artifact and apply the tag filter.
|
||||||
HashSet<String> uniqueTagNames = new HashSet<>();
|
HashSet<String> uniqueTagNames = getUniqueTagNames(rs.getLong("artifact_id"));
|
||||||
ResultSet tagNameRows = skCase.runQuery("SELECT display_name FROM tag_names WHERE artifact_id = " + rs.getLong("artifact_id")); //NON-NLS
|
|
||||||
while (tagNameRows.next()) {
|
|
||||||
uniqueTagNames.add(tagNameRows.getString("display_name")); //NON-NLS
|
|
||||||
}
|
|
||||||
if(failsTagFilter(uniqueTagNames, tagNamesFilter)) {
|
if(failsTagFilter(uniqueTagNames, tagNamesFilter)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1664,6 +1657,22 @@ import org.sleuthkit.datamodel.TskData;
|
|||||||
return ReportGenerator.this.getMappedAttributes(attributes);
|
return ReportGenerator.this.getMappedAttributes(attributes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get any tags associated with an artifact
|
||||||
|
* @param artifactId
|
||||||
|
* @return hash set of tag display names
|
||||||
|
* @throws SQLException
|
||||||
|
*/
|
||||||
|
private HashSet<String> getUniqueTagNames(long artifactId) throws SQLException {
|
||||||
|
HashSet<String> uniqueTagNames = new HashSet<>();
|
||||||
|
ResultSet tagNameRows = skCase.runQuery("SELECT display_name, artifact_id FROM tag_names AS tn, blackboard_artifact_tags AS bat " + //NON-NLS
|
||||||
|
"WHERE tn.tag_name_id = bat.tag_name_id AND bat.artifact_id = " + artifactId); //NON-NLS
|
||||||
|
while (tagNameRows.next()) {
|
||||||
|
uniqueTagNames.add(tagNameRows.getString("display_name")); //NON-NLS
|
||||||
|
}
|
||||||
|
return uniqueTagNames;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.hashdatabase;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
@ -57,11 +58,24 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
private List<HashDb> knownBadHashSets = new ArrayList<>();
|
private List<HashDb> knownBadHashSets = new ArrayList<>();
|
||||||
private List<HashDb> knownHashSets = new ArrayList<>();
|
private List<HashDb> knownHashSets = new ArrayList<>();
|
||||||
private long jobId;
|
private long jobId;
|
||||||
private static AtomicLong totalKnownBadCount = new AtomicLong(0);
|
private static final HashMap<Long, IngestJobTotals> totalsForIngestJobs = new HashMap<>();
|
||||||
private static AtomicLong totalCalctime = new AtomicLong(0);
|
|
||||||
private static AtomicLong totalLookuptime = new AtomicLong(0);
|
|
||||||
private static final IngestModuleReferenceCounter refCounter = new IngestModuleReferenceCounter();
|
private static final IngestModuleReferenceCounter refCounter = new IngestModuleReferenceCounter();
|
||||||
|
|
||||||
|
private static class IngestJobTotals {
|
||||||
|
private AtomicLong totalKnownBadCount = new AtomicLong(0);
|
||||||
|
private AtomicLong totalCalctime = new AtomicLong(0);
|
||||||
|
private AtomicLong totalLookuptime = new AtomicLong(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static synchronized IngestJobTotals getTotalsForIngestJobs(long ingestJobId) {
|
||||||
|
IngestJobTotals totals = totalsForIngestJobs.get(ingestJobId);
|
||||||
|
if (totals == null) {
|
||||||
|
totals = new HashDbIngestModule.IngestJobTotals();
|
||||||
|
totalsForIngestJobs.put(ingestJobId, totals);
|
||||||
|
}
|
||||||
|
return totals;
|
||||||
|
}
|
||||||
|
|
||||||
HashDbIngestModule(HashLookupModuleSettings settings) {
|
HashDbIngestModule(HashLookupModuleSettings settings) {
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
}
|
}
|
||||||
@ -123,6 +137,9 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
return ProcessResult.OK;
|
return ProcessResult.OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Safely get a reference to the totalsForIngestJobs object
|
||||||
|
IngestJobTotals totals = getTotalsForIngestJobs(jobId);
|
||||||
|
|
||||||
// calc hash value
|
// calc hash value
|
||||||
String name = file.getName();
|
String name = file.getName();
|
||||||
String md5Hash = file.getMd5Hash();
|
String md5Hash = file.getMd5Hash();
|
||||||
@ -131,7 +148,7 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
long calcstart = System.currentTimeMillis();
|
long calcstart = System.currentTimeMillis();
|
||||||
md5Hash = hasher.calculateMd5(file);
|
md5Hash = hasher.calculateMd5(file);
|
||||||
long delta = (System.currentTimeMillis() - calcstart);
|
long delta = (System.currentTimeMillis() - calcstart);
|
||||||
totalCalctime.addAndGet(delta);
|
totals.totalCalctime.addAndGet(delta);
|
||||||
|
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
logger.log(Level.WARNING, "Error calculating hash of file " + name, ex); //NON-NLS
|
logger.log(Level.WARNING, "Error calculating hash of file " + name, ex); //NON-NLS
|
||||||
@ -156,7 +173,7 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
HashInfo hashInfo = db.lookUp(file);
|
HashInfo hashInfo = db.lookUp(file);
|
||||||
if (null != hashInfo) {
|
if (null != hashInfo) {
|
||||||
foundBad = true;
|
foundBad = true;
|
||||||
totalKnownBadCount.incrementAndGet();
|
totals.totalKnownBadCount.incrementAndGet();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
skCase.setKnown(file, TskData.FileKnown.BAD);
|
skCase.setKnown(file, TskData.FileKnown.BAD);
|
||||||
@ -191,7 +208,7 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
postHashSetHitToBlackboard(file, md5Hash, hashSetName, comment, db.getSendIngestMessages());
|
postHashSetHitToBlackboard(file, md5Hash, hashSetName, comment, db.getSendIngestMessages());
|
||||||
}
|
}
|
||||||
long delta = (System.currentTimeMillis() - lookupstart);
|
long delta = (System.currentTimeMillis() - lookupstart);
|
||||||
totalLookuptime.addAndGet(delta);
|
totals.totalLookuptime.addAndGet(delta);
|
||||||
|
|
||||||
} catch (TskException ex) {
|
} catch (TskException ex) {
|
||||||
logger.log(Level.WARNING, "Couldn't lookup known bad hash for file " + name + " - see sleuthkit log for details", ex); //NON-NLS
|
logger.log(Level.WARNING, "Couldn't lookup known bad hash for file " + name + " - see sleuthkit log for details", ex); //NON-NLS
|
||||||
@ -224,7 +241,7 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
long delta = (System.currentTimeMillis() - lookupstart);
|
long delta = (System.currentTimeMillis() - lookupstart);
|
||||||
totalLookuptime.addAndGet(delta);
|
totals.totalLookuptime.addAndGet(delta);
|
||||||
|
|
||||||
} catch (TskException ex) {
|
} catch (TskException ex) {
|
||||||
logger.log(Level.WARNING, "Couldn't lookup known hash for file " + name + " - see sleuthkit log for details", ex); //NON-NLS
|
logger.log(Level.WARNING, "Couldn't lookup known hash for file " + name + " - see sleuthkit log for details", ex); //NON-NLS
|
||||||
@ -302,10 +319,9 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private synchronized void postSummary() {
|
||||||
|
IngestJobTotals jobTotals = totalsForIngestJobs.remove(jobId);
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shutDown(boolean ingestJobCancelled) {
|
|
||||||
if (refCounter.decrementAndGet(jobId) == 0) {
|
|
||||||
if ((!knownBadHashSets.isEmpty()) || (!knownHashSets.isEmpty())) {
|
if ((!knownBadHashSets.isEmpty()) || (!knownHashSets.isEmpty())) {
|
||||||
StringBuilder detailsSb = new StringBuilder();
|
StringBuilder detailsSb = new StringBuilder();
|
||||||
//details
|
//details
|
||||||
@ -314,14 +330,14 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
detailsSb.append("<tr><td>") //NON-NLS
|
detailsSb.append("<tr><td>") //NON-NLS
|
||||||
.append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.knownBadsFound"))
|
.append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.knownBadsFound"))
|
||||||
.append("</td>"); //NON-NLS
|
.append("</td>"); //NON-NLS
|
||||||
detailsSb.append("<td>").append(totalKnownBadCount.get()).append("</td></tr>"); //NON-NLS
|
detailsSb.append("<td>").append(jobTotals.totalKnownBadCount.get()).append("</td></tr>"); //NON-NLS
|
||||||
|
|
||||||
detailsSb.append("<tr><td>") //NON-NLS
|
detailsSb.append("<tr><td>") //NON-NLS
|
||||||
.append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.totalCalcTime"))
|
.append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.totalCalcTime"))
|
||||||
.append("</td><td>").append(totalCalctime.get()).append("</td></tr>\n"); //NON-NLS
|
.append("</td><td>").append(jobTotals.totalCalctime.get()).append("</td></tr>\n"); //NON-NLS
|
||||||
detailsSb.append("<tr><td>") //NON-NLS
|
detailsSb.append("<tr><td>") //NON-NLS
|
||||||
.append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.totalLookupTime"))
|
.append(NbBundle.getMessage(this.getClass(), "HashDbIngestModule.complete.totalLookupTime"))
|
||||||
.append("</td><td>").append(totalLookuptime.get()).append("</td></tr>\n"); //NON-NLS
|
.append("</td><td>").append(jobTotals.totalLookuptime.get()).append("</td></tr>\n"); //NON-NLS
|
||||||
detailsSb.append("</table>"); //NON-NLS
|
detailsSb.append("</table>"); //NON-NLS
|
||||||
|
|
||||||
detailsSb.append("<p>") //NON-NLS
|
detailsSb.append("<p>") //NON-NLS
|
||||||
@ -332,6 +348,7 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
}
|
}
|
||||||
|
|
||||||
detailsSb.append("</ul>"); //NON-NLS
|
detailsSb.append("</ul>"); //NON-NLS
|
||||||
|
|
||||||
services.postMessage(IngestMessage.createMessage(
|
services.postMessage(IngestMessage.createMessage(
|
||||||
IngestMessage.MessageType.INFO,
|
IngestMessage.MessageType.INFO,
|
||||||
HashLookupModuleFactory.getModuleName(),
|
HashLookupModuleFactory.getModuleName(),
|
||||||
@ -340,5 +357,11 @@ public class HashDbIngestModule extends IngestModuleAdapter implements FileInges
|
|||||||
detailsSb.toString()));
|
detailsSb.toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutDown(boolean ingestJobCancelled) {
|
||||||
|
if (refCounter.decrementAndGet(jobId) == 0) {
|
||||||
|
postSummary();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ import org.sleuthkit.autopsy.ingest.FileIngestModule;
|
|||||||
import org.sleuthkit.autopsy.ingest.IngestModuleFactory;
|
import org.sleuthkit.autopsy.ingest.IngestModuleFactory;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings;
|
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettingsPanel;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSetttingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A factory that creates file ingest modules that do hash database lookups.
|
* A factory that creates file ingest modules that do hash database lookups.
|
||||||
@ -99,7 +99,7 @@ public class HashLookupModuleFactory extends IngestModuleFactoryAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IngestModuleGlobalSetttingsPanel getGlobalSettingsPanel() {
|
public IngestModuleGlobalSettingsPanel getGlobalSettingsPanel() {
|
||||||
HashLookupSettingsPanel globalSettingsPanel = new HashLookupSettingsPanel();
|
HashLookupSettingsPanel globalSettingsPanel = new HashLookupSettingsPanel();
|
||||||
globalSettingsPanel.load();
|
globalSettingsPanel.load();
|
||||||
return globalSettingsPanel;
|
return globalSettingsPanel;
|
||||||
|
@ -45,13 +45,13 @@ import org.sleuthkit.autopsy.ingest.IngestManager;
|
|||||||
import org.sleuthkit.datamodel.TskCoreException;
|
import org.sleuthkit.datamodel.TskCoreException;
|
||||||
import org.sleuthkit.autopsy.hashdatabase.HashDbManager.HashDb;
|
import org.sleuthkit.autopsy.hashdatabase.HashDbManager.HashDb;
|
||||||
import org.sleuthkit.autopsy.hashdatabase.HashDbManager.HashDb.KnownFilesType;
|
import org.sleuthkit.autopsy.hashdatabase.HashDbManager.HashDb.KnownFilesType;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSetttingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instances of this class provide a comprehensive UI for managing the hash sets
|
* Instances of this class provide a comprehensive UI for managing the hash sets
|
||||||
* configuration.
|
* configuration.
|
||||||
*/
|
*/
|
||||||
public final class HashLookupSettingsPanel extends IngestModuleGlobalSetttingsPanel implements OptionsPanel {
|
public final class HashLookupSettingsPanel extends IngestModuleGlobalSettingsPanel implements OptionsPanel {
|
||||||
|
|
||||||
private static final String NO_SELECTION_TEXT = NbBundle
|
private static final String NO_SELECTION_TEXT = NbBundle
|
||||||
.getMessage(HashLookupSettingsPanel.class, "HashDbConfigPanel.noSelectionText");
|
.getMessage(HashLookupSettingsPanel.class, "HashDbConfigPanel.noSelectionText");
|
||||||
|
@ -280,3 +280,7 @@ KeywordSearchListsAbstract.writeLists.errMsg2.msg=A module caused an error liste
|
|||||||
KeywordSearchListsAbstract.deleteList.errMsg1.msg=A module caused an error listening to KeywordSearchListsAbstract updates. See log to determine which module. Some data could be incomplete.
|
KeywordSearchListsAbstract.deleteList.errMsg1.msg=A module caused an error listening to KeywordSearchListsAbstract updates. See log to determine which module. Some data could be incomplete.
|
||||||
KeywordSearchListsManagementPanel.newKeywordListDescription=Keyword List <{0}> already exists as a read-only list. Do you want to replace it for the duration of the program (the change will not be persistent).
|
KeywordSearchListsManagementPanel.newKeywordListDescription=Keyword List <{0}> already exists as a read-only list. Do you want to replace it for the duration of the program (the change will not be persistent).
|
||||||
KeywordSearchListsManagementPanel.newKeywordListDescription2=Keyword List <{0}> already exists, do you want to replace it?
|
KeywordSearchListsManagementPanel.newKeywordListDescription2=Keyword List <{0}> already exists, do you want to replace it?
|
||||||
|
DropdownSearchPanelgetQueryList.exception.msg=No list for single-keyword search
|
||||||
|
KeywordSearchModuleFactory.getIngestJobSettingsPanel.exception.msg=Expected settings argument to be instanceof KeywordSearchJobSettings
|
||||||
|
KeywordSearchModuleFactory.createFileIngestModule.exception.msg=Expected settings argument to be instanceof KeywordSearchJobSettings
|
||||||
|
SearchRunner.Searcher.done.err.msg=Error performing keyword search
|
||||||
|
@ -31,13 +31,13 @@ KeywordSearchListsViewerPanel.manageListsButton.text=\u30EA\u30B9\u30C8\u3092\u7
|
|||||||
KeywordSearchListsViewerPanel.ingestIndexLabel.text=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A
|
KeywordSearchListsViewerPanel.ingestIndexLabel.text=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A
|
||||||
ExtractedContentPanel.pageButtonsLabel.text=\u30DA\u30FC\u30B8
|
ExtractedContentPanel.pageButtonsLabel.text=\u30DA\u30FC\u30B8
|
||||||
ExtractedContentPanel.pagesLabel.text=\u30DA\u30FC\u30B8\uFF1A
|
ExtractedContentPanel.pagesLabel.text=\u30DA\u30FC\u30B8\uFF1A
|
||||||
KeywordSearchEditListPanel.ingestMessagesCheckbox.text=\u51E6\u7406\u4E2D\u306B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u30A4\u30F3\u30DC\u30C3\u30AF\u30B9\u306B\u9001\u4FE1
|
KeywordSearchEditListPanel.ingestMessagesCheckbox.text=\u30D2\u30C3\u30C8\u6BCE\u306B\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30A4\u30F3\u30DC\u30C3\u30AF\u30B9\u3078\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u9001\u4FE1
|
||||||
KeywordSearchEditListPanel.ingestMessagesCheckbox.toolTipText=\u3053\u306E\u30EA\u30B9\u30C8\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u691C\u7D22\u306B\u30D2\u30C3\u30C8\u3057\u305F\u5834\u5408\u3001\u51E6\u7406\u4E2D\u306B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u30A4\u30F3\u30DC\u30C3\u30AF\u30B9\u306B\u9001\u4FE1
|
KeywordSearchEditListPanel.ingestMessagesCheckbox.toolTipText=\u3053\u306E\u30EA\u30B9\u30C8\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u691C\u7D22\u306B\u30D2\u30C3\u30C8\u3057\u305F\u5834\u5408\u3001\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u30A4\u30F3\u30DC\u30C3\u30AF\u30B9\u306B\u9001\u4FE1
|
||||||
KeywordSearchEditListPanel.keywordOptionsLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30AA\u30D7\u30B7\u30E7\u30F3
|
KeywordSearchEditListPanel.keywordOptionsLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30AA\u30D7\u30B7\u30E7\u30F3
|
||||||
KeywordSearchEditListPanel.listOptionsLabel.text=\u30EA\u30B9\u30C8\u30AA\u30D7\u30B7\u30E7\u30F3
|
KeywordSearchEditListPanel.listOptionsLabel.text=\u30EA\u30B9\u30C8\u30AA\u30D7\u30B7\u30E7\u30F3
|
||||||
KeywordSearchListsManagementPanel.keywordListsLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\uFF1A
|
KeywordSearchListsManagementPanel.keywordListsLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\uFF1A
|
||||||
KeywordSearchEditListPanel.keywordsLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\uFF1A
|
KeywordSearchEditListPanel.keywordsLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\uFF1A
|
||||||
OpenIDE-Module-Short-Description=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u51E6\u7406\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u30D3\u30E5\u30FC\u30A2\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30C4\u30FC\u30EB
|
OpenIDE-Module-Short-Description=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u30D3\u30E5\u30FC\u30A2\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30C4\u30FC\u30EB
|
||||||
KeywordSearchListsViewerPanel.manageListsButton.toolTipText=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3001\u30EA\u30B9\u30C8\u306E\u8A2D\u5B9A\u3068\u95A2\u9023\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u306E\u7BA1\u7406\u3002\u3053\u306E\u8A2D\u5B9A\u306F\u5168\u3066\u306E\u30B1\u30FC\u30B9\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002
|
KeywordSearchListsViewerPanel.manageListsButton.toolTipText=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3001\u30EA\u30B9\u30C8\u306E\u8A2D\u5B9A\u3068\u95A2\u9023\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u306E\u7BA1\u7406\u3002\u3053\u306E\u8A2D\u5B9A\u306F\u5168\u3066\u306E\u30B1\u30FC\u30B9\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002
|
||||||
AbstractKeywordSearchPerformer.search.dialogErrorHeader=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A8\u30E9\u30FC
|
AbstractKeywordSearchPerformer.search.dialogErrorHeader=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A8\u30E9\u30FC
|
||||||
AbstractKeywordSearchPerformer.search.invalidSyntaxHeader=\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u30A8\u30E9\u30FC
|
AbstractKeywordSearchPerformer.search.invalidSyntaxHeader=\u30B7\u30F3\u30BF\u30C3\u30AF\u30B9\u30A8\u30E9\u30FC
|
||||||
@ -46,13 +46,13 @@ AbstractKeywordSearchPerformer.search.ingestInProgressBody=<html>\u30AD\u30FC\u3
|
|||||||
AbstractKeywordSearchPerformer.search.emptyKeywordErrorBody=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u304C\u7A7A\u767D\u3067\u3059\u3002\u6700\u4F4E\uFF11\u3064\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u8FFD\u52A0\u3057\u3066\u4E0B\u3055\u3044\u3002
|
AbstractKeywordSearchPerformer.search.emptyKeywordErrorBody=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u304C\u7A7A\u767D\u3067\u3059\u3002\u6700\u4F4E\uFF11\u3064\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u8FFD\u52A0\u3057\u3066\u4E0B\u3055\u3044\u3002
|
||||||
AbstractKeywordSearchPerformer.search.pleaseEnterKeywordBody=\u691C\u7D22\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044
|
AbstractKeywordSearchPerformer.search.pleaseEnterKeywordBody=\u691C\u7D22\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044
|
||||||
AbstractKeywordSearchPerformer.search.noFilesInIdxMsg=<html>\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u307E\u3060\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002<br />\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u3001\u518D\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306F\u3000{0}\u3000\u5206\u6BCE\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002</html>
|
AbstractKeywordSearchPerformer.search.noFilesInIdxMsg=<html>\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u307E\u3060\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002<br />\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u3001\u518D\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306F\u3000{0}\u3000\u5206\u6BCE\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002</html>
|
||||||
AbstractKeywordSearchPerformer.search.noFilesIdxdMsg=<html>\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002<br />\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u6709\u52B9\u5316\u3057\u3066\u30A4\u30E1\u30FC\u30B8\u3092\u518D\u51E6\u7406\u3002</html>
|
AbstractKeywordSearchPerformer.search.noFilesIdxdMsg=<html>\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002<br />\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u6709\u52B9\u5316\u3057\u3066\u30A4\u30E1\u30FC\u30B8\u3092\u518D\u5EA6\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3002</html>
|
||||||
ExtractedContentPanel.setMarkup.panelTxt=<span style\='font-style\:italic'>\u30C6\u30AD\u30B9\u30C8\u30ED\u30FC\u30C9\u4E2D\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044...</span>
|
ExtractedContentPanel.setMarkup.panelTxt=<span style\='font-style\:italic'>\u30C6\u30AD\u30B9\u30C8\u30ED\u30FC\u30C9\u4E2D\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044...</span>
|
||||||
ExtractedContentViewer.toString=\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8
|
ExtractedContentViewer.toString=\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8
|
||||||
ExtractedContentViewer.toolTip=\u30D5\u30A1\u30A4\u30EB\u3084\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u7D50\u679C\u304B\u3089\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3002\u3053\u306E\u30D3\u30E5\u30FC\u30A2\u3092\u30A2\u30AF\u30C6\u30A3\u30D9\u30A4\u30C8\u3059\u308B\u306B\u306F\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u51E6\u7406\u3092\u30D5\u30A1\u30A4\u30EB\u4E0A\u3067\u5B9F\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
|
ExtractedContentViewer.toolTip=\u30D5\u30A1\u30A4\u30EB\u3084\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u7D50\u679C\u304B\u3089\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3002\u3053\u306E\u30D3\u30E5\u30FC\u30A2\u3092\u30A2\u30AF\u30C6\u30A3\u30D9\u30A4\u30C8\u3059\u308B\u306B\u306F\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u30D5\u30A1\u30A4\u30EB\u4E0A\u3067\u5B9F\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
|
||||||
ExtractedContentViewer.getTitle=\u30C6\u30AD\u30B9\u30C8
|
ExtractedContentViewer.getTitle=\u30C6\u30AD\u30B9\u30C8
|
||||||
ExtractedContentViewer.getSolrContent.knownFileMsg=<p style\=''font-style\:italic''>{0}\u306F\u65E2\u77E5\u30D5\u30A1\u30A4\u30EB\u3067\u3059\uFF08MDS\u30CF\u30C3\u30B7\u30E5\u306B\u57FA\u3065\u304F\u3068\uFF09\u3002\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002</p>
|
ExtractedContentViewer.getSolrContent.knownFileMsg=<p style\=''font-style\:italic''>{0}\u306F\u65E2\u77E5\u30D5\u30A1\u30A4\u30EB\u3067\u3059\uFF08MDS\u30CF\u30C3\u30B7\u30E5\u306B\u57FA\u3065\u304F\u3068\uFF09\u3002\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002</p>
|
||||||
ExtractedContentViewer.getSolrContent.noTxtYetMsg=<p style\=''font-style\:italic''>{0}\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002<br/>\u30C6\u30AD\u30B9\u30C8\u304C\u7121\u3044\u304B\u3001\u307E\u3060\u89E3\u6790\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u304C\u51E6\u7406\u4E2D\u306B\u6709\u52B9\u5316\u3055\u308C\u3066\u3044\u306A\u304B\u3063\u305F\u306E\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002</p>
|
ExtractedContentViewer.getSolrContent.noTxtYetMsg=<p style\=''font-style\:italic''>{0}\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002<br/>\u30C6\u30AD\u30B9\u30C8\u304C\u7121\u3044\u304B\u3001\u307E\u3060\u89E3\u6790\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u304C\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306B\u6709\u52B9\u5316\u3055\u308C\u3066\u3044\u306A\u304B\u3063\u305F\u306E\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002</p>
|
||||||
HighlightedMatchesSource.getMarkup.noMatchMsg=<html><pre><span style\\\\\='background\\\\\:yellow'>\u3053\u306E\u30DA\u30FC\u30B8\u4E0A\u3067\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u30D2\u30C3\u30C8\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002<br />\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u542B\u307E\u308C\u3066\u3044\u305F\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 <br />\u5225\u306E\u30DA\u30FC\u30B8\u306B\u79FB\u52D5\u3059\u308B\u304B\u3001\u30AA\u30EA\u30B8\u30CA\u30EB\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3059\u308B\u306E\u306B\u3001\u300C\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u300D\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002</span></pre></html>
|
HighlightedMatchesSource.getMarkup.noMatchMsg=<html><pre><span style\\\\\='background\\\\\:yellow'>\u3053\u306E\u30DA\u30FC\u30B8\u4E0A\u3067\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u30D2\u30C3\u30C8\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002<br />\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u542B\u307E\u308C\u3066\u3044\u305F\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002 <br />\u5225\u306E\u30DA\u30FC\u30B8\u306B\u79FB\u52D5\u3059\u308B\u304B\u3001\u30AA\u30EA\u30B8\u30CA\u30EB\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3059\u308B\u306E\u306B\u3001\u300C\u62BD\u51FA\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u300D\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002</span></pre></html>
|
||||||
HighlightedMatchesSource.toString=\u691C\u7D22\u7D50\u679C
|
HighlightedMatchesSource.toString=\u691C\u7D22\u7D50\u679C
|
||||||
Installer.reportPortError=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D0\u30FC\u30DD\u30FC\u30C8 {0} \u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u4F7F\u7528\u3057\u3066\u3044\u308B\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u304C {1} \u3092\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30E6\u30FC\u30B6\u30FC\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306E {3} \u306E {2} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u30D5\u30A1\u30A4\u30EB\u306E\u5909\u66F4\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3082\u3057\u4ED6\u306E\u51E6\u7406\u304C\u554F\u984C\u306E\u539F\u56E0\u3067\u3042\u308C\u3070\u3001\u30B7\u30B9\u30C6\u30E0\u3092\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044\u3002
|
Installer.reportPortError=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D0\u30FC\u30DD\u30FC\u30C8 {0} \u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u4F7F\u7528\u3057\u3066\u3044\u308B\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u304C {1} \u3092\u30D6\u30ED\u30C3\u30AF\u3057\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30E6\u30FC\u30B6\u30FC\u30D5\u30A9\u30EB\u30C0\u30FC\u5185\u306E {3} \u306E {2} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u30D5\u30A1\u30A4\u30EB\u306E\u5909\u66F4\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3082\u3057\u4ED6\u306E\u51E6\u7406\u304C\u554F\u984C\u306E\u539F\u56E0\u3067\u3042\u308C\u3070\u3001\u30B7\u30B9\u30C6\u30E0\u3092\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044\u3002
|
||||||
@ -64,7 +64,7 @@ KeywordSearchConfigurationPanel.customizeComponents.listTabTitle=\u30EA\u30B9\u3
|
|||||||
KeywordSearchConfigurationPanel.customizeComponents.stringExtTitle=\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA
|
KeywordSearchConfigurationPanel.customizeComponents.stringExtTitle=\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA
|
||||||
KeywordSearchConfigurationPanel.customizeComponents.genTabTitle=\u4E00\u822C
|
KeywordSearchConfigurationPanel.customizeComponents.genTabTitle=\u4E00\u822C
|
||||||
KeywordSearchConfigurationPanel.customizeComponents.listLabToolTip=\u30EA\u30B9\u30C8\u8A2D\u5B9A
|
KeywordSearchConfigurationPanel.customizeComponents.listLabToolTip=\u30EA\u30B9\u30C8\u8A2D\u5B9A
|
||||||
KeywordSearchConfigurationPanel.customizeComponents.stringExtToolTip=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u51E6\u7406\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u8A2D\u5B9A
|
KeywordSearchConfigurationPanel.customizeComponents.stringExtToolTip=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u8A2D\u5B9A
|
||||||
KeywordSearchConfigurationPanel.customizeComponents.genTabToolTip=\u4E00\u822C\u8A2D\u5B9A
|
KeywordSearchConfigurationPanel.customizeComponents.genTabToolTip=\u4E00\u822C\u8A2D\u5B9A
|
||||||
KeywordSearchConfigurationPanel1.customizeComponents.title=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u524A\u9664
|
KeywordSearchConfigurationPanel1.customizeComponents.title=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u524A\u9664
|
||||||
KeywordSearchConfigurationPanel1.customizeComponents.body=\u5168\u3066\u306E\u30B1\u30FC\u30B9\u306B\u304A\u3051\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u3053\u306E\u524A\u9664\u3092\u5B9F\u884C\u3057\u307E\u3059\u304B\uFF1F
|
KeywordSearchConfigurationPanel1.customizeComponents.body=\u5168\u3066\u306E\u30B1\u30FC\u30B9\u306B\u304A\u3051\u308B\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u3002\u3053\u306E\u524A\u9664\u3092\u5B9F\u884C\u3057\u307E\u3059\u304B\uFF1F
|
||||||
@ -92,10 +92,10 @@ KeywordSearchEditListPanel.exportButtonActionPerformed.regExColName=\u6B63\u898F
|
|||||||
KeywordSearchFilterNode.getFileActions.openExternViewActLbl=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F
|
KeywordSearchFilterNode.getFileActions.openExternViewActLbl=\u5916\u90E8\u30D3\u30E5\u30FC\u30A2\u3067\u958B\u304F
|
||||||
KeywordSearchFilterNode.getFileActions.searchSameMd5=\u540C\u4E00\u306EMD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22
|
KeywordSearchFilterNode.getFileActions.searchSameMd5=\u540C\u4E00\u306EMD5\u30CF\u30C3\u30B7\u30E5\u3092\u6301\u3064\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22
|
||||||
KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=\u65B0\u3057\u3044\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u8868\u793A
|
KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=\u65B0\u3057\u3044\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u8868\u793A
|
||||||
KeywordSearchIngestModule.init.badInitMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30B5\u30FC\u30D0\u30FC\u304C\u6B63\u3057\u304F\u8D77\u52D5\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u51E6\u7406\u3092\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002
|
KeywordSearchIngestModule.init.badInitMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30B5\u30FC\u30D0\u30FC\u304C\u6B63\u3057\u304F\u8D77\u52D5\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u3092\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002
|
||||||
KeywordSearchIngestModule.init.tryStopSolrMsg={0}<br />\u53E4\u3044java Solr\u51E6\u7406\u3092\u505C\u6B62\u3057\uFF08\u5B58\u5728\u3059\u308C\u3070\uFF09\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
KeywordSearchIngestModule.init.tryStopSolrMsg={0}<br />\u53E4\u3044java Solr\u51E6\u7406\u3092\uFF08\u5B58\u5728\u3059\u308C\u3070\uFF09\u505C\u6B62\u3057\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
||||||
KeywordSearchIngestModule.init.noKwInLstMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u306B\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002
|
KeywordSearchIngestModule.init.noKwInLstMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u306B\u30AD\u30FC\u30EF\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002
|
||||||
KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3060\u3051\u5B9F\u884C\u3055\u308C\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u306F\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3059\uFF08\u300C\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 - \u51E6\u7406\u306B\u8FFD\u52A0\u300D\u3092\u4F7F\u7528\u3057\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0\u3059\u308B\u306E\u306F\u53EF\u80FD\u3067\u3059
|
KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3060\u3051\u5B9F\u884C\u3055\u308C\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u306F\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3059\uFF08\u300C\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8 - \u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u8FFD\u52A0\u300D\u3092\u4F7F\u7528\u3057\u3001\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u8FFD\u52A0\u3059\u308B\u306E\u306F\u53EF\u80FD\u3067\u3059
|
||||||
KeywordSearchIngestModule.postIndexSummary.knowFileHeaderLbl=\u65E2\u77E5\u30BF\u30A4\u30D7\u306E\u30D5\u30A1\u30A4\u30EB
|
KeywordSearchIngestModule.postIndexSummary.knowFileHeaderLbl=\u65E2\u77E5\u30BF\u30A4\u30D7\u306E\u30D5\u30A1\u30A4\u30EB
|
||||||
KeywordSearchIngestModule.postIndexSummary.fileGenStringsHead=\u4E00\u822C\u7684\u306A\u30B9\u30C8\u30EA\u30F3\u30B0\u304C\u62BD\u51FA\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB
|
KeywordSearchIngestModule.postIndexSummary.fileGenStringsHead=\u4E00\u822C\u7684\u306A\u30B9\u30C8\u30EA\u30F3\u30B0\u304C\u62BD\u51FA\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB
|
||||||
KeywordSearchIngestModule.postIndexSummary.mdOnlyLbl=\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u307F\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u307E\u3057\u305F
|
KeywordSearchIngestModule.postIndexSummary.mdOnlyLbl=\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u307F\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u307E\u3057\u305F
|
||||||
@ -104,14 +104,14 @@ KeywordSearchIngestModule.postIndexSummary.errTxtLbl=\u30A8\u30E9\u30FC\uFF08\u3
|
|||||||
KeywordSearchIngestModule.postIndexSummary.errIoLbl=\u30A8\u30E9\u30FC\uFF08I/O\uFF09
|
KeywordSearchIngestModule.postIndexSummary.errIoLbl=\u30A8\u30E9\u30FC\uFF08I/O\uFF09
|
||||||
KeywordSearchIngestModule.postIndexSummary.kwIdxResultsLbl=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u7D50\u679C
|
KeywordSearchIngestModule.postIndexSummary.kwIdxResultsLbl=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u7D50\u679C
|
||||||
KeywordSearchIngestModule.postIndexSummary.kwIdxErrsTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30A8\u30E9\u30FC
|
KeywordSearchIngestModule.postIndexSummary.kwIdxErrsTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30A8\u30E9\u30FC
|
||||||
KeywordSearchIngestModule.postIndexSummary.kwIdxErrMsgFiles=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u4E2D\u306B{0}\u30D5\u30A1\u30A4\u30EB\u306E\u51E6\u7406\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
|
KeywordSearchIngestModule.postIndexSummary.kwIdxErrMsgFiles=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u4E2D\u306B{0}\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
|
||||||
KeywordSearchIngestModule.postIndexSummary.kwIdxWarnMsgTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u8B66\u544A
|
KeywordSearchIngestModule.postIndexSummary.kwIdxWarnMsgTitle=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u8B66\u544A
|
||||||
KeywordSearchIngestModule.postIndexSummary.idxErrReadFilesMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u8FBC\u307F\u3084\u30C6\u30AD\u30B9\u30C8\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u539F\u56E0\u306F\u7834\u640D\u3057\u305F\u30E1\u30C7\u30A3\u30A2\u3084\u30D5\u30A1\u30A4\u30EB\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002
|
KeywordSearchIngestModule.postIndexSummary.idxErrReadFilesMsg=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u30B5\u30FC\u30D3\u30B9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u8FBC\u307F\u3084\u30C6\u30AD\u30B9\u30C8\u62BD\u51FA\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u539F\u56E0\u306F\u7834\u640D\u3057\u305F\u30E1\u30C7\u30A3\u30A2\u3084\u30D5\u30A1\u30A4\u30EB\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002
|
||||||
KeywordSearchListsViewerPanel.initIngest.addIngestTitle=\u51E6\u7406\u306B\u8FFD\u52A0
|
KeywordSearchListsViewerPanel.initIngest.addIngestTitle=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u8FFD\u52A0
|
||||||
KeywordSearchListsViewerPanel.initIngest.addIngestMsg=<html>\u8FFD\u52A0\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u9078\u629E\u3067\u304D\u307E\u3059<br />\u305D\u3057\u3066\u5B9F\u884C\u4E2D\u306E\u51E6\u7406\u306B\u8FFD\u52A0\u3067\u304D\u307E\u3059<br />\u6B21\u56DE\u306E\u30D5\u30A1\u30A4\u30EB\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u518D\u69CB\u7BC9\u306E\u3068\u304D\u306B\u9078\u629E\u3055\u308C\u305F\u30EA\u30B9\u30C8\u3082\u691C\u7D22\u3055\u308C\u307E\u3059\u3002</html>
|
KeywordSearchListsViewerPanel.initIngest.addIngestMsg=<html>\u8FFD\u52A0\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u9078\u629E\u3067\u304D\u307E\u3059<br />\u305D\u3057\u3066\u5B9F\u884C\u4E2D\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u8FFD\u52A0\u3067\u304D\u307E\u3059<br />\u6B21\u56DE\u306E\u30D5\u30A1\u30A4\u30EB\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u518D\u69CB\u7BC9\u306E\u3068\u304D\u306B\u9078\u629E\u3055\u308C\u305F\u30EA\u30B9\u30C8\u3082\u691C\u7D22\u3055\u308C\u307E\u3059\u3002</html>
|
||||||
KeywordSearchListsViewerPanel.initIngest.searchIngestTitle=\u691C\u7D22
|
KeywordSearchListsViewerPanel.initIngest.searchIngestTitle=\u691C\u7D22
|
||||||
KeywordSearchListsViewerPanel.initIngest.addIdxSearchMsg=\u9078\u629E\u3057\u305F\u30EA\u30B9\u30C8\u5185\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u5185\u3067\u691C\u7D22
|
KeywordSearchListsViewerPanel.initIngest.addIdxSearchMsg=\u9078\u629E\u3057\u305F\u30EA\u30B9\u30C8\u5185\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u5185\u3067\u691C\u7D22
|
||||||
KeywordSearchListsViewerPanel.initIngest.ongoingIngestMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A {0} \uFF08\u51E6\u7406\u306F\u5B9F\u884C\u4E2D\uFF09
|
KeywordSearchListsViewerPanel.initIngest.ongoingIngestMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A {0} \uFF08\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306F\u5B9F\u884C\u4E2D\uFF09
|
||||||
KeywordSearchListsViewerPanel.initIngest.fileIndexCtMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A {0}
|
KeywordSearchListsViewerPanel.initIngest.fileIndexCtMsg=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\uFF1A {0}
|
||||||
KeywordSearch.selectedColLbl=\u9078\u629E\u6E08\u307F
|
KeywordSearch.selectedColLbl=\u9078\u629E\u6E08\u307F
|
||||||
KeywordSearch.nameColLbl=\u540D\u524D
|
KeywordSearch.nameColLbl=\u540D\u524D
|
||||||
@ -139,7 +139,7 @@ ExtractedContentPanel.pagePreviousButton.actionCommand=
|
|||||||
ExtractedContentPanel.pageOfLabel.text=of
|
ExtractedContentPanel.pageOfLabel.text=of
|
||||||
ExtractedContentPanel.pageCurLabel.text=-
|
ExtractedContentPanel.pageCurLabel.text=-
|
||||||
ExtractedContentPanel.pageTotalLabel.text=-
|
ExtractedContentPanel.pageTotalLabel.text=-
|
||||||
AbstractFileChunk.index.exception.msg=\u30D5\u30A1\u30A4\u30EB\u30B9\u30C8\u30EA\u30F3\u30B0\u30C1\u30E3\u30F3\u30AF\u306E\u51E6\u7406\u4E2D\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A {0}, \u30C1\u30E3\u30F3\u30AF\: {1}
|
AbstractFileChunk.index.exception.msg=\u30D5\u30A1\u30A4\u30EB\u30B9\u30C8\u30EA\u30F3\u30B0\u30C1\u30E3\u30F3\u30AF\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\uFF1A {0}, \u30C1\u30E3\u30F3\u30AF\: {1}
|
||||||
AbstractFileStringContentStream.getSize.exception.msg=\u30B9\u30C8\u30EA\u30F3\u30B0\u5168\u4F53\u304C\u5909\u63DB\u3055\u308C\u306A\u3051\u308C\u3070\u3001\u5909\u63DB\u3055\u308C\u305F\u30B9\u30C8\u30EA\u30F3\u30B0\u5185\u306E\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6570\u306F\u4E0D\u660E\u3067\u3059\u3002
|
AbstractFileStringContentStream.getSize.exception.msg=\u30B9\u30C8\u30EA\u30F3\u30B0\u5168\u4F53\u304C\u5909\u63DB\u3055\u308C\u306A\u3051\u308C\u3070\u3001\u5909\u63DB\u3055\u308C\u305F\u30B9\u30C8\u30EA\u30F3\u30B0\u5185\u306E\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6570\u306F\u4E0D\u660E\u3067\u3059\u3002
|
||||||
AbstractFileStringContentStream.getSrcInfo.text=\u30D5\u30A1\u30A4\u30EB\uFF1A{0}
|
AbstractFileStringContentStream.getSrcInfo.text=\u30D5\u30A1\u30A4\u30EB\uFF1A{0}
|
||||||
ByteContentStream.getSrcInfo.text=\u30D5\u30A1\u30A4\u30EB\uFF1A{0}
|
ByteContentStream.getSrcInfo.text=\u30D5\u30A1\u30A4\u30EB\uFF1A{0}
|
||||||
@ -158,7 +158,7 @@ HighlightedMatchesSource.nextItem.exception.msg=\u6B21\u306E\u30A2\u30A4\u30C6\u
|
|||||||
HighlightedMatchesSource.previousItem.exception.msg=\u524D\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002
|
HighlightedMatchesSource.previousItem.exception.msg=\u524D\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u3042\u308A\u307E\u305B\u3093\u3002
|
||||||
Ingester.ingest.exception.unknownImgId.msg=\u4E0B\u8A18\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059\u3002\u4E0D\u660E\u306A\u30A4\u30E1\u30FC\u30B8ID\uFF1A{0}
|
Ingester.ingest.exception.unknownImgId.msg=\u4E0B\u8A18\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059\u3002\u4E0D\u660E\u306A\u30A4\u30E1\u30FC\u30B8ID\uFF1A{0}
|
||||||
Ingester.ingest.exception.cantReadStream.msg=\u30B3\u30F3\u30C6\u30F3\u30C4\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0}
|
Ingester.ingest.exception.cantReadStream.msg=\u30B3\u30F3\u30C6\u30F3\u30C4\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF1A{0}
|
||||||
Ingester.ingest.exception.err.msg=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u51E6\u7406\u4E2D\u306E\u30A8\u30E9\u30FC\uFF1A{0}
|
Ingester.ingest.exception.err.msg=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306E\u30A8\u30E9\u30FC\uFF1A{0}
|
||||||
Ingester.ingestExtract.exception.solrTimeout.msg=\u4E0B\u8A18\u306EID\u306B\u5BFE\u3059\u308B\u3001Solr\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF1A{0}, \u540D\u524D\: {1}
|
Ingester.ingestExtract.exception.solrTimeout.msg=\u4E0B\u8A18\u306EID\u306B\u5BFE\u3059\u308B\u3001Solr\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF1A{0}, \u540D\u524D\: {1}
|
||||||
Ingester.ingestExtract.exception.probPostToSolr.msg=Solr\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30DD\u30B9\u30C8\u3059\u308B\u306E\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002ID\uFF1A{0}, \u540D\u524D\: {1}
|
Ingester.ingestExtract.exception.probPostToSolr.msg=Solr\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30DD\u30B9\u30C8\u3059\u308B\u306E\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002ID\uFF1A{0}, \u540D\u524D\: {1}
|
||||||
Ingester.UpReqestTask.run.exception.sorlNotAvail.msg=Solr\u30B3\u30A2\u304C\u5229\u7528\u4E0D\u53EF\u3067\u3059\u3002\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3002
|
Ingester.UpReqestTask.run.exception.sorlNotAvail.msg=Solr\u30B3\u30A2\u304C\u5229\u7528\u4E0D\u53EF\u3067\u3059\u3002\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3002
|
||||||
@ -220,29 +220,29 @@ Keyword.toString.text=Keyword'{'query\={0}, isLiteral\={1}, keywordType\={2}'}'
|
|||||||
KeywordSearchJobSettingsPanel.keywordSearchEncodings.text=-
|
KeywordSearchJobSettingsPanel.keywordSearchEncodings.text=-
|
||||||
KeywordSearchJobSettingsPanel.languagesValLabel.text=-
|
KeywordSearchJobSettingsPanel.languagesValLabel.text=-
|
||||||
KeywordSearchJobSettingsPanel.encodingsLabel.text=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\uFF1A
|
KeywordSearchJobSettingsPanel.encodingsLabel.text=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\uFF1A
|
||||||
KeywordSearchJobSettingsPanel.titleLabel.text=\u51E6\u7406\u4E2D\u306B\u6709\u52B9\u306A\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u9078\u629E\uFF1A
|
KeywordSearchJobSettingsPanel.titleLabel.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306B\u6709\u52B9\u306A\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8\u3092\u9078\u629E\uFF1A
|
||||||
KeywordSearchJobSettingsPanel.languagesLabel.toolTipText=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u3092\u6709\u52B9\u306B\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\u3002\u30A2\u30C9\u30D0\u30F3\u30B9\u8A2D\u5B9A\u304B\u3089\u5909\u66F4\u304C\u53EF\u80FD\u3067\u3059\u3002
|
KeywordSearchJobSettingsPanel.languagesLabel.toolTipText=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u3092\u6709\u52B9\u306B\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\u3002\u30A2\u30C9\u30D0\u30F3\u30B9\u8A2D\u5B9A\u304B\u3089\u5909\u66F4\u304C\u53EF\u80FD\u3067\u3059\u3002
|
||||||
KeywordSearchJobSettingsPanel.languagesLabel.text=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u3092\u6709\u52B9\u306B\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\uFF1A
|
KeywordSearchJobSettingsPanel.languagesLabel.text=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u3092\u6709\u52B9\u306B\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\uFF1A
|
||||||
KeywordSearchGlobalLanguageSettingsPanel.enableUTF8Checkbox.text=UTF8\u30C6\u30AD\u30B9\u30C8\u62BD\u51FA\u306E\u6709\u52B9\u5316
|
KeywordSearchGlobalLanguageSettingsPanel.enableUTF8Checkbox.text=UTF8\u30C6\u30AD\u30B9\u30C8\u62BD\u51FA\u306E\u6709\u52B9\u5316
|
||||||
KeywordSearchGlobalLanguageSettingsPanel.ingestSettingsLabel.text=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u306E\u51E6\u7406\u65B9\u6CD5\u306E\u8A2D\u5B9A\uFF08\u5909\u66F4\u306F\u6B21\u56DE\u306E\u51E6\u7406\u304B\u3089\u6709\u52B9\uFF09\uFF1A
|
KeywordSearchGlobalLanguageSettingsPanel.ingestSettingsLabel.text=\u4E0D\u660E\u306A\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7\u304B\u3089\u306E\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u8A2D\u5B9A\uFF08\u5909\u66F4\u306F\u6B21\u56DE\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u304B\u3089\u6709\u52B9\uFF09\uFF1A
|
||||||
KeywordSearchGlobalLanguageSettingsPanel.enableUTF16Checkbox.text=UTF16LE\u3068UTF16BE\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u306E\u6709\u52B9\u5316
|
KeywordSearchGlobalLanguageSettingsPanel.enableUTF16Checkbox.text=UTF16LE\u3068UTF16BE\u30B9\u30C8\u30EA\u30F3\u30B0\u62BD\u51FA\u306E\u6709\u52B9\u5316
|
||||||
KeywordSearchGlobalLanguageSettingsPanel.languagesLabel.text=\u6709\u52B9\u306A\u30B9\u30AF\u30EA\u30D7\u30C8\uFF08\u8A00\u8A9E\uFF09\uFF1A
|
KeywordSearchGlobalLanguageSettingsPanel.languagesLabel.text=\u6709\u52B9\u306A\u30B9\u30AF\u30EA\u30D7\u30C8\uFF08\u8A00\u8A9E\uFF09\uFF1A
|
||||||
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton1.toolTipText=\uFF12\uFF10\u5206\uFF08\u6700\u77ED\u306E\u51E6\u7406\u6642\u9593\uFF09
|
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton1.toolTipText=\uFF12\uFF10\u5206\uFF08\u6700\u77ED\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u6642\u9593\uFF09
|
||||||
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton1.text=\uFF12\uFF10\u5206\uFF08\u6700\u3082\u9045\u3044\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3001\u6700\u77ED\u306E\u51E6\u7406\u6642\u9593\uFF09
|
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton1.text=\uFF12\uFF10\u5206\uFF08\u6700\u3082\u9045\u3044\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3001\u6700\u77ED\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u6642\u9593\uFF09
|
||||||
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton2.toolTipText=\uFF11\uFF10\u5206\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\u3088\u308A\u5168\u4F53\u7684\u306B\u901F\u3044\u51E6\u7406\u6642\u9593\uFF09
|
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton2.toolTipText=\uFF11\uFF10\u5206\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\u3088\u308A\u5168\u4F53\u7684\u306B\u901F\u3044\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u6642\u9593\uFF09
|
||||||
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton2.text=\uFF11\uFF10\u5206\uFF08\u3088\u308A\u9045\u3044\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3001\u3088\u308A\u901F\u3044\u51E6\u7406\u6642\u9593\uFF09
|
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton2.text=\uFF11\uFF10\u5206\uFF08\u3088\u308A\u9045\u3044\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3001\u3088\u308A\u901F\u3044\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u6642\u9593\uFF09
|
||||||
KeywordSearchGlobalSearchSettingsPanel.frequencyLabel.text=\u51E6\u7406\u4E2D\u306E\u7D50\u679C\u66F4\u65B0\u306E\u983B\u5EA6\uFF1A
|
KeywordSearchGlobalSearchSettingsPanel.frequencyLabel.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306E\u7D50\u679C\u66F4\u65B0\u306E\u983B\u5EA6\uFF1A
|
||||||
KeywordSearchGlobalSearchSettingsPanel.skipNSRLCheckBox.toolTipText=Hash DB\u30B5\u30FC\u30D3\u30B9\u3092\u4E8B\u524D\u306B\u5B9F\u884C\u3059\u308B\u304B\u3001\u6B21\u56DE\u306E\u51E6\u7406\u306B\u9078\u629E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
|
KeywordSearchGlobalSearchSettingsPanel.skipNSRLCheckBox.toolTipText=Hash DB\u30B5\u30FC\u30D3\u30B9\u3092\u4E8B\u524D\u306B\u5B9F\u884C\u3059\u308B\u304B\u3001\u6B21\u56DE\u306E\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u306B\u9078\u629E\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
|
||||||
KeywordSearchGlobalSearchSettingsPanel.skipNSRLCheckBox.text=\u51E6\u7406\u4E2D\u306BNSRL\u306E\u30D5\u30A1\u30A4\u30EB\uFF08\u65E2\u77E5\u306E\u30D5\u30A1\u30A4\u30EB\uFF09\u3092\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u8FFD\u52A0\u3057\u306A\u3044
|
KeywordSearchGlobalSearchSettingsPanel.skipNSRLCheckBox.text=\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u4E2D\u306BNSRL\u306E\u30D5\u30A1\u30A4\u30EB\uFF08\u65E2\u77E5\u306E\u30D5\u30A1\u30A4\u30EB\uFF09\u3092\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u8FFD\u52A0\u3057\u306A\u3044
|
||||||
KeywordSearchGlobalSearchSettingsPanel.informationLabel.text=\u60C5\u5831
|
KeywordSearchGlobalSearchSettingsPanel.informationLabel.text=\u60C5\u5831
|
||||||
KeywordSearchGlobalSearchSettingsPanel.settingsLabel.text=\u8A2D\u5B9A
|
KeywordSearchGlobalSearchSettingsPanel.settingsLabel.text=\u8A2D\u5B9A
|
||||||
KeywordSearchGlobalSearchSettingsPanel.filesIndexedValue.text=-
|
KeywordSearchGlobalSearchSettingsPanel.filesIndexedValue.text=-
|
||||||
KeywordSearchGlobalSearchSettingsPanel.filesIndexedLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5185\u306E\u30D5\u30A1\u30A4\u30EB\uFF1A
|
KeywordSearchGlobalSearchSettingsPanel.filesIndexedLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5185\u306E\u30D5\u30A1\u30A4\u30EB\uFF1A
|
||||||
KeywordSearchGlobalSearchSettingsPanel.chunksValLabel.text=-
|
KeywordSearchGlobalSearchSettingsPanel.chunksValLabel.text=-
|
||||||
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton4.toolTipText=\uFF11\u5206\uFF08\u5168\u4F53\u7684\u306A\u51E6\u7406\u6642\u9593\u304C\u9577\u304F\u306A\u308A\u307E\u3059\uFF09
|
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton4.toolTipText=\uFF11\u5206\uFF08\u5168\u4F53\u7684\u306A\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u6642\u9593\u304C\u9577\u304F\u306A\u308A\u307E\u3059\uFF09
|
||||||
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton4.text_1=\uFF11\u5206\uFF08\u3088\u308A\u901F\u3044\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3001\u6700\u3082\u9577\u3044\u51E6\u7406\u6642\u9593\uFF09
|
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton4.text_1=\uFF11\u5206\uFF08\u3088\u308A\u901F\u3044\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3001\u6700\u3082\u9577\u3044\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u6642\u9593\uFF09
|
||||||
KeywordSearchGlobalSearchSettingsPanel.chunksLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5185\u306E\u30C1\u30E3\u30F3\u30AF\uFF1A
|
KeywordSearchGlobalSearchSettingsPanel.chunksLabel.text=\u30AD\u30FC\u30EF\u30FC\u30C9\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u5185\u306E\u30C1\u30E3\u30F3\u30AF\uFF1A
|
||||||
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton3.toolTipText=\uFF15\u5206\uFF08\u5168\u4F53\u7684\u306A\u51E6\u7406\u6642\u9593\u304C\u9577\u304F\u306A\u308A\u307E\u3059\uFF09
|
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton3.toolTipText=\uFF15\u5206\uFF08\u5168\u4F53\u7684\u306A\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u6642\u9593\u304C\u9577\u304F\u306A\u308A\u307E\u3059\uFF09
|
||||||
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton3.text=\uFF15\u5206\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\uFF09
|
KeywordSearchGlobalSearchSettingsPanel.timeRadioButton3.text=\uFF15\u5206\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\uFF09
|
||||||
DropdownSearchPanel.substringRadioButton.text=\u30B5\u30D6\u30B9\u30C8\u30EA\u30F3\u30B0\u4E00\u81F4
|
DropdownSearchPanel.substringRadioButton.text=\u30B5\u30D6\u30B9\u30C8\u30EA\u30F3\u30B0\u4E00\u81F4
|
||||||
AbstractFileTikaTextExtract.index.exception.tikaParse.msg=\u4F8B\u5916\uFF1A\u30D5\u30A1\u30A4\u30EB\uFF1A{0}, {1}\u306EApache Tika\u30D1\u30FC\u30B9\u30BF\u30B9\u30AF\u5B9F\u884C\u4E2D\u306E\u4E88\u671F\u305B\u306C\u4F8B\u5916
|
AbstractFileTikaTextExtract.index.exception.tikaParse.msg=\u4F8B\u5916\uFF1A\u30D5\u30A1\u30A4\u30EB\uFF1A{0}, {1}\u306EApache Tika\u30D1\u30FC\u30B9\u30BF\u30B9\u30AF\u5B9F\u884C\u4E2D\u306E\u4E88\u671F\u305B\u306C\u4F8B\u5916
|
||||||
@ -272,3 +272,7 @@ KeywordSearchListsAbstract.writeLists.errMsg1.msg=KeywordSearchListsAbstract\u30
|
|||||||
KeywordSearchListsAbstract.writeLists.errMsg2.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002
|
KeywordSearchListsAbstract.writeLists.errMsg2.msg=KeywordSearchListsAbstract\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D\u4E2D\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u30A8\u30E9\u30FC\u3092\u8D77\u3053\u3057\u307E\u3057\u305F\u3002\u3069\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u30ED\u30B0\u3067\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002\u4E00\u90E8\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u5B8C\u5168\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002
|
||||||
KeywordSearchListsManagementPanel.newKeywordListDescription=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8<{0}>\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u30EA\u30B9\u30C8\u3068\u3057\u3066\u5B58\u5728\u3057\u307E\u3059\u3002\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u4F7F\u7528\u4E2D\u306E\u307F\u3053\u306E\u30EA\u30B9\u30C8\u3092\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F\uFF08\u3053\u306E\u5909\u66F4\u306F\u7D99\u7D9A\u3055\u308C\u307E\u305B\u3093\uFF09
|
KeywordSearchListsManagementPanel.newKeywordListDescription=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8<{0}>\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u30EA\u30B9\u30C8\u3068\u3057\u3066\u5B58\u5728\u3057\u307E\u3059\u3002\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u4F7F\u7528\u4E2D\u306E\u307F\u3053\u306E\u30EA\u30B9\u30C8\u3092\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F\uFF08\u3053\u306E\u5909\u66F4\u306F\u7D99\u7D9A\u3055\u308C\u307E\u305B\u3093\uFF09
|
||||||
KeywordSearchListsManagementPanel.newKeywordListDescription2=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8<{0}>\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F
|
KeywordSearchListsManagementPanel.newKeywordListDescription2=\u30AD\u30FC\u30EF\u30FC\u30C9\u30EA\u30B9\u30C8<{0}>\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F
|
||||||
|
DropdownSearchPanelgetQueryList.exception.msg=\u30B7\u30F3\u30B0\u30EB\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u306E\u30EA\u30B9\u30C8\u306F\u5B58\u5728\u3057\u307E\u305B\u3093
|
||||||
|
KeywordSearchModuleFactory.createFileIngestModule.exception.msg=\u8A2D\u5B9A\u3092\u884C\u3046\u70BA\u306E\u60F3\u5B9A\u3055\u308C\u308B\u5F15\u6570\u306Finstanceof KeywordSearchJobSettings
|
||||||
|
KeywordSearchModuleFactory.getIngestJobSettingsPanel.exception.msg=\u8A2D\u5B9A\u3092\u884C\u3046\u70BA\u306E\u60F3\u5B9A\u3055\u308C\u308B\u5F15\u6570\u306Finstanceof KeywordSearchJobSettings
|
||||||
|
SearchRunner.Searcher.done.err.msg=\u30AD\u30FC\u30EF\u30FC\u30C9\u691C\u7D22\u3092\u5B9F\u884C\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
|
||||||
|
@ -25,6 +25,8 @@ import java.awt.event.FocusListener;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
|
|
||||||
|
import org.openide.util.NbBundle;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -120,7 +122,8 @@ public class DropdownSearchPanel extends AbstractKeywordSearchPerformer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Keyword> getQueryList() {
|
public List<Keyword> getQueryList() {
|
||||||
throw new UnsupportedOperationException("No list for single-keyword search");
|
throw new UnsupportedOperationException(
|
||||||
|
NbBundle.getMessage(this.getClass(), "DropdownSearchPanelgetQueryList.exception.msg"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -20,12 +20,12 @@ package org.sleuthkit.autopsy.keywordsearch;
|
|||||||
|
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.sleuthkit.autopsy.corecomponents.OptionsPanel;
|
import org.sleuthkit.autopsy.corecomponents.OptionsPanel;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSetttingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Global options panel for keyword searching.
|
* Global options panel for keyword searching.
|
||||||
*/
|
*/
|
||||||
final class KeywordSearchGlobalSettingsPanel extends IngestModuleGlobalSetttingsPanel implements OptionsPanel {
|
final class KeywordSearchGlobalSettingsPanel extends IngestModuleGlobalSettingsPanel implements OptionsPanel {
|
||||||
|
|
||||||
private KeywordSearchGlobalListSettingsPanel listsPanel;
|
private KeywordSearchGlobalListSettingsPanel listsPanel;
|
||||||
private KeywordSearchGlobalLanguageSettingsPanel languagesPanel;
|
private KeywordSearchGlobalLanguageSettingsPanel languagesPanel;
|
||||||
|
@ -103,11 +103,18 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
SKIPPED_ERROR_TEXTEXTRACT, ///< File was skipped because of text extraction issues
|
SKIPPED_ERROR_TEXTEXTRACT, ///< File was skipped because of text extraction issues
|
||||||
SKIPPED_ERROR_IO ///< File was skipped because of IO issues reading it
|
SKIPPED_ERROR_IO ///< File was skipped because of IO issues reading it
|
||||||
};
|
};
|
||||||
private static final Map<Long, IngestStatus> ingestStatus = new HashMap<>(); //guarded by itself
|
private static final Map<Long, Map<Long, IngestStatus>> ingestStatus = new HashMap<>(); //guarded by itself
|
||||||
|
|
||||||
static void putIngestStatus(long id, IngestStatus status) {
|
private static void putIngestStatus(long ingestJobId, long fileId, IngestStatus status) {
|
||||||
synchronized(ingestStatus) {
|
synchronized(ingestStatus) {
|
||||||
ingestStatus.put(id, status);
|
Map<Long, IngestStatus> ingestStatusForJob = ingestStatus.get(ingestJobId);
|
||||||
|
if (ingestStatusForJob == null) {
|
||||||
|
ingestStatusForJob = new HashMap<>();
|
||||||
|
ingestStatus.put(ingestJobId, ingestStatusForJob);
|
||||||
|
}
|
||||||
|
|
||||||
|
ingestStatusForJob.put(fileId, status);
|
||||||
|
ingestStatus.put(ingestJobId, ingestStatusForJob);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,7 +208,7 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
if (initialized == false) //error initializing indexing/Solr
|
if (initialized == false) //error initializing indexing/Solr
|
||||||
{
|
{
|
||||||
logger.log(Level.WARNING, "Skipping processing, module not initialized, file: {0}", abstractFile.getName()); //NON-NLS
|
logger.log(Level.WARNING, "Skipping processing, module not initialized, file: {0}", abstractFile.getName()); //NON-NLS
|
||||||
putIngestStatus(abstractFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
putIngestStatus(jobId, abstractFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
||||||
return ProcessResult.OK;
|
return ProcessResult.OK;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@ -260,6 +267,9 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
// We only need to post the summary msg from the last module per job
|
// We only need to post the summary msg from the last module per job
|
||||||
if (refCounter.decrementAndGet(jobId) == 0) {
|
if (refCounter.decrementAndGet(jobId) == 0) {
|
||||||
postIndexSummary();
|
postIndexSummary();
|
||||||
|
synchronized(ingestStatus) {
|
||||||
|
ingestStatus.remove(jobId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//log number of files / chunks in index
|
//log number of files / chunks in index
|
||||||
@ -272,6 +282,8 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
} catch (NoOpenCoreException | KeywordSearchModuleException ex) {
|
} catch (NoOpenCoreException | KeywordSearchModuleException ex) {
|
||||||
logger.log(Level.WARNING, "Error executing Solr query to check number of indexed files/chunks: ", ex); //NON-NLS
|
logger.log(Level.WARNING, "Error executing Solr query to check number of indexed files/chunks: ", ex); //NON-NLS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -289,10 +301,6 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
* Common cleanup code when module stops or final searcher completes
|
* Common cleanup code when module stops or final searcher completes
|
||||||
*/
|
*/
|
||||||
private void cleanup() {
|
private void cleanup() {
|
||||||
synchronized(ingestStatus) {
|
|
||||||
ingestStatus.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
textExtractors.clear();
|
textExtractors.clear();
|
||||||
textExtractors = null;
|
textExtractors = null;
|
||||||
stringExtractor = null;
|
stringExtractor = null;
|
||||||
@ -314,16 +322,17 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
int error_io = 0;
|
int error_io = 0;
|
||||||
|
|
||||||
synchronized(ingestStatus) {
|
synchronized(ingestStatus) {
|
||||||
for (IngestStatus s : ingestStatus.values()) {
|
Map<Long, IngestStatus> ingestStatusForJob = ingestStatus.get(jobId);
|
||||||
|
for (IngestStatus s : ingestStatusForJob.values()) {
|
||||||
switch (s) {
|
switch (s) {
|
||||||
case TEXT_INGESTED:
|
case TEXT_INGESTED:
|
||||||
++text_ingested;
|
text_ingested++;
|
||||||
break;
|
break;
|
||||||
case METADATA_INGESTED:
|
case METADATA_INGESTED:
|
||||||
++metadata_ingested;
|
metadata_ingested++;
|
||||||
break;
|
break;
|
||||||
case STRINGS_INGESTED:
|
case STRINGS_INGESTED:
|
||||||
++strings_ingested;
|
strings_ingested++;
|
||||||
break;
|
break;
|
||||||
case SKIPPED_ERROR_TEXTEXTRACT:
|
case SKIPPED_ERROR_TEXTEXTRACT:
|
||||||
error_text++;
|
error_text++;
|
||||||
@ -411,16 +420,16 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
private boolean extractStringsAndIndex(AbstractFile aFile) {
|
private boolean extractStringsAndIndex(AbstractFile aFile) {
|
||||||
try {
|
try {
|
||||||
if (stringExtractor.index(aFile)) {
|
if (stringExtractor.index(aFile)) {
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.STRINGS_INGESTED);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.STRINGS_INGESTED);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
logger.log(Level.WARNING, "Failed to extract strings and ingest, file ''{0}'' (id: {1}).", new Object[]{aFile.getName(), aFile.getId()}); //NON-NLS
|
logger.log(Level.WARNING, "Failed to extract strings and ingest, file ''{0}'' (id: {1}).", new Object[]{aFile.getName(), aFile.getId()}); //NON-NLS
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.SKIPPED_ERROR_TEXTEXTRACT);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.SKIPPED_ERROR_TEXTEXTRACT);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} catch (IngesterException ex) {
|
} catch (IngesterException ex) {
|
||||||
logger.log(Level.WARNING, "Failed to extract strings and ingest, file '" + aFile.getName() + "' (id: " + aFile.getId() + ").", ex); //NON-NLS
|
logger.log(Level.WARNING, "Failed to extract strings and ingest, file '" + aFile.getName() + "' (id: " + aFile.getId() + ").", ex); //NON-NLS
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -466,9 +475,9 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
if ((indexContent == false || aFile.isDir() || size == 0)) {
|
if ((indexContent == false || aFile.isDir() || size == 0)) {
|
||||||
try {
|
try {
|
||||||
ingester.ingest(aFile, false); //meta-data only
|
ingester.ingest(aFile, false); //meta-data only
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.METADATA_INGESTED);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.METADATA_INGESTED);
|
||||||
} catch (IngesterException ex) {
|
} catch (IngesterException ex) {
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
||||||
logger.log(Level.WARNING, "Unable to index meta-data for file: " + aFile.getId(), ex); //NON-NLS
|
logger.log(Level.WARNING, "Unable to index meta-data for file: " + aFile.getId(), ex); //NON-NLS
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -502,9 +511,9 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
if (AbstractFileExtract.ARCHIVE_MIME_TYPES.contains(detectedFormat)) {
|
if (AbstractFileExtract.ARCHIVE_MIME_TYPES.contains(detectedFormat)) {
|
||||||
try {
|
try {
|
||||||
ingester.ingest(aFile, false); //meta-data only
|
ingester.ingest(aFile, false); //meta-data only
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.METADATA_INGESTED);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.METADATA_INGESTED);
|
||||||
} catch (IngesterException ex) {
|
} catch (IngesterException ex) {
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
||||||
logger.log(Level.WARNING, "Unable to index meta-data for file: " + aFile.getId(), ex); //NON-NLS
|
logger.log(Level.WARNING, "Unable to index meta-data for file: " + aFile.getId(), ex); //NON-NLS
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -517,20 +526,20 @@ public final class KeywordSearchIngestModule extends IngestModuleAdapter impleme
|
|||||||
//logger.log(Level.INFO, "indexing: " + aFile.getName());
|
//logger.log(Level.INFO, "indexing: " + aFile.getName());
|
||||||
if (!extractTextAndIndex(aFile, detectedFormat)) {
|
if (!extractTextAndIndex(aFile, detectedFormat)) {
|
||||||
logger.log(Level.WARNING, "Failed to extract text and ingest, file ''{0}'' (id: {1}).", new Object[]{aFile.getName(), aFile.getId()}); //NON-NLS
|
logger.log(Level.WARNING, "Failed to extract text and ingest, file ''{0}'' (id: {1}).", new Object[]{aFile.getName(), aFile.getId()}); //NON-NLS
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.SKIPPED_ERROR_TEXTEXTRACT);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.SKIPPED_ERROR_TEXTEXTRACT);
|
||||||
} else {
|
} else {
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.TEXT_INGESTED);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.TEXT_INGESTED);
|
||||||
wasTextAdded = true;
|
wasTextAdded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (IngesterException e) {
|
} catch (IngesterException e) {
|
||||||
logger.log(Level.INFO, "Could not extract text with Tika, " + aFile.getId() + ", " //NON-NLS
|
logger.log(Level.INFO, "Could not extract text with Tika, " + aFile.getId() + ", " //NON-NLS
|
||||||
+ aFile.getName(), e);
|
+ aFile.getName(), e);
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.log(Level.WARNING, "Error extracting text with Tika, " + aFile.getId() + ", " //NON-NLS
|
logger.log(Level.WARNING, "Error extracting text with Tika, " + aFile.getId() + ", " //NON-NLS
|
||||||
+ aFile.getName(), e);
|
+ aFile.getName(), e);
|
||||||
putIngestStatus(aFile.getId(), IngestStatus.SKIPPED_ERROR_TEXTEXTRACT);
|
putIngestStatus(jobId, aFile.getId(), IngestStatus.SKIPPED_ERROR_TEXTEXTRACT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ import org.sleuthkit.autopsy.ingest.FileIngestModule;
|
|||||||
import org.sleuthkit.autopsy.ingest.IngestModuleFactory;
|
import org.sleuthkit.autopsy.ingest.IngestModuleFactory;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings;
|
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettingsPanel;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSetttingsPanel;
|
import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An ingest module factory that creates file ingest modules that do keyword
|
* An ingest module factory that creates file ingest modules that do keyword
|
||||||
@ -83,7 +83,8 @@ public class KeywordSearchModuleFactory extends IngestModuleFactoryAdapter {
|
|||||||
public IngestModuleIngestJobSettingsPanel getIngestJobSettingsPanel(IngestModuleIngestJobSettings settings) {
|
public IngestModuleIngestJobSettingsPanel getIngestJobSettingsPanel(IngestModuleIngestJobSettings settings) {
|
||||||
assert settings instanceof KeywordSearchJobSettings;
|
assert settings instanceof KeywordSearchJobSettings;
|
||||||
if (!(settings instanceof KeywordSearchJobSettings)) {
|
if (!(settings instanceof KeywordSearchJobSettings)) {
|
||||||
throw new IllegalArgumentException("Expected settings argument to be instanceof KeywordSearchJobSettings");
|
throw new IllegalArgumentException(NbBundle.getMessage(this.getClass(),
|
||||||
|
"KeywordSearchModuleFactory.getIngestJobSettingsPanel.exception.msg"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (jobSettingsPanel == null) {
|
if (jobSettingsPanel == null) {
|
||||||
@ -100,7 +101,7 @@ public class KeywordSearchModuleFactory extends IngestModuleFactoryAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IngestModuleGlobalSetttingsPanel getGlobalSettingsPanel() {
|
public IngestModuleGlobalSettingsPanel getGlobalSettingsPanel() {
|
||||||
KeywordSearchGlobalSettingsPanel globalSettingsPanel = new KeywordSearchGlobalSettingsPanel();
|
KeywordSearchGlobalSettingsPanel globalSettingsPanel = new KeywordSearchGlobalSettingsPanel();
|
||||||
globalSettingsPanel.load();
|
globalSettingsPanel.load();
|
||||||
return globalSettingsPanel;
|
return globalSettingsPanel;
|
||||||
@ -115,7 +116,8 @@ public class KeywordSearchModuleFactory extends IngestModuleFactoryAdapter {
|
|||||||
public FileIngestModule createFileIngestModule(IngestModuleIngestJobSettings settings) {
|
public FileIngestModule createFileIngestModule(IngestModuleIngestJobSettings settings) {
|
||||||
assert settings instanceof KeywordSearchJobSettings;
|
assert settings instanceof KeywordSearchJobSettings;
|
||||||
if (!(settings instanceof KeywordSearchJobSettings)) {
|
if (!(settings instanceof KeywordSearchJobSettings)) {
|
||||||
throw new IllegalArgumentException("Expected settings argument to be instanceof KeywordSearchJobSettings");
|
throw new IllegalArgumentException(NbBundle.getMessage(this.getClass(),
|
||||||
|
"KeywordSearchModuleFactory.createFileIngestModule.exception.msg"));
|
||||||
}
|
}
|
||||||
return new KeywordSearchIngestModule((KeywordSearchJobSettings) settings);
|
return new KeywordSearchIngestModule((KeywordSearchJobSettings) settings);
|
||||||
}
|
}
|
||||||
|
@ -627,7 +627,9 @@ public final class SearchRunner {
|
|||||||
get();
|
get();
|
||||||
} catch (InterruptedException | ExecutionException e) {
|
} catch (InterruptedException | ExecutionException e) {
|
||||||
logger.log(Level.SEVERE, "Error performing keyword search: " + e.getMessage()); //NON-NLS
|
logger.log(Level.SEVERE, "Error performing keyword search: " + e.getMessage()); //NON-NLS
|
||||||
services.postMessage(IngestMessage.createErrorMessage(KeywordSearchModuleFactory.getModuleName(), "Error performing keyword search", e.getMessage()));
|
services.postMessage(IngestMessage.createErrorMessage(KeywordSearchModuleFactory.getModuleName(),
|
||||||
|
NbBundle.getMessage(this.getClass(),
|
||||||
|
"SearchRunner.Searcher.done.err.msg"), e.getMessage()));
|
||||||
} // catch and ignore if we were cancelled
|
} // catch and ignore if we were cancelled
|
||||||
catch (java.util.concurrent.CancellationException ex) {
|
catch (java.util.concurrent.CancellationException ex) {
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#Updated by build script
|
#Updated by build script
|
||||||
#Thu, 13 Mar 2014 18:09:42 -0400
|
#Tue, 22 Apr 2014 16:06:14 -0400
|
||||||
LBL_splash_window_title=Starting Autopsy
|
LBL_splash_window_title=Starting Autopsy
|
||||||
SPLASH_HEIGHT=288
|
SPLASH_HEIGHT=288
|
||||||
SPLASH_WIDTH=538
|
SPLASH_WIDTH=538
|
||||||
@ -8,4 +8,4 @@ SplashRunningTextBounds=5,266,530,17
|
|||||||
SplashRunningTextColor=0x0
|
SplashRunningTextColor=0x0
|
||||||
SplashRunningTextFontSize=18
|
SplashRunningTextFontSize=18
|
||||||
|
|
||||||
currentVersion=Autopsy 3.0.9
|
currentVersion=Autopsy 3.1.0_Beta
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#Updated by build script
|
#Updated by build script
|
||||||
#Thu, 13 Mar 2014 18:09:42 -0400
|
#Tue, 22 Apr 2014 16:06:14 -0400
|
||||||
|
|
||||||
CTL_MainWindow_Title=Autopsy 3.0.9
|
CTL_MainWindow_Title=Autopsy 3.1.0_Beta
|
||||||
CTL_MainWindow_Title_No_Project=Autopsy 3.0.9
|
CTL_MainWindow_Title_No_Project=Autopsy 3.1.0_Beta
|
||||||
|
@ -213,6 +213,9 @@ class TskDbDiff(object):
|
|||||||
raise TskDbDiffException("Unexpected error while dumping blackboard database: " + str(e))
|
raise TskDbDiffException("Unexpected error while dumping blackboard database: " + str(e))
|
||||||
finally:
|
finally:
|
||||||
database_log.close()
|
database_log.close()
|
||||||
|
attribute_cursor.close()
|
||||||
|
artifact_cursor.close()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
# Now sort the file
|
# Now sort the file
|
||||||
srtcmdlst = ["sort", unsorted_dump, "-o", bb_dump_file]
|
srtcmdlst = ["sort", unsorted_dump, "-o", bb_dump_file]
|
||||||
@ -242,6 +245,7 @@ class TskDbDiff(object):
|
|||||||
line = replace_id(line, id_path_table)
|
line = replace_id(line, id_path_table)
|
||||||
db_log.write('%s\n' % line)
|
db_log.write('%s\n' % line)
|
||||||
|
|
||||||
|
conn.close()
|
||||||
# cleanup the backup
|
# cleanup the backup
|
||||||
os.remove(backup_db_file)
|
os.remove(backup_db_file)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user