tdraier     2005/11/15 13:38:39 CET

  Modified files:
    core/src/java/org/jahia/services/importexport 
                                                  ImportHandler.java 
  Added files:
    core/src/java/org/jahia/services/importexport 
                                                  ImportResult.java 
                                                  NodeImportResult.java 
  Log:
  better error handling
  
  Revision  Changes    Path
  1.45      +15 -6     
jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java.diff?r1=1.44&r2=1.45&f=h
  1.1       +17 -0     
jahia/core/src/java/org/jahia/services/importexport/ImportResult.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportResult.java?rev=1.1&content-type=text/plain
  1.1       +33 -0     
jahia/core/src/java/org/jahia/services/importexport/NodeImportResult.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/NodeImportResult.java?rev=1.1&content-type=text/plain
  
  
  
  Index: ImportResult.java
  ====================================================================
  package org.jahia.services.importexport;
  
  import org.jahia.content.TreeOperationResult;
  
  /**
   * Created by IntelliJ IDEA.
   * Date: 15 nov. 2005 - 13:09:45
   *
   * @author toto
   * @version $Id: ImportResult.java,v 1.1 2005/11/15 12:38:39 tdraier Exp $
   */
  public class ImportResult extends TreeOperationResult {
  
  }
  /**
   *$Log $
   */
  
  
  Index: NodeImportResult.java
  ====================================================================
  package org.jahia.services.importexport;
  
  import org.jahia.content.NodeOperationResult;
  import org.jahia.content.ObjectKey;
  import org.xml.sax.Attributes;
  
  /**
   * Created by IntelliJ IDEA.
   * Date: 15 nov. 2005 - 13:12:06
   *
   * @author toto
   * @version $Id: NodeImportResult.java,v 1.1 2005/11/15 12:38:39 tdraier Exp $
   */
  public class NodeImportResult extends NodeOperationResult {
  
      private Throwable t;
      private String namespace;
      private String localName;
      private String qname;
      private Attributes attr;
  
      public NodeImportResult(ObjectKey nodeKey, String languageCode, String 
comment, String localName, String namespace, String qname, Attributes attr, 
Throwable t) {
          super(nodeKey, languageCode, comment);
          this.localName = localName;
          this.namespace = namespace;
          this.qname = qname;
          this.attr = attr;
          this.t = t;
      }
  }
  /**
   *$Log $
   */
  
  
  Index: ImportHandler.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- ImportHandler.java        14 Nov 2005 18:20:15 -0000      1.44
  +++ ImportHandler.java        15 Nov 2005 12:38:39 -0000      1.45
  @@ -83,6 +83,7 @@
       protected LockKey lockKey;
       protected ContentObject topObjectWithAclChanged;
       protected String topAcl;
  +    protected ImportResult result;
   
       private TransactionTemplate transactionTemplate = null;
   
  @@ -101,6 +102,7 @@
           elr = new EntryLoadRequest(EntryLoadRequest.STAGED);
           elr.setFirstLocale(language);
           this.site = site;
  +        this.result = new ImportResult();
       }
   
       public void startDocument() throws SAXException {
  @@ -298,19 +300,24 @@
                               }
                           }
   
  -
  -                        objects.push(currentObject);
                           objectMap.put(uuid, currentObject);
  -                        currentObject = null;
                       } catch (Throwable e) {
  +                        
result.setStatus(TreeOperationResult.PARTIAL_OPERATION_STATUS);
  +                        if (currentObject != null) {
  +                            result.appendError(new 
NodeImportResult(currentObject.getObjectKey(), language, e.getMessage(), 
localName, namespaceURI, qName, atts, e));
  +                        } else {
  +                            result.appendError(new NodeImportResult(null, 
language, e.getMessage(), localName, namespaceURI, qName, atts, e));
  +                        }
                           throw new RuntimeException(e);
                       }
                   }
               });
           } catch (Throwable e) {
               logger.error("Error during add operation of a new element we 
must flush all caches to ensure integrity between database and viewing",e);
  -            
ServicesRegistry.getInstance().getCacheService().flushAllCaches();
  -            throw new SAXException(e.getMessage());
  +//            
ServicesRegistry.getInstance().getCacheService().flushAllCaches();
  +        } finally {
  +            objects.push(currentObject);
  +            currentObject = null;
           }
       }
   
  @@ -903,5 +910,7 @@
           return lastObject;
       }
   
  -
  +    public ImportResult getResult() {
  +        return result;
  +    }
   }
  

Reply via email to