@Override @Nullable public String resolveUrlPath(String resourcePath, List<? extends Resource> locations) { return (this.resolver != null && this.nextChain != null ? this.resolver.resolveUrlPath(resourcePath, locations, this.nextChain) : null); }
@Override @Nullable public String resolveUrlPath(String resourcePath, List<? extends Resource> locations) { return (this.resolver != null && this.nextChain != null ? this.resolver.resolveUrlPath(resourcePath, locations, this.nextChain) : null); }
@Override public String resolveUrlPath(String resourcePath, List<? extends Resource> locations) { ResourceResolver resolver = getNext(); if (resolver == null) { return null; } try { String returnPath = resolver.resolveUrlPath(resourcePath, locations, this); if (LOG.isTraceEnabled()) { LOG.trace("The return path for " + resourcePath + " from resolver " + resolver + " is " + returnPath); } return returnPath; } finally { this.index--; } }
@Test // SPR-16296 public void getForLookupPathShouldNotFailIfPathContainsDoubleSlashes() { // given ResourceResolver mockResourceResolver = mock(ResourceResolver.class); when(mockResourceResolver.resolveUrlPath(any(), any(), any())).thenReturn("some-path"); ResourceHttpRequestHandler handler = new ResourceHttpRequestHandler(); handler.getResourceResolvers().add(mockResourceResolver); ResourceUrlProvider provider = new ResourceUrlProvider(); provider.getHandlerMap().put("/some-pattern/**", handler); // when String lookupForPath = provider.getForLookupPath("/some-pattern/some-lib//some-resource"); // then assertEquals("/some-pattern/some-path", lookupForPath); }
@Override public String resolveUrlPath(String resourcePath, List<? extends Resource> locations) { ResourceResolver resolver = getNext(); if (resolver == null) { return null; } try { return resolver.resolveUrlPath(resourcePath, locations, this); } finally { this.index--; } }