diff --git a/Core/src/org/sleuthkit/autopsy/core/Installer.java b/Core/src/org/sleuthkit/autopsy/core/Installer.java index bc14db3b7d..e2036e6f25 100644 --- a/Core/src/org/sleuthkit/autopsy/core/Installer.java +++ b/Core/src/org/sleuthkit/autopsy/core/Installer.java @@ -64,12 +64,54 @@ public class Installer extends ModuleInstall { //Note: if shipping with a different CRT version, this will only print a warning //and try to use linker mechanism to find the correct versions of libs. //We should update this if we officially switch to a new version of CRT/compiler - System.loadLibrary("msvcr100"); //NON-NLS - System.loadLibrary("msvcp100"); //NON-NLS + System.loadLibrary("api-ms-win-core-console-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-datetime-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-debug-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-errorhandling-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-file-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-file-l1-2-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-file-l2-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-handle-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-heap-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-interlocked-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-libraryloader-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-localization-l1-2-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-memory-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-namedpipe-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-processenvironment-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-processthreads-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-processthreads-l1-1-1"); //NON-NLS + System.loadLibrary("api-ms-win-core-profile-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-rtlsupport-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-string-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-synch-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-synch-l1-2-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-sysinfo-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-timezone-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-core-util-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-conio-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-convert-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-environment-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-filesystem-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-heap-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-locale-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-math-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-multibyte-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-private-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-process-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-runtime-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-stdio-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-string-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-time-l1-1-0"); //NON-NLS + System.loadLibrary("api-ms-win-crt-utility-l1-1-0"); //NON-NLS - logger.log(Level.INFO, "MSVCR100 and MSVCP100 libraries loaded"); //NON-NLS + System.loadLibrary("ucrtbase"); //NON-NLS + System.loadLibrary("vcruntime140"); //NON-NLS + System.loadLibrary("msvcp140"); //NON-NLS + + logger.log(Level.INFO, "Visual C Runtime libraries loaded"); //NON-NLS } catch (UnsatisfiedLinkError e) { - logger.log(Level.SEVERE, "Error loading MSVCR100 and MSVCP100 libraries, ", e); //NON-NLS + logger.log(Level.SEVERE, "Error loading Visual C Runtime libraries, ", e); //NON-NLS } try { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/accounts/Accounts.java b/Core/src/org/sleuthkit/autopsy/datamodel/accounts/Accounts.java index 64c60e542d..6f5a83c56d 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/accounts/Accounts.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/accounts/Accounts.java @@ -147,6 +147,14 @@ final public class Accounts implements AutopsyVisitableItem { */ private abstract class ObservingChildren extends Children.Keys { + /** + * Override of default constructor to force lazy creation of nodes, by + * concrete instances of ObservingChildren + */ + ObservingChildren() { + super(true); + } + /** * Create of keys used by this Children object to represent the child * nodes. @@ -1036,8 +1044,8 @@ final public class Accounts implements AutopsyVisitableItem { private BINNode(BinResult bin) { super(Children.LEAF); - setChildren(Children.createLazy(CreditCardNumberFactory::new)); this.bin = bin; + setChildren(Children.createLazy(CreditCardNumberFactory::new)); setName(getBinRangeString()); updateDisplayName(); this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/bank.png"); //NON-NLS @@ -1356,18 +1364,27 @@ final public class Accounts implements AutopsyVisitableItem { */ if (newStatus == BlackboardArtifact.ReviewStatus.REJECTED && showRejected == false) { List siblings = Arrays.asList(node.getParentNode().getChildren().getNodes()); - int indexOf = siblings.indexOf(node); - //there is no previous for the first node, so instead we select the next one - Node sibling = indexOf > 0 - ? siblings.get(indexOf - 1) - : siblings.get(indexOf + 1); - createPath = NodeOp.createPath(sibling, null); + if (siblings.size() > 1) { + int indexOf = siblings.indexOf(node); + //there is no previous for the first node, so instead we select the next one + Node sibling = indexOf > 0 + ? siblings.get(indexOf - 1) + : siblings.get(Integer.max(indexOf + 1, siblings.size() - 1)); + createPath = NodeOp.createPath(sibling, null); + } else { + /* if there are no other siblings to select, + * just return null, but note we need to filter + * this out of stream below */ + return null; + } } else { createPath = NodeOp.createPath(node, null); } //for the reselect to work we need to strip off the first part of the path. return Arrays.copyOfRange(createPath, 1, createPath.length); - }).collect(Collectors.toList()); + }) + .filter(Objects::nonNull) + .collect(Collectors.toList()); //change status of selected artifacts final Collection artifacts = Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class); diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/DropdownSingleKeywordSearchPanel.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/DropdownSingleKeywordSearchPanel.java index e8edefb29d..9201bcfddf 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/DropdownSingleKeywordSearchPanel.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/DropdownSingleKeywordSearchPanel.java @@ -33,7 +33,7 @@ import org.sleuthkit.autopsy.coreutils.Logger; * types of ad hoc single keyword searches. The first option is a standard * Lucene query for one or more terms, with or without wildcards and explicit * Boolean operators, or a phrase. The second option is a Lucene query for a - * substring of a single rerm. The third option is a regex query using first the + * substring of a single term. The third option is a regex query using first the * terms component, followed by standard Lucene queries for any terms found. * * The toolbar uses a different font from the rest of the application, diff --git a/build-windows.xml b/build-windows.xml index 41a96016ab..d922476dd4 100644 --- a/build-windows.xml +++ b/build-windows.xml @@ -43,68 +43,40 @@ - - - - + + - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - @@ -115,57 +87,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build.xml b/build.xml index b1e2fdb14a..b1c6f4149d 100755 --- a/build.xml +++ b/build.xml @@ -92,8 +92,6 @@ - - diff --git a/thirdparty/crt/update.bat b/thirdparty/crt/update.bat deleted file mode 100644 index 807264ff07..0000000000 --- a/thirdparty/crt/update.bat +++ /dev/null @@ -1,9 +0,0 @@ -REM Updates the 32-bit and 64-bit VS Runtime dlls -REM Needs to be run from a 64-bit command prompt -REM Otherwise Windows will put 32-bit dlls in system32 -copy c:\windows\system32\msvcr100.dll win64 -copy c:\windows\system32\msvcp100.dll win64 -copy c:\windows\system32\msvcr120.dll win64 -copy c:\windows\sysWoW64\msvcr100.dll win32 -copy c:\windows\sysWow64\msvcp100.dll win32 -copy c:\windows\sysWow64\msvcr120.dll win32 diff --git a/thirdparty/crt/win32/msvcp100.dll b/thirdparty/crt/win32/msvcp100.dll deleted file mode 100755 index 8502dfae5e..0000000000 Binary files a/thirdparty/crt/win32/msvcp100.dll and /dev/null differ diff --git a/thirdparty/crt/win32/msvcr100.dll b/thirdparty/crt/win32/msvcr100.dll deleted file mode 100755 index 3e82b1aeac..0000000000 Binary files a/thirdparty/crt/win32/msvcr100.dll and /dev/null differ diff --git a/thirdparty/crt/win64/msvcp100.dll b/thirdparty/crt/win64/msvcp100.dll deleted file mode 100755 index 6f0cdf160a..0000000000 Binary files a/thirdparty/crt/win64/msvcp100.dll and /dev/null differ diff --git a/thirdparty/crt/win64/msvcr100.dll b/thirdparty/crt/win64/msvcr100.dll deleted file mode 100755 index b1c3a5e77c..0000000000 Binary files a/thirdparty/crt/win64/msvcr100.dll and /dev/null differ