Convert DateTimeException to expected IllegalArgumentException
Closes gh-33545
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,16 +17,18 @@
|
||||
package org.springframework.beans.propertyeditors;
|
||||
|
||||
import java.beans.PropertyEditorSupport;
|
||||
import java.time.DateTimeException;
|
||||
import java.time.ZoneId;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* Editor for {@code java.time.ZoneId}, translating zone ID Strings into {@code ZoneId}
|
||||
* objects. Exposes the {@code TimeZone} ID as a text representation.
|
||||
* Editor for {@code java.time.ZoneId}, translating time zone Strings into {@code ZoneId}
|
||||
* objects. Exposes the time zone as a text representation.
|
||||
*
|
||||
* @author Nicholas Williams
|
||||
* @author Sam Brannen
|
||||
* @author Juergen Hoeller
|
||||
* @since 4.0
|
||||
* @see java.time.ZoneId
|
||||
* @see TimeZoneEditor
|
||||
@@ -38,7 +40,12 @@ public class ZoneIdEditor extends PropertyEditorSupport {
|
||||
if (StringUtils.hasText(text)) {
|
||||
text = text.trim();
|
||||
}
|
||||
setValue(ZoneId.of(text));
|
||||
try {
|
||||
setValue(ZoneId.of(text));
|
||||
}
|
||||
catch (DateTimeException ex) {
|
||||
throw new IllegalArgumentException(ex.getMessage(), ex);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -23,10 +23,12 @@ import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
|
||||
|
||||
/**
|
||||
* @author Nicholas Williams
|
||||
* @author Sam Brannen
|
||||
* @author Juergen Hoeller
|
||||
*/
|
||||
class ZoneIdEditorTests {
|
||||
|
||||
@@ -69,4 +71,9 @@ class ZoneIdEditorTests {
|
||||
assertThat(editor.getAsText()).as("The text version is not correct.").isEqualTo("America/New_York");
|
||||
}
|
||||
|
||||
@Test
|
||||
void correctExceptionForInvalid() {
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> editor.setAsText("INVALID")).withMessageContaining("INVALID");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user