Sempre que do cancelar no download, da esse erro. somento qdo cancelo, quando baixo normal nao acontecer esse erro, e algo no cancelar que tenho q tratar??
java.io.IOException: Stream Closed
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:220)
at org.primefaces.component.filedownload.FileDownloadActionListener.processAction(FileDownloadActionListener.java:71)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
poste o código de como está fazendo o download.
[code]@ManagedBean(name = “fileDownloadBean”)
@SessionScoped
public class FileDownloadController {
private StreamedContent file;
public FileDownloadController() throws FileNotFoundException {
DownloadPG dDao = new DownloadPG();
Download down = new Download();
DownBean bean = new DownBean();
String idArquivoUrl = "";
String tipoArquivo = "";
int idArquivo = 0;
HttpSession s = (HttpSession) FacesContext.getCurrentInstance()
.getExternalContext().getSession(true);
try {
idArquivoUrl = s.getAttribute("a").toString();
} catch (Exception e) {
}
idArquivo = Integer.parseInt(idArquivoUrl);
// long l = bean.getDownloadSelecionado().getIdArquivo();
down = dDao.dadosParaDownload(idArquivo);
//dDao.inclur(0,iduser , idArquivo, data); incluir para os downloads realizados
String nome = down.getNome();
String tipo = down.getTipo();
String url = down.getUrl();
if (tipo.equals("jpg") || tipo.equals("JPG") || tipo.equals("png")) {
tipoArquivo = "image";
} else if (tipo.equals("txt") || tipo.equals("docx") || tipo.equals("xlsx") || tipo.equals("pdf")) {
tipoArquivo = "application";
}
InputStream stream = new FileInputStream(url);
file = new DefaultStreamedContent(stream, tipoArquivo + "/" + tipo, nome + "." + tipo);
}
public StreamedContent getFile() {
return file;
}
}
[/code]
[code]<h:form >
<p:dialog modal=“true” widgetVar=“downloadArquivo” header=“Download Arquivo”
draggable=“false”
resizable=“false” width=“400” showEffect=“explode” hideEffect=“explode”>
<h:outputLabel value=“Deseja realmente fazer o download desse arquivo” />
#<h:outputLabel value="#{DownBean.downloadSelecionado.idArquivo}"/>#
<p:commandButton value="Sim" onclick="PrimeFaces.monitorDownload(start, stop)"
ajax="false" type="submit" >
<p:fileDownload value="#{fileDownloadBean.file}" />
</p:commandButton>
<p:commandButton value="Nao" style="margin-left: 20px"
onclick="downloadArquivo.close()"/>/
</p:dialog>
</h:form>[/code]
faltou isso tbm
[code] <p:tab title=“Downloads Disponiveis” id=“tabDownDisp”>
<h:panelGrid >
<p:dataTable id=“tableDownDisp” var=“arquivos” value="#{DownBean.listDonw}"
paginator=“true” rows=“5” rowKey="#{arquivos.idArquivo}"
selection="#{DownBean.downloadSelecionado}"
selectionMode=“single”
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink}
{PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate=“5,10”>
<p:column headerText="# id" style="width:185px" >
<h:outputText value="#{arquivos.idArquivo}" />
</p:column>
<p:column headerText="Nome Do Arquivo" style="width:185px" >
<h:outputText value="#{arquivos.nome}" />
</p:column>
<p:column headerText="Tipo" style="width:185px">
<center>
<h:outputText value="#{arquivos.tipo}" />
</center>
</p:column>
<p:column headerText="Tamanho" style="width:185px">
<center>
<h:outputText value="#{arquivos.tamanho}" />
</center>
</p:column>
<p:column headerText="Data de Upload" style="width:185px">
<center>
<h:outputText value="#{arquivos.dataUpload}" >
<f:convertDateTime dateStyle="medium"/>
</h:outputText>
</center>
</p:column>
<p:column headerText="Compartilhado Por" style="width:185px">
<center>
<h:outputText value="#{arquivos.amigo}" />
</center>
</p:column>
<f:facet name="footer">
<p:commandButton value="Download"
style="height: 45px;margin-left: 10px;width: 128px;"
icon="ui-icon-arrowthichk-s"
oncomplete="downloadArquivo.show()"/>
</f:facet>
</p:dataTable>
</h:panelGrid>
</center>
</p:tab>[/code]
entao resolvi colocando tudo que estava no construtor para o getfile, nao sei se a maneiro correta, mas funciona!!!ate o momento
Boa noite amigo vc teria como colocar os métodos que faltam do seu bean como :
DownloadPG dDao = new DownloadPG();
Download down = new Download();
DownBean bean = new DownBean();
dDao.dadosParaDownload(idArquivo); ?