diff --git a/Core/src/org/sleuthkit/autopsy/timeline/EventsModel.java b/Core/src/org/sleuthkit/autopsy/timeline/EventsModel.java
index f80eef206b4f5b56191c6023926acbef8da19ca7..b85f43bab9e0922b69f5251756acaa63fe78443c 100755
--- a/Core/src/org/sleuthkit/autopsy/timeline/EventsModel.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/EventsModel.java
@@ -55,6 +55,7 @@
 import org.sleuthkit.autopsy.timeline.events.TagsDeletedEvent;
 import org.sleuthkit.autopsy.timeline.ui.filtering.datamodel.FilterState;
 import org.sleuthkit.autopsy.timeline.ui.filtering.datamodel.RootFilterState;
+import org.sleuthkit.autopsy.timeline.ui.filtering.datamodel.SqlFilterState;
 import org.sleuthkit.autopsy.timeline.utils.CacheLoaderImpl;
 import org.sleuthkit.autopsy.timeline.utils.FilterUtils;
 import org.sleuthkit.autopsy.timeline.zooming.EventsModelParams;
@@ -222,8 +223,7 @@ synchronized private void populateDataSourcesCache() throws TskCoreException {
      * @param rootFilterState A root filter state object.
      */
     synchronized void addDataSourceFilters(RootFilterState rootFilterState) {
-        DataSourcesFilter dataSourcesFilter = rootFilterState.getDataSourcesFilterState().getFilter();
-        datasourceIDsToNamesMap.entrySet().forEach(entry -> dataSourcesFilter.addSubFilter(newDataSourceFilter(entry)));
+        datasourceIDsToNamesMap.entrySet().forEach(entry -> rootFilterState.getDataSourcesFilterState().addSubFilterState(new SqlFilterState<>(newDataSourceFilter(entry))));
     }
 
     /**
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/ViewFrame.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/ViewFrame.java
index 39506554ac9efa73bfceb8e8286d38adc59c0f3d..a834ccd0f6a8633ea5f6bc331602f08d1a9187f8 100755
--- a/Core/src/org/sleuthkit/autopsy/timeline/ui/ViewFrame.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/ViewFrame.java
@@ -588,7 +588,7 @@ private void refreshTimeUI() {
             long startMillis = filteredEvents.getTimeRange().getStartMillis();
             long endMillis = filteredEvents.getTimeRange().getEndMillis();
 
-            if (minTime > 0 && maxTime > minTime) {
+            if ( maxTime > minTime) {
                 Platform.runLater(() -> {
                     startPicker.localDateTimeProperty().removeListener(startListener);
                     endPicker.localDateTimeProperty().removeListener(endListener);
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/datamodel/CompoundFilterState.java b/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/datamodel/CompoundFilterState.java
index 6884d275a808f0bd5fa867e28bcbf1898838f5a8..f7e628f698ccce475ff102459bde05607006341e 100755
--- a/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/datamodel/CompoundFilterState.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/ui/filtering/datamodel/CompoundFilterState.java
@@ -110,7 +110,7 @@ private void disableSubFiltersIfNotActive() {
      * @param newSubFilterState The new filter state to be added as a subfilter
      *                          state.
      */
-    protected void addSubFilterState(FilterState< ? extends SubFilterType> newSubFilterState) {
+    public void addSubFilterState(FilterState< ? extends SubFilterType> newSubFilterState) {
         SubFilterType filter = newSubFilterState.getFilter();
         if (getSubFilterStates().stream().map(FilterState::getFilter).noneMatch(filter::equals)) {
 
diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ChromeCacheExtractor.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ChromeCacheExtractor.java
index 7d418881217777bf638e16cd8f3447011b1f7032..1acfc4f25382c414580dd6c705db39bdb9fdfd1d 100644
--- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ChromeCacheExtractor.java
+++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ChromeCacheExtractor.java
@@ -283,7 +283,9 @@ void processCaches() {
                     return;
                 }
                 
-                processCacheFolder(indexFile);
+                if (indexFile.getSize() > 0) {
+                    processCacheFolder(indexFile);
+                }
             }
         
         } catch (TskCoreException ex) {
@@ -1039,6 +1041,9 @@ void extract() throws TskCoreException, IngestModuleException {
                 this.data = new byte [length];
                 ByteBuffer buf = cacheFileCopy.getByteBuffer();
                 int dataOffset = DATAFILE_HDR_SIZE + cacheAddress.getStartBlock() * cacheAddress.getBlockSize();
+                if (dataOffset > buf.capacity()) {
+                    return;
+                }
                 buf.position(dataOffset);
                 buf.get(data, 0, length);