I´ve migrated to PF10, but i have an issue with the p:fileDownload component.
Code: Select all
<p:repeat
value="#{emailCheckNewEmailsController.selectedEmail.emailAttachmentList}"
var="emailAttachment">
<i class="fa fa-download" aria-hidden="true"></i>
<p:commandLink ajax="false" style="margin-left: 10px;"
value="#{emailAttachment.filename}" global="true"
immediate="true" title="#{emailAttachment.filename}"
styleClass="Fs11"
actionListener="#{emailInboxActionController.prepDownload(emailAttachment)}">
<p:fileDownload
value="#{emailInboxActionController.streamFile}" />
</p:commandLink>
<br></br>
</p:repeat>
In my bean:
Code: Select all
@Named
@ViewScoped
public class EmailInboxActionController implements Serializable {
private StreamedContent streamFile;
public void prepDownload(EmailAttachment emailAttachment) throws Exception {
LOGGER.info("START prepDownload");
try {
InputStream stream = emailAttachment.getInputStream();
streamFile = DefaultStreamedContent.builder().contentType(emailAttachment.getMimeType())
.name(emailAttachment.getFilename()).stream(() -> stream).build();
} catch (Exception e) {
LOGGER.error(ExceptionUtils.getFullStackTrace(e));
ErrorMessage.showErrorMessage();
}
LOGGER.info("END prepDownload");
}
public StreamedContent getStreamFile() {
return streamFile;
}
public void setStreamFile(StreamedContent streamFile) {
this.streamFile = streamFile;
}
}
Code: Select all
09:03:36,736 SEVERE [org.omnifaces.exceptionhandler.FullAjaxExceptionHandler] (default task-1) [b4aa4e94-094b-4126-bc00-f4fe5f02aac4][127.0.0.1] FullAjaxExceptionHandler: An exception occurred during processing JSF ajax request. Error page '/common/login.xhtml' will be shown.: java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2
at javax.faces.api@3.0.0.SP04//javax.faces.component.UIComponentBase.restoreChildState(UIComponentBase.java:3418)
at javax.faces.api@3.0.0.SP04//javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1026)
at javax.faces.api@3.0.0.SP04//javax.faces.component.UIComponentBase.restoreFacetsState(UIComponentBase.java:3445)
at javax.faces.api@3.0.0.SP04//javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1029)
Code: Select all
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
Code: Select all
<p:fileDownload value="#{emailInboxActionController.streamFile}" />
Any idea?