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;
                 }
             }


Reply via email to