When the Exception is thrown, I get:
java.lang.Thread.run Thread.java: 745
java.util.concurrent.ThreadPoolExecutor$Worker.run
ThreadPoolExecutor.java: 615
java.util.concurrent.ThreadPoolExecutor.runWorker
ThreadPoolExecutor.java: 1145
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run
ScheduledThreadPoolExecutor.java: 293
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301
ScheduledThreadPoolExecutor.java: 178
java.util.concurrent.FutureTask.runAndReset
FutureTask.java: 304
java.util.concurrent.Executors$RunnableAdapter.call
Executors.java: 471
...
excel-to-csv.start/convert-excel/fn start.clj: 64
excel-to-csv.file-converter/start file_converter.clj: 30
excel-to-csv.file-converter/start/fn file_converter.clj:
31
excel-to-csv.xls/convert xls.clj: 69
org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>
HSSFWorkbook.java: 303
org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>
HSSFWorkbook.java: 322
org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>
POIFSFileSystem.java: 138
org.apache.poi.poifs.storage.HeaderBlock.<init>
HeaderBlock.java: 104
org.apache.poi.poifs.storage.HeaderBlock.<init>
HeaderBlock.java: 131
org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data
appears to be in the Office 2007+ XML. You are calling the part of POI that
deals with OLE2 Office Documents. You need to call a different part of POI
to process this data (eg XSSF instead of HSSF)
Which is what I am expecting. But it seems like my try/catch does not catch
this. How is that possible?
On Friday, November 25, 2016 at 6:41:57 PM UTC-5, larry google groups wrote:
>
> I know some of you will tell me that I shouldn't use try/catch for control
> flow. That is fine. I might redo this. But for now, I'd like to simply know
> why this doesn't work. I have this function:
>
> (defn start []
> (let [filenames-as-seq-of-strings (.list (io/file
> "/home/ec2-user/uploads/"))]
> (doseq [f filenames-as-seq-of-strings]
> (println "in file_converter.start, the file is " (str f))
> (spit (str "/home/ec2-user/converted_csv_files/" f ".csv") " ")
> (let [input-file (java.io.File. (str "/home/ec2-user/uploads/" f))
>
> output-file (java.io.File. (str
> "/home/ec2-user/converted_csv_files/" f ".csv"))]
> (try
> (xls/convert input-file output-file)
> (catch Exception e
> (println e)
> (xlsx/convert input-file output-file)))))))
>
> Given some Microsoft Excel files, I first try to parse them as xls files,
> and if that doesn't work, then in the catch block I would like to try to
> parse them xlsx files.
>
> If I run this app in the terminal with "java -jar" I see the exception as
> I expect. But this line never seems to get called:
>
> (xlsx/convert input-file output-file)
>
> This convert function starts with:
>
> (defn convert
> "Stealing code from
> http://stackoverflow.com/questions/31873931/java-lang-outofmemoryerror-gc-overhead-limit-exceeded-when-loading-an-xlsx-file
> "
> [^java.io.File input-file ^java.io.File output-file]
> (println "at the start of xlsx")
>
> But I never see that println in the terminal.
>
> Why not?
>
>
>
>
>
>
>
>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.