fix #570 : Empty file is downloaded if it does not exist
This commit is contained in:
parent
8f5100fd36
commit
26bf5a3bec
2 changed files with 12 additions and 1 deletions
|
@ -40,6 +40,7 @@ import org.elasticsearch.index.query.TermQueryBuilder;
|
|||
import org.lastaflute.web.Execute;
|
||||
import org.lastaflute.web.response.ActionResponse;
|
||||
import org.lastaflute.web.response.HtmlResponse;
|
||||
import org.lastaflute.web.response.StreamResponse;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -138,7 +139,13 @@ public class GoAction extends FessSearchAction {
|
|||
if (fessConfig.isSearchFileProxyEnabled()) {
|
||||
final ViewHelper viewHelper = ComponentUtil.getViewHelper();
|
||||
try {
|
||||
return viewHelper.asContentResponse(doc);
|
||||
final StreamResponse response = viewHelper.asContentResponse(doc);
|
||||
if (response.getHttpStatus().orElse(200) == 404) {
|
||||
logger.debug("Not found: " + targetUrl);
|
||||
saveError(messages -> messages.addErrorsNotFoundOnFileSystem(GLOBAL, targetUrl));
|
||||
return redirect(ErrorAction.class);
|
||||
}
|
||||
return response;
|
||||
} catch (final Exception e) {
|
||||
logger.debug("Failed to load: " + doc, e);
|
||||
saveError(messages -> messages.addErrorsNotLoadFromServer(GLOBAL, targetUrl));
|
||||
|
|
|
@ -540,6 +540,10 @@ public class ViewHelper {
|
|||
writeFileName(response, responseData);
|
||||
writeContentType(response, responseData);
|
||||
writeNoCache(response, responseData);
|
||||
if (responseData.getHttpStatusCode() == 404) {
|
||||
response.httpStatus(responseData.getHttpStatusCode());
|
||||
return response;
|
||||
}
|
||||
response.stream(out -> {
|
||||
try (final InputStream is = new BufferedInputStream(responseData.getResponseBody())) {
|
||||
out.write(is);
|
||||
|
|
Loading…
Add table
Reference in a new issue