Avoid ConstantConditions warnings suppression (plus related polishing)

Issue: SPR-15756
This commit is contained in:
Juergen Hoeller
2018-05-29 21:47:10 +02:00
parent 8c30b8e628
commit 8593fec22c
12 changed files with 78 additions and 92 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2018 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.
@@ -42,7 +42,7 @@ class DefaultResourceResolverChain implements ResourceResolverChain {
public DefaultResourceResolverChain(@Nullable List<? extends ResourceResolver> resolvers) {
resolvers = resolvers != null ? resolvers : Collections.emptyList();
resolvers = (resolvers != null ? resolvers : Collections.emptyList());
DefaultResourceResolverChain chain = initChain(new ArrayList<>(resolvers));
this.resolver = chain.resolver;
this.nextChain = chain.nextChain;
@@ -50,19 +50,16 @@ class DefaultResourceResolverChain implements ResourceResolverChain {
private static DefaultResourceResolverChain initChain(ArrayList<? extends ResourceResolver> resolvers) {
DefaultResourceResolverChain chain = new DefaultResourceResolverChain(null, null);
ListIterator<? extends ResourceResolver> itr = resolvers.listIterator(resolvers.size());
while (itr.hasPrevious()) {
chain = new DefaultResourceResolverChain(itr.previous(), chain);
ListIterator<? extends ResourceResolver> it = resolvers.listIterator(resolvers.size());
while (it.hasPrevious()) {
chain = new DefaultResourceResolverChain(it.previous(), chain);
}
return chain;
}
private DefaultResourceResolverChain(@Nullable ResourceResolver resolver,
@Nullable ResourceResolverChain chain) {
private DefaultResourceResolverChain(@Nullable ResourceResolver resolver, @Nullable ResourceResolverChain chain) {
Assert.isTrue((resolver == null && chain == null) || (resolver != null && chain != null),
"Both resolver and resolver chain must be null, or neither is");
this.resolver = resolver;
this.nextChain = chain;
}
@@ -70,20 +67,18 @@ class DefaultResourceResolverChain implements ResourceResolverChain {
@Override
@Nullable
@SuppressWarnings("ConstantConditions")
public Resource resolveResource(@Nullable HttpServletRequest request, String requestPath,
List<? extends Resource> locations) {
public Resource resolveResource(
@Nullable HttpServletRequest request, String requestPath, List<? extends Resource> locations) {
return this.resolver != null ?
this.resolver.resolveResource(request, requestPath, locations, this.nextChain) : null;
return (this.resolver != null && this.nextChain != null ?
this.resolver.resolveResource(request, requestPath, locations, this.nextChain) : null);
}
@Override
@Nullable
@SuppressWarnings("ConstantConditions")
public String resolveUrlPath(String resourcePath, List<? extends Resource> locations) {
return this.resolver != null ?
this.resolver.resolveUrlPath(resourcePath, locations, this.nextChain) : null;
return (this.resolver != null && this.nextChain != null ?
this.resolver.resolveUrlPath(resourcePath, locations, this.nextChain) : null);
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2018 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.
@@ -44,13 +44,12 @@ class DefaultResourceTransformerChain implements ResourceTransformerChain {
private final ResourceTransformerChain nextChain;
public DefaultResourceTransformerChain(ResourceResolverChain resolverChain,
@Nullable List<ResourceTransformer> transformers) {
public DefaultResourceTransformerChain(
ResourceResolverChain resolverChain, @Nullable List<ResourceTransformer> transformers) {
Assert.notNull(resolverChain, "ResourceResolverChain is required");
this.resolverChain = resolverChain;
transformers = transformers != null ? transformers : Collections.emptyList();
transformers = (transformers != null ? transformers : Collections.emptyList());
DefaultResourceTransformerChain chain = initTransformerChain(resolverChain, new ArrayList<>(transformers));
this.transformer = chain.transformer;
this.nextChain = chain.nextChain;
@@ -60,9 +59,9 @@ class DefaultResourceTransformerChain implements ResourceTransformerChain {
ArrayList<ResourceTransformer> transformers) {
DefaultResourceTransformerChain chain = new DefaultResourceTransformerChain(resolverChain, null, null);
ListIterator<? extends ResourceTransformer> itr = transformers.listIterator(transformers.size());
while (itr.hasPrevious()) {
chain = new DefaultResourceTransformerChain(resolverChain, itr.previous(), chain);
ListIterator<? extends ResourceTransformer> it = transformers.listIterator(transformers.size());
while (it.hasPrevious()) {
chain = new DefaultResourceTransformerChain(resolverChain, it.previous(), chain);
}
return chain;
}
@@ -83,12 +82,10 @@ class DefaultResourceTransformerChain implements ResourceTransformerChain {
return this.resolverChain;
}
@Override
@SuppressWarnings("ConstantConditions")
public Resource transform(HttpServletRequest request, Resource resource) throws IOException {
return transformer != null ?
this.transformer.transform(request, resource, this.nextChain) : resource;
return (this.transformer != null && this.nextChain != null ?
this.transformer.transform(request, resource, this.nextChain) : resource);
}
}