cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robby Pelssers <robby.pelss...@nxp.com>
Subject RE: Flowscript - delete file
Date Sat, 29 Dec 2012 17:26:57 GMT
Hi Peter,

I did not test the script I wrote actually and I can tell you why the script runs into an
error.

.delete() is also a javascript method on an object.  It will delete a property by the name
you specify.  As you clearly want to call the delete method on the file you need to use the
workaround you used.

Kind regards,
Robby

From: Peter Sparkes [mailto:peter@didm.co.uk]
Sent: Saturday, December 29, 2012 8:58 AM
To: users@cocoon.apache.org
Subject: Re: Flowscript - delete file

Hi Martin and Robby,

Thank you both for your help, what I have ended up with is:

importClass(Packages.java.io.File);
importClass(Packages.java.io.FileNotFoundException);

function deletefile() {

    //var filePath = cocoon.parameters["file"];

    var filePath = "D:/cocoon-2.1.11-wl/build/webapp/B&B/xml/9999.xml";  //for testing
    var file = new File(filePath);
     try {
        if (!file.exists()) {
           throw new FileNotFoundException(filePath);
        }
        file.delete();
        cocoon.sendPage('deletefilesuccess',{file:filePath<file:///\\filePath>});
    } catch (e) {
        cocoon.sendPage('deletefileerror',{file:e<file:///\\e>});
    }
}

However, file.delete(); produces a syntax error.

If I comment out file.delete(), the rest of the script works correctly:

  *   If 9999.xml exists, deletefilesuccess is accessed
  *   If 9999.xml does not exist, deletefileerror is accessed and I get:

Error File java.io.FileNotFoundException: D:/cocoon-2.1.11-wl/build/webapp/B&B/xml/9999.xml
Not Found
What's wrong with file.delete(); ?

Regards

Peter



On 27/12/2012 18:35, Martin Heiden wrote:

Hi Peter,



Ok, I missed something:



 var xml_file = Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file
+ ".xml");



should be:



 var xml_file = new Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" +
file + ".xml");



But you should try the function Robby sent to the list. It's much

cleaner.



Regards,



  Martin.





Thursday, December 27, 2012, 6:12:08 PM, you wrote:



PS> Hi Martin



PS> Thanks for your suggestion, unfortunately I get the same  error. The error log gives:



PS> ERROR (2012-12-27) 15:30.46:723 [flow] (/office/deletefile_9999) PoolThread-4/JSErrorReporter:

PS> "file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js"<file:///D:\cocoon-2.1.11-wl\build\webapp\office\flow\deletefile.js>,
line 13: missing name after .

PS> operator

PS> ERROR (2012-12-27) 15:30.46:723 [sitemap.handled-errors] (/office/deletefile_9999)

PS> PoolThread-4/ErrorHandlerHelper: Sitemap: error calling function 'deletefile'

PS>      at <map:call> -

PS> file:///D:/cocoon-2.1.11-wl/build/webapp/office/sitemap.xmap:230:37<file:///D:\cocoon-2.1.11-wl\build\webapp\office\sitemap.xmap:230:37>

PS>      at <map:mount> -

PS> file:///D:/cocoon-2.1.11-wl/build/webapp/sitemap.xmap:783:90<file:///D:\cocoon-2.1.11-wl\build\webapp\sitemap.xmap:783:90>

PS> org.mozilla.javascript.EvaluatorException:

PS> "file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js"<file:///D:\cocoon-2.1.11-wl\build\webapp\office\flow\deletefile.js>,
line 1: Compilation produced 1

PS> syntax errors.

PS>      at

PS> org.apache.cocoon.components.flow.javascript.JSErrorReporter.runtimeError(JSErrorReporter.java:67)



PS> regards



PS> Peter





PS> On 27/12/2012 11:42, Martin Heiden wrote:

Hi Peter,



PS>              //Delete file

PS>              Packages.java.io.File.xml_file.delete();



Try



xml_file.delete();



You just have to add the full "path" to the class when you

construct it. After this, the variable contains a reference and you

can just use it.



Regards,



   Martin.





Thursday, December 27, 2012, 10:28:31 AM, you wrote:



PS> Hi,



PS> I am trying to delete xml files using the following flowscript:



PS>     function deletefile() {



PS>          //file to be deleted

PS>          var file =

PS> Packages.java.lang.String(cocoon.parameters["file"]);



PS>          try {

PS>              // creating a link to the file to be deleted

PS>              var xml_file =

PS> Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file

PS>     + ".xml");



PS>              //Delete file

PS>              Packages.java.io.File.xml_file.delete();



PS>              //  .txt file with OK message

PS>              cocoon.sendPage("success.txt", null);

PS>          }

PS>          catch(ex){

PS>              cocoon.log.error(ex);

PS>              // Smth. went wrong. Sending a error.txt file to the browser

PS>            cocoon.sendPage("error.txt", null);

PS>          }



PS>     }



PS> and get "Compilation produced 1 syntax errors"



PS> The error log contains:



PS>     ERROR ............    deletefile.js", line 13: missing name after . operator



PS> line 13 is:



PS>     Packages.java.io.File.xml_file.delete();



PS> What I am doing wrong?



PS> Peter















---------------------------------------------------------------------

To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org<mailto:users-unsubscribe@cocoon.apache.org>

For additional commands, e-mail: users-help@cocoon.apache.org<mailto:users-help@cocoon.apache.org>













Ciao,

 Martin





---------------------------------------------------------------------

To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org<mailto:users-unsubscribe@cocoon.apache.org>

For additional commands, e-mail: users-help@cocoon.apache.org<mailto:users-help@cocoon.apache.org>






Mime
View raw message