Author: bdelacretaz
Date: Wed Oct 5 10:56:58 2016
New Revision: 1763407
URL: http://svn.apache.org/viewvc?rev=1763407&view=rev
Log:
SLING-6100 - avoid NPE in StartupFilterImpl
Modified:
sling/trunk/contrib/extensions/startup-filter/src/main/java/org/apache/sling/startupfilter/impl/StartupFilterImpl.java
sling/trunk/contrib/extensions/startup-filter/src/test/java/org/apache/sling/startupfilter/impl/StartupFilterImplTest.java
Modified:
sling/trunk/contrib/extensions/startup-filter/src/main/java/org/apache/sling/startupfilter/impl/StartupFilterImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/startup-filter/src/main/java/org/apache/sling/startupfilter/impl/StartupFilterImpl.java?rev=1763407&r1=1763406&r2=1763407&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/startup-filter/src/main/java/org/apache/sling/startupfilter/impl/StartupFilterImpl.java
(original)
+++
sling/trunk/contrib/extensions/startup-filter/src/main/java/org/apache/sling/startupfilter/impl/StartupFilterImpl.java
Wed Oct 5 10:56:58 2016
@@ -101,7 +101,7 @@ public class StartupFilterImpl implement
// Bypass for the managerRoot path
if(request instanceof HttpServletRequest) {
final String pathInfo =
((HttpServletRequest)request).getPathInfo();
- if(managerRoot != null && managerRoot.length() > 0 &&
pathInfo.startsWith(managerRoot)) {
+ if(managerRoot != null && managerRoot.length() > 0 && pathInfo !=
null && pathInfo.startsWith(managerRoot)) {
log.debug("Bypassing filter for path {} which starts with {}",
pathInfo, managerRoot);
chain.doFilter(request, sr);
return;
Modified:
sling/trunk/contrib/extensions/startup-filter/src/test/java/org/apache/sling/startupfilter/impl/StartupFilterImplTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/startup-filter/src/test/java/org/apache/sling/startupfilter/impl/StartupFilterImplTest.java?rev=1763407&r1=1763406&r2=1763407&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/startup-filter/src/test/java/org/apache/sling/startupfilter/impl/StartupFilterImplTest.java
(original)
+++
sling/trunk/contrib/extensions/startup-filter/src/test/java/org/apache/sling/startupfilter/impl/StartupFilterImplTest.java
Wed Oct 5 10:56:58 2016
@@ -133,6 +133,7 @@ public class StartupFilterImplTest {
private AtomicInteger activeFilterCount;
private ServiceRegistration serviceRegistration;
private String requestPath;
+ private String pathInfo;
private static final String CONSOLE_ROOT = "/test/system/console";
@Before
@@ -202,7 +203,7 @@ public class StartupFilterImplTest {
will(new ChangeInteger(activeFilterCount, false));
allowing(request).getPathInfo();
- will(returnValue(getRequestPath()));
+ will(returnValue(getPathInfo()));
allowing(chain).doFilter(with(any(ServletRequest.class)),
with(any(ServletResponse.class)));
}});
@@ -214,6 +215,10 @@ public class StartupFilterImplTest {
return requestPath;
}
+ private String getPathInfo() {
+ return pathInfo;
+ }
+
private void assertRequest(final int expectedStatus, final String
expectedMessage) throws Exception {
lastReturnedStatus = -1;
@@ -237,14 +242,22 @@ public class StartupFilterImplTest {
@Test
public void testBypassRoot() throws Exception {
- requestPath = CONSOLE_ROOT;
+ requestPath = pathInfo = CONSOLE_ROOT;
setProvider(null);
assertRequest(-1, "");
}
@Test
+ public void testNullPathInfo() throws Exception {
+ requestPath = pathInfo = CONSOLE_ROOT;
+ pathInfo = null;
+ setProvider(null);
+ assertRequest(503, "Startup in progress");
+ }
+
+ @Test
public void testBypassSubpath() throws Exception {
- requestPath = CONSOLE_ROOT + "/something";
+ requestPath = pathInfo = CONSOLE_ROOT + "/something";
setProvider(null);
assertRequest(-1, "");
}