Polishing

See gh-26574
See gh-26575
This commit is contained in:
Juergen Hoeller 2021-02-25 18:08:04 +01:00
parent ebf6fff312
commit b5147a034c
3 changed files with 14 additions and 11 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -98,6 +98,7 @@ public class PathEditor extends PropertyEditorSupport {
setValue(null); setValue(null);
} }
else if (!resource.isFile() && !resource.exists() && nioPathCandidate) { else if (!resource.isFile() && !resource.exists() && nioPathCandidate) {
// Prefer getFile().toPath() below for non-existent file handles
setValue(Paths.get(text).normalize()); setValue(Paths.get(text).normalize());
} }
else { else {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -34,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
public class PathEditorTests { public class PathEditorTests {
@Test @Test
public void testClasspathPathName() throws Exception { public void testClasspathPathName() {
PropertyEditor pathEditor = new PathEditor(); PropertyEditor pathEditor = new PathEditor();
pathEditor.setAsText("classpath:" + ClassUtils.classPackageAsResourcePath(getClass()) + "/" + pathEditor.setAsText("classpath:" + ClassUtils.classPackageAsResourcePath(getClass()) + "/" +
ClassUtils.getShortName(getClass()) + ".class"); ClassUtils.getShortName(getClass()) + ".class");
@ -46,14 +46,14 @@ public class PathEditorTests {
} }
@Test @Test
public void testWithNonExistentResource() throws Exception { public void testWithNonExistentResource() {
PropertyEditor propertyEditor = new PathEditor(); PropertyEditor propertyEditor = new PathEditor();
assertThatIllegalArgumentException().isThrownBy(() -> assertThatIllegalArgumentException().isThrownBy(() ->
propertyEditor.setAsText("classpath:/no_way_this_file_is_found.doc")); propertyEditor.setAsText("classpath:/no_way_this_file_is_found.doc"));
} }
@Test @Test
public void testWithNonExistentPath() throws Exception { public void testWithNonExistentPath() {
PropertyEditor pathEditor = new PathEditor(); PropertyEditor pathEditor = new PathEditor();
pathEditor.setAsText("file:/no_way_this_file_is_found.doc"); pathEditor.setAsText("file:/no_way_this_file_is_found.doc");
Object value = pathEditor.getValue(); Object value = pathEditor.getValue();
@ -65,7 +65,7 @@ public class PathEditorTests {
} }
@Test @Test
public void testAbsolutePath() throws Exception { public void testAbsolutePath() {
PropertyEditor pathEditor = new PathEditor(); PropertyEditor pathEditor = new PathEditor();
pathEditor.setAsText("/no_way_this_file_is_found.doc"); pathEditor.setAsText("/no_way_this_file_is_found.doc");
Object value = pathEditor.getValue(); Object value = pathEditor.getValue();
@ -77,7 +77,7 @@ public class PathEditorTests {
} }
@Test @Test
public void testWindowsAbsolutePath() throws Exception { public void testWindowsAbsolutePath() {
PropertyEditor pathEditor = new PathEditor(); PropertyEditor pathEditor = new PathEditor();
pathEditor.setAsText("C:\\no_way_this_file_is_found.doc"); pathEditor.setAsText("C:\\no_way_this_file_is_found.doc");
Object value = pathEditor.getValue(); Object value = pathEditor.getValue();
@ -89,7 +89,7 @@ public class PathEditorTests {
} }
@Test @Test
public void testWindowsAbsoluteFilePath() throws Exception { public void testWindowsAbsoluteFilePath() {
PropertyEditor pathEditor = new PathEditor(); PropertyEditor pathEditor = new PathEditor();
pathEditor.setAsText("file://C:\\no_way_this_file_is_found.doc"); pathEditor.setAsText("file://C:\\no_way_this_file_is_found.doc");
Object value = pathEditor.getValue(); Object value = pathEditor.getValue();
@ -101,7 +101,7 @@ public class PathEditorTests {
} }
@Test @Test
public void testUnqualifiedPathNameFound() throws Exception { public void testUnqualifiedPathNameFound() {
PropertyEditor pathEditor = new PathEditor(); PropertyEditor pathEditor = new PathEditor();
String fileName = ClassUtils.classPackageAsResourcePath(getClass()) + "/" + String fileName = ClassUtils.classPackageAsResourcePath(getClass()) + "/" +
ClassUtils.getShortName(getClass()) + ".class"; ClassUtils.getShortName(getClass()) + ".class";
@ -120,7 +120,7 @@ public class PathEditorTests {
} }
@Test @Test
public void testUnqualifiedPathNameNotFound() throws Exception { public void testUnqualifiedPathNameNotFound() {
PropertyEditor pathEditor = new PathEditor(); PropertyEditor pathEditor = new PathEditor();
String fileName = ClassUtils.classPackageAsResourcePath(getClass()) + "/" + String fileName = ClassUtils.classPackageAsResourcePath(getClass()) + "/" +
ClassUtils.getShortName(getClass()) + ".clazz"; ClassUtils.getShortName(getClass()) + ".clazz";

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -160,6 +160,8 @@ public class ClassPathResource extends AbstractFileResolvingResource {
} }
} }
catch (IllegalArgumentException ex) { catch (IllegalArgumentException ex) {
// Should not happen according to the JDK's contract:
// see https://github.com/openjdk/jdk/pull/2662
return null; return null;
} }
} }