diff --git a/src/main/java/datawave/query/util/AllFieldMetadataHelper.java b/src/main/java/datawave/query/util/AllFieldMetadataHelper.java index 091deec..336764b 100644 --- a/src/main/java/datawave/query/util/AllFieldMetadataHelper.java +++ b/src/main/java/datawave/query/util/AllFieldMetadataHelper.java @@ -1487,7 +1487,7 @@ Map> findHoles() throws IOException { } // we can treat this like an index marker but the ts of the entry denotes the boundary - currDate = getBaseDate(key.getTimestamp()); + currDate = getPreviousDay(key.getTimestamp()); log.warn("Found an index entry missing the date, treating as an index marker at " + currDate + " : " + key); currBoundaryValue = true; currCount = 0; @@ -1517,7 +1517,7 @@ Map> findHoles() throws IOException { } catch (DateTimeParseException e) { // probably the really old type classname format instead of a date. // we can treat this like an index marker but the ts of the entry denotes the boundary - currDate = getBaseDate(key.getTimestamp()); + currDate = getPreviousDay(key.getTimestamp()); log.warn("Found an index entry missing the date, treating as an index marker at " + currDate + " : " + key); currBoundaryValue = true; currCount = 0; @@ -1588,13 +1588,14 @@ Map> findHoles() throws IOException { return getImmutableFieldIndexHoles(); } - private Date getBaseDate(long ts) { + private Date getPreviousDay(long ts) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(ts); c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.MILLISECOND, 0); + c.add(Calendar.DATE, -1); return c.getTime(); } diff --git a/src/test/java/datawave/query/util/AllFieldMetadataHelperTest.java b/src/test/java/datawave/query/util/AllFieldMetadataHelperTest.java index 0174ab9..5892549 100644 --- a/src/test/java/datawave/query/util/AllFieldMetadataHelperTest.java +++ b/src/test/java/datawave/query/util/AllFieldMetadataHelperTest.java @@ -352,7 +352,7 @@ void testFieldIndexHoleWithIndexedMarkerSansDate(String cf) { Map> fieldIndexHoles = getIndexHoleFunction(cf).get(); // @formatter:on - Map> expected = createFieldIndexHoleMap(createFieldIndexHole("NAME", "wiki", dateRange("20200104", "20200106"))); + Map> expected = createFieldIndexHoleMap(createFieldIndexHole("NAME", "wiki", dateRange("20200103", "20200106"))); // @formatter:off Assertions.assertEquals(expected, fieldIndexHoles); } @@ -375,7 +375,7 @@ void testFieldIndexHoleWithIndexedMarkerOldTypeFormat(String cf) { Map> fieldIndexHoles = getIndexHoleFunction(cf).get(); // @formatter:on - Map> expected = createFieldIndexHoleMap(createFieldIndexHole("NAME", "wiki", dateRange("20200104", "20200106"))); + Map> expected = createFieldIndexHoleMap(createFieldIndexHole("NAME", "wiki", dateRange("20200103", "20200106"))); // @formatter:off Assertions.assertEquals(expected, fieldIndexHoles); }