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