private AjaxButton buildDownloadReportButton(final Upload upload) { AjaxButton ajaxButton = new AjaxButton(au.org.theark.phenotypic.web.Constants.UPLOADVO_UPLOAD_UPLOAD_REPORT) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { // Attempt to download the Blob as an array of bytes byte[] data = upload.getUploadReport(); log.warn("buildDownloadReportButton onsubmit get blob"); getRequestCycle() .scheduleRequestHandlerAfterCurrent( new ByteDataResourceRequestHandler( "text/plain", data, "uploadReport" + upload.getId() + ".txt")); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { this.error("Unexpected Error: Could not process download upload report request"); }; }; ajaxButton.setVisible(true); ajaxButton.setDefaultFormProcessing(false); if (upload.getUploadReport() == null) ajaxButton.setVisible(false); return ajaxButton; }