@@ -128,7 +128,7 @@ public Outcome handleRequest(Exchange exc) {
128128
129129 try {
130130 exc .setTimeReqSent (currentTimeMillis ());
131- exc .setResponse (createResponse (router .getResolverMap (), combine (router .getConfiguration ().getBaseLocation (), docBase , uri )));
131+ exc .setResponse (createResponseInternal (router .getResolverMap (), combine (router .getConfiguration ().getBaseLocation (), docBase , uri )));
132132 exc .setReceived ();
133133 exc .setTimeResReceived (currentTimeMillis ());
134134 return RETURN ;
@@ -191,18 +191,15 @@ public Outcome handleRequest(Exchange exc) {
191191
192192 private boolean tryToReceiveResource (Exchange exc , String uri ) {
193193 for (String i : index ) {
194- Response response = createResponse (
195- router .getResolverMap (),
196- combine (router .getConfiguration ().getBaseLocation (), docBase , uri + i )
197- );
198-
199- if (!response .isOk ())
200- continue ;
201-
202- exc .setResponse (response );
203- exc .setReceived ();
204- exc .setTimeResReceived (currentTimeMillis ());
205- return true ;
194+ try {
195+ Response response = createResponseInternal (router .getResolverMap (), ResolverMap .combine (router .getConfiguration ().getBaseLocation (), docBase , uri + i ));
196+ if (!response .isOk ())
197+ continue ;
198+ exc .setResponse (response );
199+ exc .setReceived ();
200+ exc .setTimeResReceived (currentTimeMillis ());
201+ return true ;
202+ } catch (ResourceRetrievalException ignored ) {}
206203 }
207204 return false ;
208205 }
@@ -248,10 +245,7 @@ private boolean escapesPath(String uri) {
248245
249246 public Response createResponse (ResolverMap rr , String resPath ) {
250247 try {
251- return ok ()
252- .header (createHeaders (getContentType (resPath )))
253- .body (rr .resolve (resPath ), true )
254- .build ();
248+ return createResponseInternal (rr , resPath );
255249 } catch (Exception e ) {
256250 return internal (router .getConfiguration ().isProduction (), getDisplayName ())
257251 .title ("Could not resolve file" )
@@ -261,6 +255,13 @@ public Response createResponse(ResolverMap rr, String resPath) {
261255 }
262256 }
263257
258+ private Response createResponseInternal (ResolverMap rr , String resPath ) throws ResourceRetrievalException {
259+ return ok ()
260+ .header (createHeaders (getContentType (resPath )))
261+ .body (rr .resolve (resPath ), true )
262+ .build ();
263+ }
264+
264265 public String getDocBase () {
265266 return docBase ;
266267 }
0 commit comments