Polishing

This commit is contained in:
Juergen Hoeller
2023-06-29 18:04:08 +02:00
parent e902f9551a
commit 0c39fff831
4 changed files with 29 additions and 14 deletions

View File

@@ -220,6 +220,16 @@ public abstract class AbstractResource implements Resource {
return null;
}
/**
* Lazily access the logger for debug logging in case of an exception.
*/
private void debug(Supplier<String> message, Throwable ex) {
Log logger = LogFactory.getLog(getClass());
if (logger.isDebugEnabled()) {
logger.debug(message.get(), ex);
}
}
/**
* This implementation compares description strings.
@@ -249,11 +259,4 @@ public abstract class AbstractResource implements Resource {
return getDescription();
}
private void debug(Supplier<String> message, Throwable ex) {
Log logger = LogFactory.getLog(getClass());
if (logger.isDebugEnabled()) {
logger.debug(message.get(), ex);
}
}
}

View File

@@ -257,7 +257,7 @@ public class ClassPathResource extends AbstractFileResolvingResource {
*/
@Override
public String getDescription() {
return "class path resource [" + this.absolutePath + ']';
return "class path resource [" + this.absolutePath + "]";
}
@@ -272,7 +272,7 @@ public class ClassPathResource extends AbstractFileResolvingResource {
if (this == obj) {
return true;
}
return ((obj instanceof ClassPathResource that) &&
return (obj instanceof ClassPathResource that &&
this.absolutePath.equals(that.absolutePath) &&
ObjectUtils.nullSafeEquals(getClassLoader(), that.getClassLoader()));
}

View File

@@ -70,19 +70,19 @@ class PathResourceTests {
@Test
void nullPath() {
assertThatIllegalArgumentException().isThrownBy(() -> new PathResource((Path) null))
.withMessageContaining("Path must not be null");
.withMessageContaining("Path must not be null");
}
@Test
void nullPathString() {
assertThatIllegalArgumentException().isThrownBy(() -> new PathResource((String) null))
.withMessageContaining("Path must not be null");
.withMessageContaining("Path must not be null");
}
@Test
void nullUri() {
assertThatIllegalArgumentException().isThrownBy(() -> new PathResource((URI) null))
.withMessageContaining("URI must not be null");
.withMessageContaining("URI must not be null");
}
@Test
@@ -258,6 +258,17 @@ class PathResourceTests {
assertThat(resource.isWritable()).isFalse();
}
@Test
void equalsAndHashCode() {
Resource mr1 = new PathResource(TEST_FILE);
Resource mr2 = new PathResource(TEST_FILE);
Resource mr3 = new PathResource(TEST_DIR);
assertThat(mr1).isEqualTo(mr2);
assertThat(mr1).isNotEqualTo(mr3);
assertThat(mr1).hasSameHashCodeAs(mr2);
assertThat(mr1).doesNotHaveSameHashCodeAs(mr3);
}
@Test
void outputStream(@TempDir Path temporaryFolder) throws IOException {
PathResource resource = new PathResource(temporaryFolder.resolve("test"));

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2023 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.
@@ -57,7 +57,7 @@ public class ServletContextResource extends AbstractFileResolvingResource implem
/**
* Create a new ServletContextResource.
* Create a new {@code ServletContextResource} for the given path.
* <p>The Servlet spec requires that resource paths start with a slash,
* even if many containers accept paths without leading slash too.
* Consequently, the given path will be prepended with a slash if it
@@ -94,6 +94,7 @@ public class ServletContextResource extends AbstractFileResolvingResource implem
return this.path;
}
/**
* This implementation checks {@code ServletContext.getResource}.
* @see jakarta.servlet.ServletContext#getResource(String)