FileDownloadActionListener in ADF

Hi,
I am new to ADF. Here is my requirement, when I click on OK button, I need to insert the data into database, once that is done, need to download the file from a certain location. For which I have confirgured the command button as below.,
<af:commandButton text="Insert and Download" id="cb2"
binding="#{BackingBean.DownloadButton}" visible="true clientComponent="true">
<af:fileDownloadActionListener method="#{BackingBean.getfile}"
contentType="text/csv"
filename="Details.csv"/>
Inside the getFile method, I have the code to insert the data into the DB and then writing the file data into the output stream.
The isssue is, when I click OK button, both the operations are not happening. When I change the code to insert only the data, or only to download the file, its happening. I am unable to make both the operations happen at the click of the single button.

User,
you post lacks of many information. Please tell us your jdev version.
Next it would help if you post some code of the bean method showing us what you do in there.
For a solution you can try what I outlined in this blog http://tompeez.wordpress.com/2011/07/14/validate-data-before-export-via-afexportcollectionactionlistener-or-affiledownloadactionlistener/
Timo

Similar Messages

  • How to download UCM file from adf UI using fileDownloadActionListener  ?

    Hi All,
    I need to download file from UCM.can any one please give some code snippet.
    my use-case is:
    In ADF UI I have table so from one of the column having link.when I click on link I have to download the file.I my table I have resourceId as a field.Please give me some code for the same.
    If I use fileDownloadActionListener on command link on the resourceID.
    Regards
    Shankar

    Hi Ramadeep,
    Thanks for your quick help.I am able to do the same with dDocName.but I m facing problem while setting contentType means MIME type to file. I am usig the below code for the same but contentType is taking null value.
    please take a lookinto code and give mw some solution.
    is this code is file or can I optimized.
        public void downloadFileUCM(FacesContext facesContext,
                                    OutputStream outputStream) {
            IdcClientManager manager = new IdcClientManager();
            IdcClient idcClient;
            try {
                idcClient = manager.createClient(IDC_URL);
                IdcContext userContext = new IdcContext(USER);
                DataBinder dataBinder = idcClient.createBinder();
                dataBinder.putLocal("IdcService", "GET_FILE");
                 dataBinder.putLocal("dDocName", ucmResourceId);
                dataBinder.putLocal("RevisionSelectionMethod", "LatestReleased");
                ServiceResponse responseString =
                    idcClient.sendRequest(userContext, dataBinder);
               setContentType(responseString.getHeader("Content-Type"));
                String contentType=responseString.getHeader("Content-Type");
                System.out.println("contentType:"+contentType);
                 InputStream inputStream = responseString.getResponseStream();
                byte[] buf = new byte[1024 * 256];
                long i = 0;
                int len;
                System.out.println("Downloading File from UCM Server");
                while (true) {
                    i++;
                    len = inputStream.read(buf);
                    if (len == -1) {
                        break;
                    outputStream.write(buf, 0, len);
                outputStream.flush();
                inputStream.close();
                outputStream.close();
                facesContext.responseComplete();
            } catch (IdcClientException ice) {
                System.out.println("IDC Client Exception occured. Exception message: " +
                                   ice.getMessage());
            } catch (IOException ioe) {
                System.out.println("IO Exception occurred. Unable to retrieve file. Message: " +
                                   ioe.getMessage());
            } catch (Exception ex) {
                System.out.println("Exception message: " + ex.getMessage());
        }Regards
    Siva

  • File download from a portletized ADF app running in webcenter spaces.

    Hi,
    I am having trouble downloading non static files from a portletized(with ADFPortletBridge) ADF application running as a portlet producer in Webcenter spaces .
    This is my scenario :
    Jdev : 11.1.1.3
    Webcenter : 11.1.1
    The ADF app has a query page, that uses the af:query component to do a query and display results on a table. This table data need to be exported as a file with some changes like splitting address to component city and state columns .
    The ADF app makes use of af:filedownloadlistener to get this(HTML formatted file with an .xls ext is our current preference to get it to open in excel, but could be anything) done . The ADF app works just fine, but as section 30.2.5.5 in the web center dev guide points out http://download.oracle.com/docs/cd/E14571_01/webcenter.1111/e10148/jpsdg_bridge.htm#CACBHDEF
    > The <af.fileDownloadActionListener> component is not supported.
    The actual behavior however is that the export happens when triggered, but the component keep serving up the same file it created the first time it got invoked every subsequent time. The same file is served even across sessions.
    The alternatives I've considered so far are :
    1. <af:exportCollectionActionListener> - Exports what you see on the UI table. Would not work for us, because our exported data is different than whats on screen. (eg: whole addresses are displayed as a single column, but broken down as component city and state columns in exported data )
    UPDATE : <af:exportCollectionActionListener> exhibits the same behavior as <af.fileDownloadActionListener> in a portlet environment. The first time after deployment it works, and every subsequent time (across sessions) it serves up the same file it first generated.
    2. redirect to a servlet - admittedly half baked idea - fiire an action that will generate the report, then put it in sessionScope , redirect to a servlet that would pick up the report from session and stream it to the user by setting the servlet's response content type. Very unsure if this would fly in a portlet environment (sorry, I'm new to portlets) and even if it does, section 30.2.5.2 in the web center dev guide says :
    Do not redirect or forward a request within your JSP. JSR 168 only supports requestDispatcher.include(). The use of httpServletResponse.sendRedirect() or requestDispatcher.forward() results in exceptions and errors. Am I overlooking some feature that would let me do this or whats the recommended method to achieve this functionality of exporting a file generated at run-time in a portlet environment ?
    Edited by: Jeevan Joseph on Oct 14, 2010 1:02 PM

    I'm facing the same problem. Do you have any news on this issue?

  • Af:fileDownloadActionListener picks wrong filename for the first time after row selection.

    Hi,
    I am using Oracle Jdeveloper 11g release 1. In one of my jspx pages i have a table, i can select one of the row and click on a button which invokes fileDownloadActionListener. The code of jspx is as below:
    <af:commandMenuItem text="#{coregccomplianceuiBundle.MENU_EXPORT}"
                                        id="CS19" partialSubmit="true"
                                        actionListener="#{viewScope.core_gccompliance_cs_librarybean.validateExport}"
                                        partialTriggers="CSftLib"
                                        disabled="#{viewScope.core_gccompliance_cs_librarybean.exportDisabled}">
    </af:commandMenuItem>
    <!--This button is set hidden, which is used to deal with the download job.
        The Export button on the page only does the validation. (whether it's a system defined standard)-->
      <af:commandButton text="#{coregccomplianceuiBundle.BTNEXPORTHIDDEN}" id="csl_csExportHidden"
                                          clientComponent="true" visible="false"
                                          partialSubmit="false">
    <af:fileDownloadActionListener contentType="application/x-download" 
                                          method="#{viewScope.core_gccompliance_cs_librarybean.handleExport}"
                                          filename="#{viewScope.core_gccompliance_cs_librarybean.fileName}"/> 
    </af:commandButton>
      /** force the ExportHidden Button to do export */
        function csExportHandler(event) {
            var exportCmd = AdfPage.PAGE.findComponent("emT:CS4:csl_csExportHidden");
            var actionEvent = new AdfActionEvent(exportCmd);
            actionEvent.forceFullSubmit();
            actionEvent.noResponseExpected();
            actionEvent.queue();
    The bean methods used in above block are as below:
    public void validateExport(ActionEvent actionEvent) {
           // checks if entity is system defined and shows error popup if it is .
            if (checkIsSystem())
                return;
            //Handle the export    
            AdfUtil.addScript("csExportHandler()");
    public void handleExport(FacesContext context, OutputStream out) {
            ComplianceLibraryAMImpl am = getDataController();
            HttpServletRequest request =
                (HttpServletRequest)context.getExternalContext().getRequest();
            Locale locale = NLSUtil.getClientLocale(request);
            ResourceBundle rb =
                ResourceBundle.getBundle("oracle.sysman.core.gccompliance.view.CoreGccomplianceUiMsg",
                                         locale);
            PreparedStatement st =
                am.getDBTransaction().createPreparedStatement("commit", 1);
            Connection conn = null;
            boolean isAgentSideCs = false;
            try {
                conn = st.getConnection();
                RichTable oTable = getCsTable();
                fileName = "ComplianceStandard.xml";
                List<Raw> exportGuids = new ArrayList<Raw>();
                for (Object opaqueFacesRowKey : oTable.getSelectedRowKeys()) {
                    oTable.setRowKey(opaqueFacesRowKey);
                    Object o = oTable.getRowData();
                    JUCtrlHierNodeBinding rowData = (JUCtrlHierNodeBinding)o;
                    exportGuids.add((Raw)rowData.getRow().getAttribute("CsGuid"));
                    int csType = ((oracle.jbo.domain.Number)rowData.getRow().getAttribute("CsType")).intValue();
                    if(csType == 4)
                        fileName =
                                (String)rowData.getRow().getAttribute("CsDname") + ".zip";
                        isAgentSideCs = true;
                    else
                        fileName =
                                (String)rowData.getRow().getAttribute("CsDname") + ".xml";
                    if(((Integer)rowData.getRow().getAttribute("IsSystem")).intValue() == 1){
                        throw(new ParseException(50));
                if (exportGuids.size() > 1)
                    fileName = "Compliancestandard_list.xml";
                RAW guid = new RAW(exportGuids.get(0).toString());
                if(isAgentSideCs)
                    getDataController().exportStandardContent(conn, out, guid);
                else
                    CsExport csexport = new CsExport(false);
                    csexport.doCsExport(conn, guid, false, out);
            } catch (ParseException e) {
                String errMsg = "";
                String errHdr = "";
                if(e.getStatus() == 50){
                    errMsg = rb.getString("ERRMSG_ISSYSTEMENTITY_EXPORT");
                    errHdr = rb.getString("ERRHDR_ISSYSTEMENTITY_EXPORT");
                else{
                    errMsg = rb.getString("ERRMSG_EXPORT_CS");
                    errHdr = rb.getString("ERRHDR_EXPORT_CS");
                AdfUtil.showMessageDialog(null, AdfUtil.MESSAGE_TYPE.ERROR, errHdr,
                                          errMsg, false, null);
                throw new RuntimeException(e);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            } finally {
                JDBCUtil.close(st);
            MimeUtil mimeUtil = new MimeUtil();
            mimeUtil.downloadFile(context, fileName);
            try {
                out.flush();
                out.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
    Class MimeUtil:
    public void downloadFile(FacesContext context, String fileName) {
            HttpServletResponse httpServletResponse =
                (HttpServletResponse)context.getExternalContext().getResponse();
            HttpServletRequest httpServletRequest =
                (HttpServletRequest) context.getExternalContext().getRequest();
            String unicodeFileName = fileName;
            String agent = httpServletRequest.getHeader("USER-AGENT").toLowerCase(Locale.US);
            boolean isIE = false;
            if (null != agent && -1 != agent.indexOf("msie"))
                isIE = true;
            //encode the output file name to support NLS
            unicodeFileName = MimeUtil.encodeFileName(fileName, isIE);
            httpServletResponse.setHeader("Content-disposition",
                                          "attachment;filename=\"" + unicodeFileName +
    httpServletResponse.setContentType("application/x-download");
            context.responseComplete();
            httpServletResponse.setContentType("application/x-download");
            context.responseComplete();
    Now when i come to the page for first time and select a row and click on Export then the filename that gets shown in save file dialog is incorrect (it shows partial adf taskflow name) , but when i select the row again by clicking on any other row and click export it shows correct filename i.e. selectedRowName.zip or .xml according to type of row selected.
    Can anybody suggest what am i missing?

    difficult to tell like this.but better you debug your code then you can get where you getting filename wrong.

  • How to upload & Download file in Adf using Jdeveloper 11.1.2 ??

    Hi All,
    I have just started working on Oracle ADF, Thanks a lot guys for solving our queries.
    I'm using Jdeveloper 11.1.2, How to upload and download file in ADF..?
    I have seen couple links on net but none of them worked on jdeveloper 11.1.2......
    Please Help......

    Hi guys,
    I'm able to download file in ADF using af:fileDownloadActionListener.......
    does any one knows how to upload a file using ADF???

  • How to solve Fusion ADF file upload and download?

    Now we are building web application with Fusion ADF (JDeveloper 11.1.2.0.0). We want to downloading and uploading from tables.Is there any special tool in Fusion ADF or should I going with traditional java coding. Thanks

    Actually ADF Provide Components for file upload and download
    Download :
    <af:fileDownloadActionListener/>
    See tagDoc: http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_fileDownloadActionListener.html
    Upload
    <af:inputFile/>
    See tagDoc: http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_inputFile.html
    Edited by: -CHS on Jul 6, 2011 9:52 AM

  • How to upload/download to blob using ADF-toplink?

    I am using ADF-toplink,i tried upload to blob using some of the code given in the ADFBC upload/download application...IT WORKED... but download is not working...I want to know some better method for both uploading and downloading... IN ADF-TOPLINK only......

    Hi guys,
    I'm able to download file in ADF using af:fileDownloadActionListener.......
    does any one knows how to upload a file using ADF???

  • Could not find FileDownloadActionListener in Jdev 10.1.3.2

    Hi all,
    we are working on Jdev 10.1.3.2 (ADF), where we need to trigger a file download on clicking a command link. But we cannot find FileDownloadActionListener, can you please provide any information on how we can workout such an action for the command link in Jdev 10.1.3.2.

    Hi,
    this component does not exist in 10.1.3 but 11g only
    Frank

  • How to make fileDownloadActionListener to open pdf file in new window

    Hi all ,
    i used the component [ fileDownloadActionListener ] to make download pdf file ,
    my question is
    How make this components to download and open file in new window ?
    Jdeveloper version 11.1.2.3

    Here is a sample http://technology.amis.nl/2011/07/28/adf-11g-show-pdf-in-a-popup/
    or http://mahmoudoracle.blogspot.de/2012/06/genius-adf-buttons.html#.UZygjrVM_Lk
    in General you can use the technique described here http://tompeez.wordpress.com/2011/12/16/jdev11-1-2-1-0-handling-imagesfiles-in-adf-part-3/ and configure hte browser to püen the doenloaded file using the configured application (pdf reader in your case).
    Timo

  • RE: How to Export the Table data Into PDF File  in ADF

    Hi Experts,
    I am using Jdeveloper 11.1.2.3.0
    I am created employee VO and Drag and Drop as a Table in a page. So need to Export the Table data into A PDF file.
    So please give me some suggestions regarding this Scnerio.
    With Regards,
    satish

    Hi Guys ,
    Any more answers for this question.
    Please find my jsff below
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
              xmlns:f="http://java.sun.com/jsf/core" xmlns:report="http://www.adfwithejb.blogspot.com">
      <af:panelGroupLayout layout="vertical" id="pgl2">
          <af:query id="qryId1" headerText="Service Tariff Mapping Details" disclosed="true"
                    value="#{bindings.findByTarifValidFromQuery.queryDescriptor}"
                    model="#{bindings.findByTarifValidFromQuery.queryModel}"
                    queryListener="#{reportWiseInvoiceBean.genericQueryListener}"
                    queryOperationListener="#{bindings.findByTarifValidFromQuery.processQueryOperation}"
                    resultComponentId="pc1::t2">
         <f:attribute name="queryExpression" value="bindings.findByTarifValidFromQuery.processQuery"/>
                          </af:query>
        <af:panelCollection id="pc1" styleClass="AFStretchWidth">
          <f:facet name="menus"/>
          <f:facet name="toolbar">
              <af:toolbar id="t1">
                 <af:menuBar id="pt_m1">
                <report:reportDeclarative ButtonName="ExportToExcel" ReportName="ServiceTariffMappingDetails"
                                          ReportType="PDF" TableId=":::pc1:t2" id="rd1" Pagination="true"/>
                <af:commandButton text="excel" id="cb1" binding="#{exportToExcelBean.exportID}">
                <af:setActionListener from="pt1:pgl1:pgl2:pc1:t2" to="#{viewScope['exporter.exportedId']}"/>
                <af:setActionListener from="border:1px solid #cccccc" to="#{viewScope['exporter.thStyle']}"/>
                <af:setActionListener from="border:1px solid #cccccc" to="#{viewScope['exporter.tdStyle']}"/>
                <af:fileDownloadActionListener method="#{exportToExcelBean.exportToExcel}" filename="Service TariffMapping.xls"
                                                 contentType="text/excel;chatset=UTF-8;"/>
                </af:commandButton>
                <af:commandMenuItem id="pt_cmi133" icon="/images/common/Excel-icon.png"
                                                shortDesc="ExportToExcel"
                                >
                                <af:exportCollectionActionListener exportedId="t2" type="excelHTML"
                                                                   title="Service Tariff Mapping"
                                                                   filename="Service Tariff Mapping.xls"/>
                            </af:commandMenuItem></af:menuBar>
              </af:toolbar>
          </f:facet>
          <f:facet name="statusbar"/>
          <af:table value="#{bindings.ServiceTariffMappingDtlsRVO1.collectionModel}" var="row"
                    rows="#{bindings.ServiceTariffMappingDtlsRVO1.rangeSize}"
                    emptyText="#{bindings.ServiceTariffMappingDtlsRVO1.viewable ? 'No data to display.' : 'Access Denied.'}"
                    fetchSize="#{bindings.ServiceTariffMappingDtlsRVO1.rangeSize}" rowBandingInterval="0"
                    filterModel="#{bindings.findByTarifValidFromQuery.queryDescriptor}"
                    queryListener="#{bindings.findByTarifValidFromQuery.processQuery}" filterVisible="true" varStatus="vs"
                    id="t2" columnStretching="last" binding="#{ServiceTariffMappBean.testTable}">
            <af:column sortProperty="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NormalTariffCode.name}" filterable="true"
                       sortable="true" headerText="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NormalTariffCode.label}"
                       id="c1">
              <af:inputText value="#{row.bindings.NormalTariffCode.inputValue}"
                            label="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NormalTariffCode.label}"
                            required="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NormalTariffCode.mandatory}"
                            columns="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NormalTariffCode.displayWidth}"
                            maximumLength="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NormalTariffCode.precision}"
                            shortDesc="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NormalTariffCode.tooltip}" id="it1">
                <f:validator binding="#{row.bindings.NormalTariffCode.validator}"/>
              </af:inputText>
            </af:column>
            <af:column sortProperty="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceCode.name}" filterable="true"
                       sortable="true" headerText="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceCode.label}"
                       id="c2">
              <af:inputText value="#{row.bindings.ServiceCode.inputValue}"
                            label="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceCode.label}"
                            required="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceCode.mandatory}"
                            columns="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceCode.displayWidth}"
                            maximumLength="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceCode.precision}"
                            shortDesc="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceCode.tooltip}" id="it2">
                <f:validator binding="#{row.bindings.ServiceCode.validator}"/>
              </af:inputText>
            </af:column>
            <af:column sortProperty="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfVldFrm.name}" filterable="true"
                       sortable="true" headerText="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfVldFrm.label}" id="c3">
              <f:facet name="filter">
                <af:inputDate value="#{vs.filterCriteria.TrfVldFrm}" id="id1">
                  <af:convertDateTime pattern="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfVldFrm.format}"/>
                </af:inputDate>
              </f:facet>
              <af:inputDate value="#{row.bindings.TrfVldFrm.inputValue}"
                            label="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfVldFrm.label}"
                            required="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfVldFrm.mandatory}"
                            columns="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfVldFrm.displayWidth}"
                            shortDesc="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfVldFrm.tooltip}" id="id2">
                <f:validator binding="#{row.bindings.TrfVldFrm.validator}"/>
                <af:convertDateTime pattern="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfVldFrm.format}"/>
              </af:inputDate>
            </af:column>
            <af:column sortProperty="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceDesc.name}" filterable="true"
                       sortable="true" headerText="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceDesc.label}"
                       id="c4">
              <af:inputText value="#{row.bindings.ServiceDesc.inputValue}"
                            label="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceDesc.label}"
                            required="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceDesc.mandatory}"
                            columns="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceDesc.displayWidth}"
                            maximumLength="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceDesc.precision}"
                            shortDesc="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ServiceDesc.tooltip}" id="it3">
                <f:validator binding="#{row.bindings.ServiceDesc.validator}"/>
              </af:inputText>
            </af:column>
            <af:column sortProperty="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtTrfCode.name}" filterable="true"
                       sortable="true" headerText="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtTrfCode.label}" id="c5">
              <af:inputText value="#{row.bindings.OtTrfCode.inputValue}"
                            label="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtTrfCode.label}"
                            required="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtTrfCode.mandatory}"
                            columns="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtTrfCode.displayWidth}"
                            maximumLength="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtTrfCode.precision}"
                            shortDesc="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtTrfCode.tooltip}" id="it4">
                <f:validator binding="#{row.bindings.OtTrfCode.validator}"/>
              </af:inputText>
            </af:column>
            <af:column sortProperty="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtUnitRate.name}" filterable="true"
                       sortable="true" headerText="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtUnitRate.label}" id="c6">
              <af:inputText value="#{row.bindings.OtUnitRate.inputValue}"
                            label="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtUnitRate.label}"
                            required="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtUnitRate.mandatory}"
                            columns="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtUnitRate.displayWidth}"
                            maximumLength="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtUnitRate.precision}"
                            shortDesc="#{bindings.ServiceTariffMappingDtlsRVO1.hints.OtUnitRate.tooltip}" id="it5">
                <f:validator binding="#{row.bindings.OtUnitRate.validator}"/>
              </af:inputText>
            </af:column>
            <af:column sortProperty="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NtUnitRate.name}" filterable="true"
                       sortable="true" headerText="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NtUnitRate.label}" id="c7">
              <af:inputText value="#{row.bindings.NtUnitRate.inputValue}"
                            label="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NtUnitRate.label}"
                            required="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NtUnitRate.mandatory}"
                            columns="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NtUnitRate.displayWidth}"
                            maximumLength="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NtUnitRate.precision}"
                            shortDesc="#{bindings.ServiceTariffMappingDtlsRVO1.hints.NtUnitRate.tooltip}" id="it6">
                <f:validator binding="#{row.bindings.NtUnitRate.validator}"/>
              </af:inputText>
            </af:column>
            <af:column sortProperty="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfGrt.name}" filterable="true"
                       sortable="true" headerText="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfGrt.label}" id="c8">
              <af:inputText value="#{row.bindings.TrfGrt.inputValue}"
                            label="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfGrt.label}"
                            required="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfGrt.mandatory}"
                            columns="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfGrt.displayWidth}"
                            maximumLength="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfGrt.precision}"
                            shortDesc="#{bindings.ServiceTariffMappingDtlsRVO1.hints.TrfGrt.tooltip}" id="it7">
                <f:validator binding="#{row.bindings.TrfGrt.validator}"/>
              </af:inputText>
            </af:column>
            <af:column sortProperty="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ChargePartyCode.name}" filterable="true"
                       sortable="true" headerText="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ChargePartyCode.label}"
                       id="c9">
              <af:inputText value="#{row.bindings.ChargePartyCode.inputValue}"
                            label="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ChargePartyCode.label}"
                            required="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ChargePartyCode.mandatory}"
                            columns="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ChargePartyCode.displayWidth}"
                            maximumLength="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ChargePartyCode.precision}"
                            shortDesc="#{bindings.ServiceTariffMappingDtlsRVO1.hints.ChargePartyCode.tooltip}" id="it8">
                <f:validator binding="#{row.bindings.ChargePartyCode.validator}"/>
              </af:inputText>
            </af:column>
          </af:table>
        </af:panelCollection>
      </af:panelGroupLayout>
    </jsp:root>

  • FileDownloadActionListener and IE8

    Hi.
    I have a button with fileDownloadActionListener. On click, it downloads Excel file.
    On Chrome, newer IE and other browsers it works OK.
    Even on IE8 works OK,except...
    Then I addded a table below this button and it is causing problem. Now IE8 complains about security when downloading file.
    I click "download file" on IE8 warning line, everything gets reposted, but nothing is downloaded.
    Then I click "download" button again, and IE8 doesn't bother me anymore with unreal security warnings.
    Is there any other mechanism that I could use that would support IE8 repost behaviour. So much that i understand is that when I click ADF "download" button, it actually posts ajax call to server. Logically, when IE tries to repost page, nothing works.
    So maybe there should be something like "download file using <form> submit instead of ajax" functionality in ADF? Or am I completly wrong?
    The thing I don't understand even close is how could ADF table component influence behaviour of download button.

    The problem is in table, more exact when there are some rows in it?
    I guess IE gets them via Ajax, and decides that this is suspicius, and then it displays that annoying message.
    Any idea what to use instead of table....

  • Issues of af:fileDownloadActionListener

    Hi,
    When I use the af:fileDownloadActionListener to export the data from a UI component, the page will refresh automatically once I click the button, and it keep complaining 'The file was not downloaded or was not downloaded correctly.'
    Any idea about this?
    Edited by: user13385075 on Dec 15, 2011 5:00 PM

    Hi,
    Check following useful
    http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_fileDownloadActionListener.html
    http://jobinesh.blogspot.com/2010/01/customizing-execution-of-to-validate.html
    af:fileDownloadActionListener, unable to access VO

  • Issue Using CreateInsert to Add Row to ADF Table

    I am using JDev 11.1.2 and have a pretty simple application. The application contains tabs and each tab displays a page fragment. In each page fragment, I have a panelstretch layout. In the top facet I have a form and in the center facet I have a table. I am having an issue once deploying to a standalone WLS server. It works as desired when run locally through the integrated wls. User clicks CreateInsert button and it clears the form and inserts a blank into the table. User clicks Commit and the data appears in the adf table. Pretty simple and straight forward. However, when deployed to the standalone wls the user clicks CreateInsert button the form clears and all the rows in the adf table disappear. I can reload the page and then the rows appear, including the blank one. I have tested this in IE 8 (both in and out of compatibility mode), Firefox 12, and Chrome and get the same results.
    I have one page fragment that it works correctly on when deployed to standalone WLS. All other fragements behave like I described above. I compared the jsff, pagedef, and view objects. I do not see any difference between them. I posted the jsff code below, but I can also post the pagedef code if needed. Any direction on how to resolve this would be great. Am I missing something obvious?? Thanks for any help or advice you can lend!
    ******Working jsff*****
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
    xmlns:f="http://java.sun.com/jsf/core">
    <af:panelStretchLayout id="psl1" styleClass="AFStretchWidth" startWidth="0px" topHeight="185px" bottomHeight="0px"
    endWidth="0px" dimensionsFrom="auto">
    <f:facet name="bottom"/>
    <f:facet name="center">
    <af:panelGroupLayout id="pgl1" layout="scroll">
    <af:panelCollection id="pc1" styleClass="AFStretchWidth">
    <f:facet name="menus">
    <af:menu text="Print Menu" id="m1">
    <af:commandLink text="Print Notes" id="cl1" useWindow="true" partialSubmit="true">
    <af:setActionListener from="au_notes" to="#{pageFlowScope.jrxml}"/>
    <af:fileDownloadActionListener contentType="application/pdf" filename="Report"
    method="#{JasperBean.printreport}"/>
    </af:commandLink>
    </af:menu>
    </f:facet>
    <f:facet name="toolbar">
    <af:toolbar id="t2">
    <af:commandButton actionListener="#{bindings.CreateInsert.execute}" text="Insert"
    disabled="#{!bindings.CreateInsert.enabled}" id="cb2"/>
    <af:commandButton actionListener="#{bindings.Delete.execute}" text="Delete"
    disabled="#{!bindings.Delete.enabled}" id="cb3"/>
    </af:toolbar>
    </f:facet>
    <f:facet name="statusbar"/>
    <af:table value="#{bindings.TAuOrgNotesView1.collectionModel}" var="row"
    rows="#{bindings.TAuOrgNotesView1.rangeSize}"
    emptyText="#{bindings.TAuOrgNotesView1.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.TAuOrgNotesView1.rangeSize}" rowBandingInterval="0"
    selectedRowKeys="#{bindings.TAuOrgNotesView1.collectionModel.selectedRow}"
    selectionListener="#{bindings.TAuOrgNotesView1.collectionModel.makeCurrent}" rowSelection="single"
    id="t1" styleClass="AFStretchWidth" partialTriggers="::cb2 ::cb3 :::cb1" autoHeightRows="10">
    <af:column sortProperty="#{bindings.TAuOrgNotesView1.hints.NoteDate.name}" sortable="false"
    headerText="#{bindings.TAuOrgNotesView1.hints.NoteDate.label}" id="c1" width="60">
    <af:outputText value="#{row.NoteDate}" id="ot1">
    <af:convertDateTime pattern="#{bindings.TAuOrgNotesView1.hints.NoteDate.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="#{bindings.TAuOrgNotesView1.hints.NoteInitials.name}" sortable="false"
    headerText="#{bindings.TAuOrgNotesView1.hints.NoteInitials.label}" id="c2" width="60">
    <af:outputText value="#{row.NoteInitials}" id="ot2"/>
    </af:column>
    <af:column sortProperty="#{bindings.TAuOrgNotesView1.hints.NoteNote.name}" sortable="false"
    headerText="#{bindings.TAuOrgNotesView1.hints.NoteNote.label}" id="c3" width="700" noWrap="true">
    <af:outputText value="#{row.NoteNote}" id="ot3"/>
    </af:column>
    </af:table>
    </af:panelCollection>
    </af:panelGroupLayout>
    </f:facet>
    <f:facet name="start"/>
    <f:facet name="end"/>
    <f:facet name="top">
    <af:panelBox text="Note Info" id="pb1" rendered="#{bindings.NoteSeqNumber.inputValue!=null}">
    <f:facet name="toolbar">
    <af:commandButton actionListener="#{bindings.Commit.execute}" text="Save" id="cb1" partialSubmit="true"/>
    </f:facet>
    <af:panelGroupLayout layout="horizontal" id="pgl2" valign="top"
    rendered="#{bindings.NoteSeqNumber.inputValue!=null}">
    <af:panelFormLayout id="pfl1">
    <af:inputText value="#{bindings.NoteSeqNumber.inputValue}" label="#{bindings.NoteSeqNumber.hints.label}"
    required="#{bindings.NoteSeqNumber.hints.mandatory}"
    columns="#{bindings.NoteSeqNumber.hints.displayWidth}"
    maximumLength="#{bindings.NoteSeqNumber.hints.precision}"
    shortDesc="#{bindings.NoteSeqNumber.hints.tooltip}" id="it1" visible="false">
    <f:validator binding="#{bindings.NoteSeqNumber.validator}"/>
    <af:convertNumber groupingUsed="false" pattern="#{bindings.NoteSeqNumber.format}"/>
    </af:inputText>
    <af:inputDate value="#{bindings.NoteDate.inputValue}" label="#{bindings.NoteDate.hints.label}"
    required="#{bindings.NoteDate.hints.mandatory}"
    columns="#{bindings.NoteDate.hints.displayWidth}"
    shortDesc="#{bindings.NoteDate.hints.tooltip}" id="id1">
    <f:validator binding="#{bindings.NoteDate.validator}"/>
    <af:convertDateTime pattern="#{bindings.NoteDate.format}"/>
    </af:inputDate>
    <af:selectOneChoice value="#{bindings.NoteInitials.inputValue}" label="#{bindings.NoteInitials.label}"
    required="#{bindings.NoteInitials.hints.mandatory}"
    shortDesc="#{bindings.NoteInitials.hints.tooltip}" id="soc1">
    <f:selectItems value="#{bindings.NoteInitials.items}" id="si1"/>
    </af:selectOneChoice>
    <af:inputText value="#{bindings.NoteNote.inputValue}" label="#{bindings.NoteNote.hints.label}"
    required="#{bindings.NoteNote.hints.mandatory}" columns="105"
    maximumLength="#{bindings.NoteNote.hints.precision}"
    shortDesc="#{bindings.NoteNote.hints.tooltip}" id="it2" rows="5">
    <f:validator binding="#{bindings.NoteNote.validator}"/>
    </af:inputText>
    </af:panelFormLayout>
    <af:panelFormLayout id="pfl2" rows="2" maxColumns="2">
    <f:facet name="footer"/>
    <af:inputText value="#{bindings.NoteCreatedBy.inputValue}" label="#{bindings.NoteCreatedBy.hints.label}"
    required="#{bindings.NoteCreatedBy.hints.mandatory}"
    columns="#{bindings.NoteCreatedBy.hints.displayWidth}"
    maximumLength="#{bindings.NoteCreatedBy.hints.precision}"
    shortDesc="#{bindings.NoteCreatedBy.hints.tooltip}" id="it3">
    <f:validator binding="#{bindings.NoteCreatedBy.validator}"/>
    </af:inputText>
    <af:inputText value="#{bindings.NoteModifiedBy.inputValue}" label="#{bindings.NoteModifiedBy.hints.label}"
    required="#{bindings.NoteModifiedBy.hints.mandatory}"
    columns="#{bindings.NoteModifiedBy.hints.displayWidth}"
    maximumLength="#{bindings.NoteModifiedBy.hints.precision}"
    shortDesc="#{bindings.NoteModifiedBy.hints.tooltip}" id="it4">
    <f:validator binding="#{bindings.NoteModifiedBy.validator}"/>
    </af:inputText>
    <af:inputDate value="#{bindings.NoteDateCreated.inputValue}" label="#{bindings.NoteDateCreated.hints.label}"
    required="#{bindings.NoteDateCreated.hints.mandatory}"
    columns="#{bindings.NoteDateCreated.hints.displayWidth}"
    shortDesc="#{bindings.NoteDateCreated.hints.tooltip}" id="id2">
    <f:validator binding="#{bindings.NoteDateCreated.validator}"/>
    <af:convertDateTime pattern="#{bindings.NoteDateCreated.format}"/>
    </af:inputDate>
    <af:inputDate value="#{bindings.NoteDateModified.inputValue}"
    label="#{bindings.NoteDateModified.hints.label}"
    required="#{bindings.NoteDateModified.hints.mandatory}"
    columns="#{bindings.NoteDateModified.hints.displayWidth}"
    shortDesc="#{bindings.NoteDateModified.hints.tooltip}" id="id3">
    <f:validator binding="#{bindings.NoteDateModified.validator}"/>
    <af:convertDateTime pattern="#{bindings.NoteDateModified.format}"/>
    </af:inputDate>
    </af:panelFormLayout>
    </af:panelGroupLayout>
    </af:panelBox>
    </f:facet>
    </af:panelStretchLayout>
    </jsp:root>
    *** Non Working jsff****
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
    xmlns:f="http://java.sun.com/jsf/core">
    <af:panelStretchLayout id="psl1" styleClass="AFStretchWidth" startWidth="0px" topHeight="125px" bottomHeight="0px"
    endWidth="0px" dimensionsFrom="auto">
    <f:facet name="bottom"/>
    <f:facet name="center">
    <af:panelGroupLayout id="pgl1" layout="scroll">
    <af:panelCollection id="pc1" styleClass="AFStretchWidth">
    <f:facet name="menus"/>
    <f:facet name="toolbar">
    <af:toolbar id="t2">
    <af:commandButton actionListener="#{bindings.CreateInsert.execute}" text="Insert"
    disabled="#{!bindings.CreateInsert.enabled}" id="cb1"/>
    <af:commandButton actionListener="#{bindings.Delete.execute}" text="Delete"
    disabled="#{!bindings.Delete.enabled}" id="cb3"/>
    </af:toolbar>
    </f:facet>
    <f:facet name="statusbar"/>
    <af:table value="#{bindings.TAuInvestigatorsView1.collectionModel}" var="row"
    rows="#{bindings.TAuInvestigatorsView1.rangeSize}"
    emptyText="#{bindings.TAuInvestigatorsView1.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.TAuInvestigatorsView1.rangeSize}" rowBandingInterval="0"
    selectedRowKeys="#{bindings.TAuInvestigatorsView1.collectionModel.selectedRow}"
    selectionListener="#{bindings.TAuInvestigatorsView1.collectionModel.makeCurrent}" rowSelection="single"
    id="t1" styleClass="AFStretchWidth" partialTriggers="::cb1 ::cb3 :::cb2" autoHeightRows="10">
    <af:column sortProperty="#{bindings.TAuInvestigatorsView1.hints.InvFirstName.name}" sortable="false"
    headerText="#{bindings.TAuInvestigatorsView1.hints.InvFirstName.label}" id="c1" width="60">
    <af:outputText value="#{row.InvFirstName}" id="ot1"/>
    </af:column>
    <af:column sortProperty="#{bindings.TAuInvestigatorsView1.hints.InvLastName.name}" sortable="false"
    headerText="#{bindings.TAuInvestigatorsView1.hints.InvLastName.label}" id="c2">
    <af:outputText value="#{row.InvLastName}" id="ot2"/>
    </af:column>
    <af:column sortProperty="#{bindings.TAuInvestigatorsView1.hints.InvStatus.name}" sortable="false"
    headerText="#{bindings.TAuInvestigatorsView1.hints.InvStatus.label}" id="c3">
    <af:outputText value="#{row.InvStatus}" id="ot3"/>
    </af:column>
    <af:column sortProperty="#{bindings.TAuInvestigatorsView1.hints.InvInitials.name}" sortable="false"
    headerText="#{bindings.TAuInvestigatorsView1.hints.InvInitials.label}" id="c4">
    <af:outputText value="#{row.InvInitials}" id="ot4"/>
    </af:column>
    </af:table>
    </af:panelCollection>
    </af:panelGroupLayout>
    </f:facet>
    <f:facet name="start"/>
    <f:facet name="end"/>
    <f:facet name="top">
    <af:panelBox text="Investigator Info" id="pb1">
    <f:facet name="toolbar">
    <af:group id="g1">
    <af:commandButton actionListener="#{bindings.Commit.execute}" text="Save" id="cb2" partialSubmit="true"/>
    </af:group>
    </f:facet>
    <af:panelFormLayout id="pfl1" maxColumns="2" rows="2">
    <af:inputText value="#{bindings.InvFirstName.inputValue}" label="#{bindings.InvFirstName.hints.label}"
    required="#{bindings.InvFirstName.hints.mandatory}"
    columns="#{bindings.InvFirstName.hints.displayWidth}"
    maximumLength="#{bindings.InvFirstName.hints.precision}"
    shortDesc="#{bindings.InvFirstName.hints.tooltip}" id="it1">
    <f:validator binding="#{bindings.InvFirstName.validator}"/>
    </af:inputText>
    <af:inputText value="#{bindings.InvLastName.inputValue}" label="#{bindings.InvLastName.hints.label}"
    required="#{bindings.InvLastName.hints.mandatory}"
    columns="#{bindings.InvLastName.hints.displayWidth}"
    maximumLength="#{bindings.InvLastName.hints.precision}"
    shortDesc="#{bindings.InvLastName.hints.tooltip}" id="it2">
    <f:validator binding="#{bindings.InvLastName.validator}"/>
    </af:inputText>
    <af:inputText value="#{bindings.InvStatus.inputValue}" label="#{bindings.InvStatus.hints.label}"
    required="#{bindings.InvStatus.hints.mandatory}"
    columns="#{bindings.InvStatus.hints.displayWidth}"
    maximumLength="#{bindings.InvStatus.hints.precision}"
    shortDesc="#{bindings.InvStatus.hints.tooltip}" id="it3">
    <f:validator binding="#{bindings.InvStatus.validator}"/>
    </af:inputText>
    <af:inputText value="#{bindings.InvInitials.inputValue}" label="#{bindings.InvInitials.hints.label}"
    required="#{bindings.InvInitials.hints.mandatory}"
    columns="#{bindings.InvInitials.hints.displayWidth}"
    maximumLength="#{bindings.InvInitials.hints.precision}"
    shortDesc="#{bindings.InvInitials.hints.tooltip}" id="it4">
    <f:validator binding="#{bindings.InvInitials.validator}"/>
    </af:inputText>
    </af:panelFormLayout>
    <af:panelFormLayout id="pfl2" maxColumns="2" rows="2">
    <f:facet name="footer"/>
    <af:inputText value="#{bindings.InvCreatedBy.inputValue}" label="#{bindings.InvCreatedBy.hints.label}"
    required="#{bindings.InvCreatedBy.hints.mandatory}"
    columns="#{bindings.InvCreatedBy.hints.displayWidth}"
    maximumLength="#{bindings.InvCreatedBy.hints.precision}"
    shortDesc="#{bindings.InvCreatedBy.hints.tooltip}" id="it5">
    <f:validator binding="#{bindings.InvCreatedBy.validator}"/>
    </af:inputText>
    <af:inputText value="#{bindings.InvModifiedBy.inputValue}" label="#{bindings.InvModifiedBy.hints.label}"
    required="#{bindings.InvModifiedBy.hints.mandatory}"
    columns="#{bindings.InvModifiedBy.hints.displayWidth}"
    maximumLength="#{bindings.InvModifiedBy.hints.precision}"
    shortDesc="#{bindings.InvModifiedBy.hints.tooltip}" id="it6">
    <f:validator binding="#{bindings.InvModifiedBy.validator}"/>
    </af:inputText>
    <af:inputDate value="#{bindings.InvDateCreated.inputValue}" label="#{bindings.InvDateCreated.hints.label}"
    required="#{bindings.InvDateCreated.hints.mandatory}"
    columns="#{bindings.InvDateCreated.hints.displayWidth}"
    shortDesc="#{bindings.InvDateCreated.hints.tooltip}" id="id1">
    <f:validator binding="#{bindings.InvDateCreated.validator}"/>
    <af:convertDateTime pattern="#{bindings.InvDateCreated.format}"/>
    </af:inputDate>
    <af:inputDate value="#{bindings.InvDateModified.inputValue}" label="#{bindings.InvDateModified.hints.label}"
    required="#{bindings.InvDateModified.hints.mandatory}"
    columns="#{bindings.InvDateModified.hints.displayWidth}"
    shortDesc="#{bindings.InvDateModified.hints.tooltip}" id="id2">
    <f:validator binding="#{bindings.InvDateModified.validator}"/>
    <af:convertDateTime pattern="#{bindings.InvDateModified.format}"/>
    </af:inputDate>
    </af:panelFormLayout>
    </af:panelBox>
    </f:facet>
    </af:panelStretchLayout>
    </jsp:root>

    This is too much code to digest, and it's not formatted (read the FAQ https://forums.oracle.com/forums/help.jspa to find out how to do this).
    So some general remarks: as it runs on your embedded WLS but not on a stand alone server it might be a configuration mismatch. Have you made sure that the standalone WLS runs the exact adf runtime libraries our jdev is using?
    Any errors in the log file on the standalone server?
    Have you tried to switch the tab order to find out if the problem is still on the not working jsff?
    Timo

  • Showing a PDF in ADF UI

    Hi All,
    I have a scenario where PDF is stored in DB as BLOB and we need to show that in the UI.
    One option is discussed here:
    http://lucbors.blogspot.in/2011/07/adf-11g-show-pdf-in-popup.html
    But for this, the PDF should not be in the DB.
    I used the FileDownloadActionListener to download and view PDF successfully, but my client wants that the PDF should be visible in the browser, like what Amazon does.
    Can we do it using ADF?
    Thanks.

    Change the Servlet in that blog post to read from the database then, instead of from the file system.
    Something like Timo describes [url http://tompeez.wordpress.com/2011/12/16/jdev11-1-2-1-0-handling-imagesfiles-in-adf-part-3/]here

  • af:fileDownloadActionListener screws up bounded task flow?

    Hi,
    I have a strange problem. I have a bounded task flow that runs in a popup. Everything works just fine. (I followed the [Embedding Regions inside PopUp Windows|http://www.oracle.com/technology/products/adf/patterns/11.1.1.1.0/popupregionpattern.pdf] functional pattern to implement it.)
    The purpose of the popup is to run a report on BI publisher via a webservice call. I have a bean on the pageFlowScope that executes the webservice call. The call is triggered by an <tt><af:fileDownloadActionListener></tt> that is placed inside an <tt><af:commandButton></tt>. The <tt>method</tt> attribute of the <tt><af:fileDownloadActionListener></tt> is bound to a method in that bean. The method is fairly simple:
    public void downloadReport(FacesContext context, OutputStream out) throws IOException {
        out.write(doBipRunReport());
    }The <tt>doBipRunReport()</tt> method performs the WS call and returns the byte array from the <tt>ReportResponse</tt> object that is returned by the Webservice. This works fine. The browser asks if I want to save the file or open it in the appropriate application. The file opens and it looks fine.
    Now when I return to my page, it doesn't work anymore. Any action I try to do on the page results in the same exception:
    4-nov-2009 12:40:43 oracle.adfinternal.controller.application.AdfcPageResolver getPhysicalURI
    WARNING: ADFc: de paginaoplosser heeft een view-ID met een NULL-waarde doorgegeven.
    4-nov-2009 12:40:43 UIXRegion _warn
    WARNING: Er is een fout opgetreden tijdens het verwerken van view-ID: null, URI: null, werkelijke URI: /rapporten/OverzichtATRTelers.jsff.
    java.util.EmptyStackException
         at oracle.adfinternal.controller.state.PageFlowStack.peek(PageFlowStack.java:101)
         at oracle.adfinternal.controller.state.ViewPortContextImpl.getPageFlowScopeMap(ViewPortContextImpl.java:651)
         at oracle.adfinternal.controller.application.AdfcPageFlowScopeProvider.getPageFlowScope(AdfcPageFlowScopeProvider.java:77)
         at org.apache.myfaces.trinidadinternal.context.RequestContextImpl.getPageFlowScope(RequestContextImpl.java:127)
         at org.apache.myfaces.trinidadinternal.el.TrinidadELResolver.getValue(TrinidadELResolver.java:71)
         at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
         at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
         at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:68)
         at com.sun.el.parser.AstValue.getTarget(AstValue.java:63)
         at com.sun.el.parser.AstValue.isReadOnly(AstValue.java:126)
         at com.sun.el.ValueExpressionImpl.isReadOnly(ValueExpressionImpl.java:230)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.getReadOnly(EditableValueRenderer.java:400)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.wasSubmitted(EditableValueRenderer.java:341)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.decodeInternal(EditableValueRenderer.java:113)
         at oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.decodeInternal(LabeledInputRenderer.java:55)
         at oracle.adf.view.rich.render.RichRenderer.decode(RichRenderer.java:241)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.__rendererDecode(UIXComponentBase.java:1107)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decode(UIXComponentBase.java:701)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:802)
         at org.apache.myfaces.trinidad.component.UIXEditableValue.processDecodes(UIXEditableValue.java:236)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:988)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:974)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:799)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:988)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:974)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:799)
         at oracle.adf.view.rich.component.rich.layout.RichPanelBox.processDecodes(RichPanelBox.java:206)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:988)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:974)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:799)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:988)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:974)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:799)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:988)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:974)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:799)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.access$001(ContextSwitchingComponent.java:36)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$2.run(ContextSwitchingComponent.java:106)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:298)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.processDecodes(ContextSwitchingComponent.java:109)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:988)
         at oracle.adf.view.rich.component.fragment.UIXRegion.decodeChildrenImpl(UIXRegion.java:539)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:974)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:799)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$ApplyRequestValuesCallback.invokeContextCallback(LifecycleImpl.java:1150)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnNamingContainerComponent(UIXComponentBase.java:1340)
         at oracle.adf.view.rich.component.fragment.UIXRegion.invokeOnComponent(UIXRegion.java:529)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.invokeOnComponent(ContextSwitchingComponent.java:188)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at oracle.adf.view.rich.component.rich.RichDocument.invokeOnComponent(RichDocument.java:159)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at oracle.adf.view.rich.component.fragment.UIXInclude.invokeOnComponent(UIXInclude.java:123)
         at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:731)
         at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:301)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:165)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.wls.JpsWlsFilter$1.run(JpsWlsFilter.java:96)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.wls.util.JpsWlsUtil.runJaasMode(JpsWlsUtil.java:146)
         at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:140)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)I have no idea what's going wrong here. When I remove the <tt><af:fileDownloadActionListener></tt> from my <tt><af:commandButton></tt> the popup just closes as expected, and no error occurs. Does anyone have an idea what's going on here?
    Best regards,
    Bart Kummel

    You probably hit a bug similar to
    [http://adfbugs.blogspot.com/2009/08/region-and-dialog-return-bug.html#comments]
    May be oracle support can help you

Maybe you are looking for