File tree Expand file tree Collapse file tree
main/java/org/springframework/scheduling/support
test/java/org/springframework/scheduling/support Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1919import java .time .Instant ;
2020import java .time .ZoneId ;
2121import java .time .ZonedDateTime ;
22+ import java .util .Objects ;
2223import java .util .TimeZone ;
2324
2425import org .jspecify .annotations .Nullable ;
@@ -145,12 +146,13 @@ Instant determineInitialTimestamp(TriggerContext triggerContext) {
145146 @ Override
146147 public boolean equals (@ Nullable Object other ) {
147148 return (this == other || (other instanceof CronTrigger that &&
148- this .expression .equals (that .expression )));
149+ this .expression .equals (that .expression ) &&
150+ Objects .equals (this .zoneId , that .zoneId )));
149151 }
150152
151153 @ Override
152154 public int hashCode () {
153- return this .expression . hashCode ( );
155+ return Objects . hash ( this .expression , this . zoneId );
154156 }
155157
156158 @ Override
Original file line number Diff line number Diff line change 1616
1717package org .springframework .scheduling .support ;
1818
19+ import java .time .ZoneId ;
1920import java .util .Calendar ;
2021import java .util .Date ;
2122import java .util .GregorianCalendar ;
@@ -746,6 +747,20 @@ void daylightSavingMissingHour() {
746747 assertThat (nextExecutionTime ).isEqualTo (this .calendar .getTime ());
747748 }
748749
750+ @ Test
751+ void equalsAndHashCodeConsiderZoneId () {
752+ String expression = "0 0 9 * * *" ;
753+ CronTrigger amsterdam1 = new CronTrigger (expression , ZoneId .of ("Europe/Amsterdam" ));
754+ CronTrigger amsterdam2 = new CronTrigger (expression , ZoneId .of ("Europe/Amsterdam" ));
755+ CronTrigger newYork = new CronTrigger (expression , ZoneId .of ("America/New_York" ));
756+
757+ assertThat (amsterdam1 )
758+ .isEqualTo (amsterdam2 )
759+ .hasSameHashCodeAs (amsterdam2 )
760+ .isNotEqualTo (newYork )
761+ .doesNotHaveSameHashCodeAs (newYork );
762+ }
763+
749764
750765 private static void roundup (Calendar calendar ) {
751766 calendar .add (Calendar .SECOND , 1 );
You can’t perform that action at this time.
0 commit comments