parent
ebf6fff312
commit
b5147a034c
|
@ -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 {
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue