svn commit: r599391 - /lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/transformation/LuceneIndexTransformer2.java

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Thu Nov 29 03:35:51 2007
New Revision: 599391

URL: http://svn.apache.org/viewvc?rev=599391&view=rev
Log:
Improved error notification of lucene index transformer.

Modified:
    lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/transformation/LuceneIndexTransformer2.java

Modified: lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/transformation/LuceneIndexTransformer2.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/transformation/LuceneIndexTransformer2.java?rev=599391&r1=599390&r2=599391&view=diff
==============================================================================
--- lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/transformation/LuceneIndexTransformer2.java (original)
+++ lenya/trunk/src/modules/lucene/java/src/org/apache/cocoon/transformation/LuceneIndexTransformer2.java Thu Nov 29 03:35:51 2007
@@ -40,7 +40,6 @@
 import org.apache.lenya.ac.Identifiable;
 import org.apache.lenya.ac.User;
 import org.apache.lenya.ac.UserManager;
-import org.apache.lenya.cms.repository.RepositoryException;
 import org.apache.lenya.cms.repository.RepositoryUtil;
 import org.apache.lenya.cms.repository.Session;
 import org.apache.lenya.notification.Message;
@@ -317,7 +316,7 @@
                     processing = DELETE_PROCESS;
                     super.startElement(namespaceURI, localName, qName, attrs);
                 } else {
-                    handleError("element " + localName + " unknown ");
+                    handleError("element " + localName + " unknown");
                 }
                 break;
 
@@ -336,7 +335,7 @@
                     processing = IN_DOCUMENT_PROCESS;
                 } else {
                     handleError("element " + localName + " is not allowed in  <" + LUCENE_PREXIF
-                            + ":" + LUCENE_DOCUMENT_ELEMENT + "> element ");
+                            + ":" + LUCENE_DOCUMENT_ELEMENT + "> element");
                 }
                 break;
 
@@ -351,7 +350,7 @@
                     }
                     processing = DELETING_PROCESS;
                 } else {
-                    handleError("element " + localName + " is not a <lucene:document> element ");
+                    handleError("element " + localName + " is not a <lucene:document> element");
                 }
                 break;
 
@@ -480,7 +479,7 @@
                 break;
 
             default:
-                handleError("unknow element " + LUCENE_FIELD_ELEMENT + " !");
+                handleError("unknow element '" + LUCENE_FIELD_ELEMENT + "'!");
             }
         } else {
             super.endElement(namespaceURI, localName, qName);
@@ -522,15 +521,15 @@
             IndexManager indexM = (IndexManager) manager.lookup(IndexManager.ROLE);
             index = indexM.getIndex(id);
             if (index == null) {
-                handleError("index id: " + id + " no found in the index definition");
+                handleError("index [" + id + "] no found in the index definition");
             }
             indexer = index.getIndexer();
             manager.release(indexM);
         } catch (ServiceException ex1) {
-            handleError("service Exception", ex1);
+            handleError(ex1);
 
         } catch (IndexException ex3) {
-            handleError(" get Indexer error for index " + id, ex3);
+            handleError("get Indexer error for index [" + id + "]", ex3);
         }
 
         // set a custum analyzer (default: the analyzer of the index)
@@ -542,9 +541,9 @@
                 indexer.setAnalyzer(analyzer);
                 manager.release(analyzerM);
             } catch (ServiceException ex1) {
-                handleError("service Exception", ex1);
+                handleError(ex1);
             } catch (ConfigurationException ex2) {
-                this.handleError("set analyzer error for index" + id, ex2);
+                handleError("error setting analyzer for index [" + id + "]", ex2);
             }
         } else {
 
@@ -560,7 +559,7 @@
                 try {
                     indexer.clearIndex();
                 } catch (IndexException ex3) {
-                    handleError(" clear index error ", ex3);
+                    handleError("error clearing index", ex3);
                 }
             }
 
@@ -577,13 +576,19 @@
             }
         }
     }
-
-    void handleError(String msg) throws SAXException {
-        this.handleError(msg, new Exception());
+    
+    void handleError(String message, Exception ex) throws SAXException {
+        handleError(message + ": " + getExceptionMessage(ex));
     }
 
     void handleError(Exception ex) throws SAXException {
-        this.handleError("", ex);
+        handleError(getExceptionMessage(ex));
+    }
+
+    protected String getExceptionMessage(Exception ex) throws SAXException {
+        String exMsg = ex.getMessage();
+        String msg = exMsg == null ? "" : " (" + exMsg + ")";
+        return ex.getClass().getName() + msg;
     }
 
     /**
@@ -593,7 +598,7 @@
      * @param ex
      * @throws SAXException
      */
-    void handleError(String msg, Exception ex) throws SAXException {
+    void handleError(String msg) throws SAXException {
         closeIndexer();
 
         try {
@@ -606,8 +611,7 @@
             String subject = "indexing-failed-subject";
             String[] subjectParams = new String[0];
             String body = "indexing-failed-body";
-            String[] bodyParams = { this.pubId, this.area, this.uuid, this.language,
-                    ex.getMessage() };
+            String[] bodyParams = { this.pubId, this.area, this.uuid, this.language, msg };
 
             Message message = new Message(subject, subjectParams, body, bodyParams, sender,
                     recipients);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.