Skip to content

Commit 7a247e5

Browse files
committed
Merge branch 'master' into peer-recovery-retention-leases
2 parents 446ebf0 + e82818a commit 7a247e5

File tree

280 files changed

+1206
-971
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

280 files changed

+1206
-971
lines changed

client/rest-high-level/src/main/java/org/elasticsearch/client/IndexLifecycleClient.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@
3434
import org.elasticsearch.client.indexlifecycle.RetryLifecyclePolicyRequest;
3535
import org.elasticsearch.client.indexlifecycle.StartILMRequest;
3636
import org.elasticsearch.client.indexlifecycle.StopILMRequest;
37-
import org.elasticsearch.client.snapshotlifecycle.DeleteSnapshotLifecyclePolicyRequest;
38-
import org.elasticsearch.client.snapshotlifecycle.ExecuteSnapshotLifecyclePolicyRequest;
39-
import org.elasticsearch.client.snapshotlifecycle.ExecuteSnapshotLifecyclePolicyResponse;
40-
import org.elasticsearch.client.snapshotlifecycle.GetSnapshotLifecyclePolicyRequest;
41-
import org.elasticsearch.client.snapshotlifecycle.GetSnapshotLifecyclePolicyResponse;
42-
import org.elasticsearch.client.snapshotlifecycle.PutSnapshotLifecyclePolicyRequest;
37+
import org.elasticsearch.client.slm.DeleteSnapshotLifecyclePolicyRequest;
38+
import org.elasticsearch.client.slm.ExecuteSnapshotLifecyclePolicyRequest;
39+
import org.elasticsearch.client.slm.ExecuteSnapshotLifecyclePolicyResponse;
40+
import org.elasticsearch.client.slm.GetSnapshotLifecyclePolicyRequest;
41+
import org.elasticsearch.client.slm.GetSnapshotLifecyclePolicyResponse;
42+
import org.elasticsearch.client.slm.PutSnapshotLifecyclePolicyRequest;
4343

4444
import java.io.IOException;
4545

client/rest-high-level/src/main/java/org/elasticsearch/client/IndexLifecycleRequestConverters.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@
3232
import org.elasticsearch.client.indexlifecycle.RetryLifecyclePolicyRequest;
3333
import org.elasticsearch.client.indexlifecycle.StartILMRequest;
3434
import org.elasticsearch.client.indexlifecycle.StopILMRequest;
35-
import org.elasticsearch.client.snapshotlifecycle.DeleteSnapshotLifecyclePolicyRequest;
36-
import org.elasticsearch.client.snapshotlifecycle.ExecuteSnapshotLifecyclePolicyRequest;
37-
import org.elasticsearch.client.snapshotlifecycle.GetSnapshotLifecyclePolicyRequest;
38-
import org.elasticsearch.client.snapshotlifecycle.PutSnapshotLifecyclePolicyRequest;
35+
import org.elasticsearch.client.slm.DeleteSnapshotLifecyclePolicyRequest;
36+
import org.elasticsearch.client.slm.ExecuteSnapshotLifecyclePolicyRequest;
37+
import org.elasticsearch.client.slm.GetSnapshotLifecyclePolicyRequest;
38+
import org.elasticsearch.client.slm.PutSnapshotLifecyclePolicyRequest;
3939
import org.elasticsearch.common.Strings;
4040

4141
import java.io.IOException;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.client.snapshotlifecycle;
20+
package org.elasticsearch.client.slm;
2121

2222
import org.elasticsearch.client.TimedRequest;
2323

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.client.snapshotlifecycle;
20+
package org.elasticsearch.client.slm;
2121

2222
import org.elasticsearch.client.TimedRequest;
2323

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.client.snapshotlifecycle;
20+
package org.elasticsearch.client.slm;
2121

2222
import org.elasticsearch.common.ParseField;
2323
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.client.snapshotlifecycle;
20+
package org.elasticsearch.client.slm;
2121

2222
import org.elasticsearch.client.TimedRequest;
2323

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.client.snapshotlifecycle;
20+
package org.elasticsearch.client.slm;
2121

2222
import org.elasticsearch.common.xcontent.ToXContentObject;
2323
import org.elasticsearch.common.xcontent.XContentBuilder;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.client.snapshotlifecycle;
20+
package org.elasticsearch.client.slm;
2121

2222
import org.elasticsearch.client.TimedRequest;
2323
import org.elasticsearch.common.xcontent.ToXContentObject;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.client.snapshotlifecycle;
20+
package org.elasticsearch.client.slm;
2121

2222
import org.elasticsearch.common.ParseField;
2323
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.client.snapshotlifecycle;
20+
package org.elasticsearch.client.slm;
2121

2222
import org.elasticsearch.common.Nullable;
2323
import org.elasticsearch.common.ParseField;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.elasticsearch.client.snapshotlifecycle;
20+
package org.elasticsearch.client.slm;
2121

2222
import org.elasticsearch.common.Nullable;
2323
import org.elasticsearch.common.ParseField;

client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/ILMDocumentationIT.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@
5454
import org.elasticsearch.client.indexlifecycle.StartILMRequest;
5555
import org.elasticsearch.client.indexlifecycle.StopILMRequest;
5656
import org.elasticsearch.client.indices.CreateIndexRequest;
57-
import org.elasticsearch.client.snapshotlifecycle.DeleteSnapshotLifecyclePolicyRequest;
58-
import org.elasticsearch.client.snapshotlifecycle.ExecuteSnapshotLifecyclePolicyRequest;
59-
import org.elasticsearch.client.snapshotlifecycle.ExecuteSnapshotLifecyclePolicyResponse;
60-
import org.elasticsearch.client.snapshotlifecycle.GetSnapshotLifecyclePolicyRequest;
61-
import org.elasticsearch.client.snapshotlifecycle.GetSnapshotLifecyclePolicyResponse;
62-
import org.elasticsearch.client.snapshotlifecycle.PutSnapshotLifecyclePolicyRequest;
63-
import org.elasticsearch.client.snapshotlifecycle.SnapshotInvocationRecord;
64-
import org.elasticsearch.client.snapshotlifecycle.SnapshotLifecyclePolicy;
65-
import org.elasticsearch.client.snapshotlifecycle.SnapshotLifecyclePolicyMetadata;
57+
import org.elasticsearch.client.slm.DeleteSnapshotLifecyclePolicyRequest;
58+
import org.elasticsearch.client.slm.ExecuteSnapshotLifecyclePolicyRequest;
59+
import org.elasticsearch.client.slm.ExecuteSnapshotLifecyclePolicyResponse;
60+
import org.elasticsearch.client.slm.GetSnapshotLifecyclePolicyRequest;
61+
import org.elasticsearch.client.slm.GetSnapshotLifecyclePolicyResponse;
62+
import org.elasticsearch.client.slm.PutSnapshotLifecyclePolicyRequest;
63+
import org.elasticsearch.client.slm.SnapshotInvocationRecord;
64+
import org.elasticsearch.client.slm.SnapshotLifecyclePolicy;
65+
import org.elasticsearch.client.slm.SnapshotLifecyclePolicyMetadata;
6666
import org.elasticsearch.cluster.metadata.IndexMetaData;
6767
import org.elasticsearch.common.Strings;
6868
import org.elasticsearch.common.collect.ImmutableOpenMap;

modules/lang-painless/src/main/java/org/elasticsearch/painless/AnalyzerCaster.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import org.elasticsearch.painless.lookup.PainlessCast;
2323
import org.elasticsearch.painless.lookup.PainlessLookupUtility;
2424
import org.elasticsearch.painless.lookup.def;
25+
import org.elasticsearch.script.JodaCompatibleZonedDateTime;
2526

27+
import java.time.ZonedDateTime;
2628
import java.util.Objects;
2729

2830
/**
@@ -72,11 +74,19 @@ public static PainlessCast getLegalCast(Location location, Class<?> actual, Clas
7274
return PainlessCast.originalTypetoTargetType(def.class, Float.class, explicit);
7375
} else if (expected == Double.class) {
7476
return PainlessCast.originalTypetoTargetType(def.class, Double.class, explicit);
77+
// TODO: remove this when the transition from Joda to Java datetimes is completed
78+
} else if (expected == ZonedDateTime.class) {
79+
return PainlessCast.originalTypetoTargetType(def.class, ZonedDateTime.class, explicit);
7580
}
7681
} else if (actual == String.class) {
7782
if (expected == char.class && explicit) {
7883
return PainlessCast.originalTypetoTargetType(String.class, char.class, true);
7984
}
85+
// TODO: remove this when the transition from Joda to Java datetimes is completed
86+
} else if (actual == JodaCompatibleZonedDateTime.class) {
87+
if (expected == ZonedDateTime.class) {
88+
return PainlessCast.originalTypetoTargetType(JodaCompatibleZonedDateTime.class, ZonedDateTime.class, explicit);
89+
}
8090
} else if (actual == boolean.class) {
8191
if (expected == def.class) {
8292
return PainlessCast.boxOriginalType(Boolean.class, def.class, explicit, boolean.class);

modules/lang-painless/src/main/java/org/elasticsearch/painless/Def.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@
2323
import org.elasticsearch.painless.lookup.PainlessLookup;
2424
import org.elasticsearch.painless.lookup.PainlessLookupUtility;
2525
import org.elasticsearch.painless.lookup.PainlessMethod;
26+
import org.elasticsearch.script.JodaCompatibleZonedDateTime;
2627

2728
import java.lang.invoke.CallSite;
2829
import java.lang.invoke.MethodHandle;
2930
import java.lang.invoke.MethodHandles;
3031
import java.lang.invoke.MethodType;
32+
import java.time.ZonedDateTime;
3133
import java.util.BitSet;
3234
import java.util.Collections;
3335
import java.util.Iterator;
@@ -1185,6 +1187,15 @@ public static String defToStringExplicit(final Object value) {
11851187
}
11861188
}
11871189

1190+
// TODO: remove this when the transition from Joda to Java datetimes is completed
1191+
public static ZonedDateTime defToZonedDateTime(final Object value) {
1192+
if (value instanceof JodaCompatibleZonedDateTime) {
1193+
return ((JodaCompatibleZonedDateTime)value).getZonedDateTime();
1194+
}
1195+
1196+
return (ZonedDateTime)value;
1197+
}
1198+
11881199
/**
11891200
* "Normalizes" the index into a {@code Map} by making no change to the index.
11901201
*/

modules/lang-painless/src/main/java/org/elasticsearch/painless/MethodWriter.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.elasticsearch.painless.lookup.PainlessCast;
2323
import org.elasticsearch.painless.lookup.PainlessMethod;
2424
import org.elasticsearch.painless.lookup.def;
25+
import org.elasticsearch.script.JodaCompatibleZonedDateTime;
2526
import org.objectweb.asm.ClassVisitor;
2627
import org.objectweb.asm.Label;
2728
import org.objectweb.asm.Opcodes;
@@ -30,6 +31,7 @@
3031
import org.objectweb.asm.commons.Method;
3132

3233
import java.lang.reflect.Modifier;
34+
import java.time.ZonedDateTime;
3335
import java.util.ArrayDeque;
3436
import java.util.ArrayList;
3537
import java.util.Arrays;
@@ -71,8 +73,10 @@
7173
import static org.elasticsearch.painless.WriterConstants.DEF_TO_P_SHORT_IMPLICIT;
7274
import static org.elasticsearch.painless.WriterConstants.DEF_TO_STRING_EXPLICIT;
7375
import static org.elasticsearch.painless.WriterConstants.DEF_TO_STRING_IMPLICIT;
76+
import static org.elasticsearch.painless.WriterConstants.DEF_TO_ZONEDDATETIME;
7477
import static org.elasticsearch.painless.WriterConstants.DEF_UTIL_TYPE;
7578
import static org.elasticsearch.painless.WriterConstants.INDY_STRING_CONCAT_BOOTSTRAP_HANDLE;
79+
import static org.elasticsearch.painless.WriterConstants.JCZDT_TO_ZONEDDATETIME;
7680
import static org.elasticsearch.painless.WriterConstants.LAMBDA_BOOTSTRAP_HANDLE;
7781
import static org.elasticsearch.painless.WriterConstants.MAX_INDY_STRING_CONCAT_ARGS;
7882
import static org.elasticsearch.painless.WriterConstants.PAINLESS_ERROR_TYPE;
@@ -156,6 +160,9 @@ public void writeCast(PainlessCast cast) {
156160
invokeStatic(UTILITY_TYPE, CHAR_TO_STRING);
157161
} else if (cast.originalType == String.class && cast.targetType == char.class) {
158162
invokeStatic(UTILITY_TYPE, STRING_TO_CHAR);
163+
// TODO: remove this when the transition from Joda to Java datetimes is completed
164+
} else if (cast.originalType == JodaCompatibleZonedDateTime.class && cast.targetType == ZonedDateTime.class) {
165+
invokeStatic(UTILITY_TYPE, JCZDT_TO_ZONEDDATETIME);
159166
} else if (cast.unboxOriginalType != null && cast.boxTargetType != null) {
160167
unbox(getType(cast.unboxOriginalType));
161168
writeCast(cast.unboxOriginalType, cast.boxTargetType);
@@ -191,6 +198,8 @@ public void writeCast(PainlessCast cast) {
191198
else if (cast.targetType == Float.class) invokeStatic(DEF_UTIL_TYPE, DEF_TO_B_FLOAT_EXPLICIT);
192199
else if (cast.targetType == Double.class) invokeStatic(DEF_UTIL_TYPE, DEF_TO_B_DOUBLE_EXPLICIT);
193200
else if (cast.targetType == String.class) invokeStatic(DEF_UTIL_TYPE, DEF_TO_STRING_EXPLICIT);
201+
// TODO: remove this when the transition from Joda to Java datetimes is completed
202+
else if (cast.targetType == ZonedDateTime.class) invokeStatic(DEF_UTIL_TYPE, DEF_TO_ZONEDDATETIME);
194203
else {
195204
writeCast(cast.originalType, cast.targetType);
196205
}
@@ -212,6 +221,8 @@ public void writeCast(PainlessCast cast) {
212221
else if (cast.targetType == Float.class) invokeStatic(DEF_UTIL_TYPE, DEF_TO_B_FLOAT_IMPLICIT);
213222
else if (cast.targetType == Double.class) invokeStatic(DEF_UTIL_TYPE, DEF_TO_B_DOUBLE_IMPLICIT);
214223
else if (cast.targetType == String.class) invokeStatic(DEF_UTIL_TYPE, DEF_TO_STRING_IMPLICIT);
224+
// TODO: remove this when the transition from Joda to Java datetimes is completed
225+
else if (cast.targetType == ZonedDateTime.class) invokeStatic(DEF_UTIL_TYPE, DEF_TO_ZONEDDATETIME);
215226
else {
216227
writeCast(cast.originalType, cast.targetType);
217228
}

modules/lang-painless/src/main/java/org/elasticsearch/painless/Utility.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919

2020
package org.elasticsearch.painless;
2121

22+
import org.elasticsearch.script.JodaCompatibleZonedDateTime;
23+
24+
import java.time.ZonedDateTime;
25+
2226
/**
2327
* A set of methods for non-native boxing and non-native
2428
* exact math operations used at both compile-time and runtime.
@@ -43,5 +47,10 @@ public static char StringTochar(final String value) {
4347
return value.charAt(0);
4448
}
4549

50+
// TODO: remove this when the transition from Joda to Java datetimes is completed
51+
public static ZonedDateTime JCZDTToZonedDateTime(final JodaCompatibleZonedDateTime jczdt) {
52+
return jczdt.getZonedDateTime();
53+
}
54+
4655
private Utility() {}
4756
}

modules/lang-painless/src/main/java/org/elasticsearch/painless/WriterConstants.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.elasticsearch.painless.api.Augmentation;
2323
import org.elasticsearch.painless.lookup.PainlessLookup;
24+
import org.elasticsearch.script.JodaCompatibleZonedDateTime;
2425
import org.elasticsearch.script.ScriptException;
2526
import org.objectweb.asm.Handle;
2627
import org.objectweb.asm.Opcodes;
@@ -31,6 +32,7 @@
3132
import java.lang.invoke.MethodHandle;
3233
import java.lang.invoke.MethodHandles;
3334
import java.lang.invoke.MethodType;
35+
import java.time.ZonedDateTime;
3436
import java.util.BitSet;
3537
import java.util.Collection;
3638
import java.util.Collections;
@@ -98,13 +100,16 @@ public final class WriterConstants {
98100
public static final Method STRING_TO_CHAR = getAsmMethod(char.class, "StringTochar", String.class);
99101
public static final Method CHAR_TO_STRING = getAsmMethod(String.class, "charToString", char.class);
100102

103+
// TODO: remove this when the transition from Joda to Java datetimes is completed
104+
public static final Method JCZDT_TO_ZONEDDATETIME =
105+
getAsmMethod(ZonedDateTime.class, "JCZDTToZonedDateTime", JodaCompatibleZonedDateTime.class);
101106

102107
public static final Type METHOD_HANDLE_TYPE = Type.getType(MethodHandle.class);
103108

104109
public static final Type AUGMENTATION_TYPE = Type.getType(Augmentation.class);
105110

106111
/**
107-
* A Method instance for {@linkplain Pattern#compile}. This isn't available from PainlessLookup because we intentionally don't add it
112+
* A Method instance for {@linkplain Pattern}. This isn't available from PainlessLookup because we intentionally don't add it
108113
* there so that the script can't create regexes without this syntax. Essentially, our static regex syntax has a monopoly on building
109114
* regexes because it can do it statically. This is both faster and prevents the script from doing something super slow like building a
110115
* regex per time it is run.
@@ -161,6 +166,9 @@ public final class WriterConstants {
161166
public static final Method DEF_TO_STRING_IMPLICIT = getAsmMethod(String.class, "defToStringImplicit", Object.class);
162167
public static final Method DEF_TO_STRING_EXPLICIT = getAsmMethod(String.class, "defToStringExplicit", Object.class);
163168

169+
// TODO: remove this when the transition from Joda to Java datetimes is completed
170+
public static final Method DEF_TO_ZONEDDATETIME = getAsmMethod(ZonedDateTime.class, "defToZonedDateTime", Object.class);
171+
164172
public static final Type DEF_ARRAY_LENGTH_METHOD_TYPE = Type.getMethodType(Type.INT_TYPE, Type.getType(Object.class));
165173

166174
/** invokedynamic bootstrap for lambda expression/method references */

modules/lang-painless/src/main/resources/org/elasticsearch/painless/spi/org.elasticsearch.txt

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ class org.elasticsearch.script.JodaCompatibleZonedDateTime {
8787
int getNano()
8888
int getSecond()
8989
int getYear()
90-
ZoneId getZone()
9190
ZonedDateTime minus(TemporalAmount)
9291
ZonedDateTime minus(long,TemporalUnit)
9392
ZonedDateTime minusYears(long)
@@ -108,7 +107,6 @@ class org.elasticsearch.script.JodaCompatibleZonedDateTime {
108107
ZonedDateTime plusSeconds(long)
109108
ZonedDateTime plusWeeks(long)
110109
ZonedDateTime plusYears(long)
111-
Instant toInstant()
112110
OffsetDateTime toOffsetDateTime()
113111
ZonedDateTime truncatedTo(TemporalUnit)
114112
ZonedDateTime with(TemporalAdjuster)
@@ -127,25 +125,6 @@ class org.elasticsearch.script.JodaCompatibleZonedDateTime {
127125
ZonedDateTime withZoneSameLocal(ZoneId)
128126
ZonedDateTime withZoneSameInstant(ZoneId)
129127

130-
#### ChronoZonedDateTime
131-
int compareTo(JodaCompatibleZonedDateTime)
132-
Chronology getChronology()
133-
String format(DateTimeFormatter)
134-
int get(TemporalField)
135-
long getLong(TemporalField)
136-
ZoneOffset getOffset()
137-
boolean isSupported(TemporalField)
138-
long toEpochSecond()
139-
LocalTime toLocalTime()
140-
141-
#### Joda methods that exist in java time
142-
boolean equals(Object)
143-
int hashCode()
144-
boolean isAfter(JodaCompatibleZonedDateTime)
145-
boolean isBefore(JodaCompatibleZonedDateTime)
146-
boolean isEqual(JodaCompatibleZonedDateTime)
147-
String toString()
148-
149128
#### Joda time methods
150129
long getMillis()
151130
int getCenturyOfEra()

modules/lang-painless/src/test/java/org/elasticsearch/painless/BasicAPITests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,14 @@ public void testStatic() {
139139
assertEquals(10, exec("staticAddIntsTest(7, 3)"));
140140
assertEquals(15.5f, exec("staticAddFloatsTest(6.5f, 9.0f)"));
141141
}
142+
143+
// TODO: remove this when the transition from Joda to Java datetimes is completed
144+
public void testJCZDTToZonedDateTime() {
145+
assertEquals(0L, exec(
146+
"Instant instant = Instant.ofEpochMilli(434931330000L);" +
147+
"JodaCompatibleZonedDateTime d = new JodaCompatibleZonedDateTime(instant, ZoneId.of('Z'));" +
148+
"ZonedDateTime t = d;" +
149+
"return ChronoUnit.MILLIS.between(d, t);"
150+
));
151+
}
142152
}

modules/lang-painless/src/test/java/org/elasticsearch/painless/DefCastTests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,4 +683,14 @@ public void testdefToStringImplicit() {
683683
public void testdefToStringExplicit() {
684684
assertEquals("s", exec("def d = (char)'s'; String b = (String)d; b"));
685685
}
686+
687+
// TODO: remove this when the transition from Joda to Java datetimes is completed
688+
public void testdefToZonedDateTime() {
689+
assertEquals(0L, exec(
690+
"Instant instant = Instant.ofEpochMilli(434931330000L);" +
691+
"def d = new JodaCompatibleZonedDateTime(instant, ZoneId.of('Z'));" +
692+
"ZonedDateTime t = d;" +
693+
"return ChronoUnit.MILLIS.between(d, t);"
694+
));
695+
}
686696
}

0 commit comments

Comments
 (0)