mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-17 10:17:41 +00:00
show warning if insufficient memory
This commit is contained in:
parent
556c89f076
commit
68e360b5c6
@ -20,8 +20,10 @@ package org.sleuthkit.autopsy.core;
|
|||||||
|
|
||||||
import com.sun.jna.platform.win32.Kernel32;
|
import com.sun.jna.platform.win32.Kernel32;
|
||||||
import java.awt.Cursor;
|
import java.awt.Cursor;
|
||||||
|
import java.awt.GraphicsEnvironment;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.lang.management.ManagementFactory;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -34,6 +36,7 @@ import java.util.logging.Level;
|
|||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.embed.swing.JFXPanel;
|
import javafx.embed.swing.JFXPanel;
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
|
import javax.swing.JOptionPane;
|
||||||
import net.sf.sevenzipjbinding.SevenZip;
|
import net.sf.sevenzipjbinding.SevenZip;
|
||||||
import net.sf.sevenzipjbinding.SevenZipNativeInitializationException;
|
import net.sf.sevenzipjbinding.SevenZipNativeInitializationException;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
@ -41,6 +44,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.openide.modules.InstalledFileLocator;
|
import org.openide.modules.InstalledFileLocator;
|
||||||
import org.openide.modules.ModuleInstall;
|
import org.openide.modules.ModuleInstall;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
|
import org.openide.util.NbBundle.Messages;
|
||||||
import org.openide.windows.WindowManager;
|
import org.openide.windows.WindowManager;
|
||||||
import org.sleuthkit.autopsy.actions.IngestRunningCheck;
|
import org.sleuthkit.autopsy.actions.IngestRunningCheck;
|
||||||
import org.sleuthkit.autopsy.casemodule.Case;
|
import org.sleuthkit.autopsy.casemodule.Case;
|
||||||
@ -373,6 +377,7 @@ public class Installer extends ModuleInstall {
|
|||||||
@Override
|
@Override
|
||||||
public void restored() {
|
public void restored() {
|
||||||
super.restored();
|
super.restored();
|
||||||
|
checkMemoryAvailable();
|
||||||
ensurePythonModulesFolderExists();
|
ensurePythonModulesFolderExists();
|
||||||
ensureClassifierFolderExists();
|
ensureClassifierFolderExists();
|
||||||
ensureOcrLanguagePacksFolderExists();
|
ensureOcrLanguagePacksFolderExists();
|
||||||
@ -392,6 +397,48 @@ public class Installer extends ModuleInstall {
|
|||||||
preloadTranslationServices();
|
preloadTranslationServices();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks system resources logging any potential issues.
|
||||||
|
*/
|
||||||
|
@Messages({
|
||||||
|
"Installer_checkMemoryAvailable_physicalRamExpected_title=System Does Not Meet Requirements",
|
||||||
|
"# {0} - physicalMemory",
|
||||||
|
"Installer_checkMemoryAvailable_physicalRamExpected_desc=Physical memory: {0}, is less than the 8GB required. Some aspects of the application may not work as expected.",
|
||||||
|
"Installer_checkMemoryAvailable_maxMemExpected_title=System Does Not Meet Requirements",
|
||||||
|
"# {0} - maxMemory",
|
||||||
|
"Installer_checkMemoryAvailable_maxMemExpected_desc=Maximum JVM memory: {0}, is less than the 2GB required. Some aspects of the application may not work as expected."
|
||||||
|
})
|
||||||
|
private void checkMemoryAvailable() {
|
||||||
|
long memorySize = ((com.sun.management.OperatingSystemMXBean) ManagementFactory
|
||||||
|
.getOperatingSystemMXBean()).getTotalMemorySize();
|
||||||
|
if (memorySize < 8_000_000) {
|
||||||
|
String desc = Bundle.Installer_checkMemoryAvailable_physicalRamExpected_desc(FileUtils.byteCountToDisplaySize(memorySize));
|
||||||
|
|
||||||
|
logger.log(Level.SEVERE, desc);
|
||||||
|
if (!GraphicsEnvironment.isHeadless() && RuntimeProperties.runningWithGUI()) {
|
||||||
|
JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(),
|
||||||
|
"<html>" + desc + "</html>",
|
||||||
|
Bundle.Installer_checkMemoryAvailable_physicalRamExpected_title(),
|
||||||
|
JOptionPane.WARNING_MESSAGE);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
long maxMemory = Runtime.getRuntime().maxMemory();
|
||||||
|
if (maxMemory < 2_000_000) {
|
||||||
|
String desc = Bundle.Installer_checkMemoryAvailable_maxMemExpected_desc(FileUtils.byteCountToDisplaySize(maxMemory));
|
||||||
|
|
||||||
|
logger.log(Level.SEVERE, desc);
|
||||||
|
if (!GraphicsEnvironment.isHeadless() && RuntimeProperties.runningWithGUI()) {
|
||||||
|
JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(),
|
||||||
|
"<html>" + desc + "</html>",
|
||||||
|
Bundle.Installer_checkMemoryAvailable_maxMemExpected_title(),
|
||||||
|
JOptionPane.WARNING_MESSAGE);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes 7zip-java bindings. We are performing initialization once
|
* Initializes 7zip-java bindings. We are performing initialization once
|
||||||
* because we encountered issues related to file locking when initialization
|
* because we encountered issues related to file locking when initialization
|
||||||
|
Loading…
x
Reference in New Issue
Block a user