Author: jukka
Date: Wed Mar 26 12:59:13 2008
New Revision: 641530
URL: http://svn.apache.org/viewvc?rev=641530&view=rev
Log:
TIKA-132: Refactor Excel extractor to parse per sheet and add hyperlink support
- Improved exception handling, now all subsequent HSSF events are simply
ignored
Modified:
incubator/tika/trunk/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java
Modified:
incubator/tika/trunk/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java
URL:
http://svn.apache.org/viewvc/incubator/tika/trunk/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java?rev=641530&r1=641529&r2=641530&view=diff
==============================================================================
---
incubator/tika/trunk/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java
(original)
+++
incubator/tika/trunk/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java
Wed Mar 26 12:59:13 2008
@@ -156,9 +156,18 @@
*/
private static class TikaHSSFListener implements HSSFListener,
Serializable {
+ /**
+ * XHTML content handler to which the document content is rendered.
+ */
private final XHTMLContentHandler handler;
- private SAXException exception;
+ /**
+ * Potential exception thrown by the content handler. When set to
+ * non-<code>null</code>, causes all subsequent HSSF records to be
+ * ignored and the stored exception to be thrown when
+ * [EMAIL PROTECTED] #throwStoredException()} is invoked.
+ */
+ private SAXException exception = null;
private SSTRecord sstRecord;
private List<String> sheetNames = new ArrayList<String>();
@@ -185,7 +194,6 @@
*/
private TikaHSSFListener(XHTMLContentHandler handler) {
this.handler = handler;
- this.exception = null;
}
/**
@@ -194,13 +202,13 @@
* @param record HSSF Record
*/
public void processRecord(Record record) {
- try {
- if (log.isDebugEnabled()) {
- log.debug(record.toString());
- }
- internalProcessRecord(record);
- } catch (SAXException e) {
- if (exception == null) {
+ if (exception == null) {
+ try {
+ if (log.isDebugEnabled()) {
+ log.debug(record.toString());
+ }
+ internalProcessRecord(record);
+ } catch (SAXException e) {
exception = e;
}
}