You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2006/11/24 21:31:29 UTC

svn commit: r478989 - in /jackrabbit/branches/1.1/jackrabbit/src: main/java/org/apache/jackrabbit/core/ test/java/org/apache/jackrabbit/test/api/

Author: jukka
Date: Fri Nov 24 12:31:28 2006
New Revision: 478989

URL: http://svn.apache.org/viewvc?view=rev&rev=478989
Log:
1.1: Merged revisions 467501 and 468956 (JCR-602)

Modified:
    jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
    jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
    jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/AbstractImportXmlTest.java
    jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/DocumentViewImportTest.java
    jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SerializationTest.java

Modified: jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/SessionImpl.java?view=diff&rev=478989&r1=478988&r2=478989
==============================================================================
--- jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/SessionImpl.java (original)
+++ jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/SessionImpl.java Fri Nov 24 12:31:28 2006
@@ -50,8 +50,6 @@
 import org.xml.sax.ContentHandler;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
 
 import javax.jcr.AccessDeniedException;
 import javax.jcr.Credentials;
@@ -77,6 +75,9 @@
 import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.version.VersionException;
 import javax.security.auth.Subject;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.sax.SAXTransformerFactory;
@@ -1075,16 +1076,13 @@
         ImportHandler handler = (ImportHandler)
                 getImportContentHandler(parentAbsPath, uuidBehavior);
         try {
-            XMLReader parser =
-                    XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-            parser.setContentHandler(handler);
-            parser.setErrorHandler(handler);
-            // being paranoid...
-            parser.setFeature("http://xml.org/sax/features/namespaces", true);
-            parser.setFeature("http://xml.org/sax/features/namespace-prefixes",
-                    false);
+            SAXParserFactory factory = SAXParserFactory.newInstance();
+            factory.setNamespaceAware(true);
+            factory.setFeature(
+                    "http://xml.org/sax/features/namespace-prefixes", false);
 
-            parser.parse(new InputSource(in));
+            SAXParser parser = factory.newSAXParser();
+            parser.parse(new InputSource(in), handler);
         } catch (SAXException se) {
             // check for wrapped repository exception
             Exception e = se.getException();
@@ -1095,6 +1093,8 @@
                 log.debug(msg);
                 throw new InvalidSerializedDataException(msg, se);
             }
+        } catch (ParserConfigurationException e) {
+            throw new RepositoryException("SAX parser configuration error", e);
         }
     }
 

Modified: jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java?view=diff&rev=478989&r1=478988&r2=478989
==============================================================================
--- jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java (original)
+++ jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java Fri Nov 24 12:31:28 2006
@@ -40,8 +40,6 @@
 import org.xml.sax.ContentHandler;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
 
 import javax.jcr.AccessDeniedException;
 import javax.jcr.InvalidItemStateException;
@@ -62,6 +60,10 @@
 import javax.jcr.version.Version;
 import javax.jcr.version.VersionException;
 import javax.jcr.version.VersionHistory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.HashMap;
@@ -726,16 +728,13 @@
         ImportHandler handler =
                 (ImportHandler) getImportContentHandler(parentAbsPath, uuidBehavior);
         try {
-            XMLReader parser =
-                    XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-            parser.setContentHandler(handler);
-            parser.setErrorHandler(handler);
-            // being paranoid...
-            parser.setFeature("http://xml.org/sax/features/namespaces", true);
-            parser.setFeature("http://xml.org/sax/features/namespace-prefixes",
-                    false);
+            SAXParserFactory factory = SAXParserFactory.newInstance();
+            factory.setNamespaceAware(true);
+            factory.setFeature(
+                    "http://xml.org/sax/features/namespace-prefixes", false);
 
-            parser.parse(new InputSource(in));
+            SAXParser parser = factory.newSAXParser();
+            parser.parse(new InputSource(in), handler);
         } catch (SAXException se) {
             // check for wrapped repository exception
             Exception e = se.getException();
@@ -746,6 +745,8 @@
                 log.debug(msg);
                 throw new InvalidSerializedDataException(msg, se);
             }
+        } catch (ParserConfigurationException e) {
+            throw new RepositoryException("SAX parser configuration error", e);
         }
     }
 

Modified: jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/AbstractImportXmlTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/AbstractImportXmlTest.java?view=diff&rev=478989&r1=478988&r2=478989
==============================================================================
--- jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/AbstractImportXmlTest.java (original)
+++ jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/AbstractImportXmlTest.java Fri Nov 24 12:31:28 2006
@@ -23,9 +23,8 @@
 import org.w3c.dom.Attr;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
 import org.xml.sax.InputSource;
-import org.xml.sax.helpers.XMLReaderFactory;
+import org.xml.sax.helpers.DefaultHandler;
 
 import javax.jcr.nodetype.NodeTypeManager;
 import javax.jcr.nodetype.NoSuchNodeTypeException;
@@ -38,6 +37,9 @@
 import javax.jcr.PathNotFoundException;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Result;
 import javax.xml.transform.Source;
@@ -245,7 +247,7 @@
      */
     public void importWithHandler(String absPath, Document document,
                                   int uuidBehaviour, boolean withWorkspace)
-            throws RepositoryException, SAXException, IOException {
+            throws Exception {
 
         serialize(document);
         BufferedInputStream bin = new BufferedInputStream(new FileInputStream(file));
@@ -256,11 +258,15 @@
         } else {
             handler = session.getImportContentHandler(absPath, uuidBehaviour);
         }
-        XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-        parser.setContentHandler(handler);
 
-        InputSource source = new InputSource(bin);
-        parser.parse(source);
+        SAXParserFactory factory = SAXParserFactory.newInstance();
+        factory.setNamespaceAware(true);
+        factory.setFeature(
+                "http://xml.org/sax/features/namespace-prefixes", false);
+
+        SAXParser parser = factory.newSAXParser();
+        parser.parse(new InputSource(bin), (DefaultHandler) handler);
+
         if (!withWorkspace) {
             session.save();
         }
@@ -355,9 +361,10 @@
      * @throws RepositoryException
      * @throws IOException
      */
-    public void importRefNodeDocument(String absPath, String uuid, int uuidBehaviour,
-                                      boolean withWorkspace, boolean withHandler)
-            throws RepositoryException, IOException, SAXException {
+    public void importRefNodeDocument(
+            String absPath, String uuid, int uuidBehaviour,
+            boolean withWorkspace, boolean withHandler)
+            throws Exception {
 
         Document document = dom.newDocument();
         Element root = document.createElement(rootElem);

Modified: jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/DocumentViewImportTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/DocumentViewImportTest.java?view=diff&rev=478989&r1=478988&r2=478989
==============================================================================
--- jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/DocumentViewImportTest.java (original)
+++ jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/DocumentViewImportTest.java Fri Nov 24 12:31:28 2006
@@ -60,29 +60,25 @@
         super.tearDown();
     }
 
-    public void testWorkspaceImportXml() throws RepositoryException,
-            IOException, SAXException, NotExecutableException {
+    public void testWorkspaceImportXml() throws Exception {
         withHandler = false;
         withWorkspace = WORKSPACE;
         doTestImportXML();
     }
 
-    public void testSessionImportXml() throws RepositoryException,
-            IOException, SAXException, NotExecutableException {
+    public void testSessionImportXml() throws Exception {
         withHandler = false;
         withWorkspace = SESSION;
         doTestImportXML();
     }
 
-    public void testWorkspaceGetImportContentHandler() throws RepositoryException,
-            SAXException, IOException, NotExecutableException {
+    public void testWorkspaceGetImportContentHandler() throws Exception {
         withHandler = true;
         withWorkspace = SESSION;
         doTestGetImportContentHandler();
     }
 
-    public void testSessionGetImportContentHandler() throws RepositoryException,
-            SAXException, IOException, NotExecutableException {
+    public void testSessionGetImportContentHandler() throws Exception {
         withHandler = true;
         withWorkspace = WORKSPACE;
         doTestGetImportContentHandler();
@@ -102,8 +98,7 @@
      * @throws SAXException
      * @throws NotExecutableException
      */
-    public void doTestImportXML() throws RepositoryException, IOException,
-            SAXException, NotExecutableException {
+    public void doTestImportXML() throws Exception {
 
         importXML(target, createSimpleDocument(), uuidBehaviour, withWorkspace);
 
@@ -130,8 +125,7 @@
      * @throws IOException
      * @throws NotExecutableException
      */
-    public void doTestGetImportContentHandler() throws RepositoryException,
-            SAXException, IOException, NotExecutableException {
+    public void doTestGetImportContentHandler() throws Exception {
 
         importWithHandler(target, createSimpleDocument(), uuidBehaviour, withWorkspace);
 
@@ -145,8 +139,7 @@
     }
 
 
-    private void performTests() throws RepositoryException, SAXException,
-            IOException, NotExecutableException {
+    private void performTests() throws Exception {
 
         checkImportSimpleXMLTree();
         checkNamespaceAdded();
@@ -285,8 +278,7 @@
      * Checks {@link ImportUUIDBehavior#IMPORT_UUID_CREATE_NEW} i.e. that a node
      * receives a new uuid when imported in any case.
      */
-    public void checkImportDocumentView_IMPORT_UUID_CREATE_NEW()
-            throws RepositoryException, IOException, SAXException, NotExecutableException {
+    public void checkImportDocumentView_IMPORT_UUID_CREATE_NEW() throws Exception {
 
         String uuid = createReferenceableNode(referenced);
         // import a document with a element having the same uuid as the node referenced
@@ -304,7 +296,7 @@
      * the existing node is removed in case of uuid collision.
      */
     public void checkImportDocumentView_IMPORT_UUID_COLLISION_REMOVE_EXISTING()
-            throws RepositoryException, IOException, SAXException, NotExecutableException {
+            throws Exception {
 
         String uuid = createReferenceableNode(referenced);
         // import a document with a element having the same uuid as the node referenced
@@ -334,7 +326,7 @@
      * collision occurs.
      */
     public void checkImportDocumentView_IMPORT_UUID_COLLISION_REPLACE_EXISTING()
-            throws RepositoryException, IOException, SAXException, NotExecutableException {
+            throws Exception {
 
         String uuid = createReferenceableNode(referenced);
         // import a document with a element having the same uuid as the node referenced
@@ -359,7 +351,7 @@
      * @throws IOException
      */
     public void checkImportDocumentView_IMPORT_UUID_COLLISION_THROW()
-            throws RepositoryException, IOException, SAXException, NotExecutableException {
+            throws Exception {
 
         String uuid = createReferenceableNode(referenced);
         try {
@@ -390,7 +382,7 @@
      * parent of the import target.
      */
     public void doTestSameUUIDAtAncestor(boolean withWorkspace, boolean withHandler)
-            throws RepositoryException, IOException, SAXException, NotExecutableException {
+            throws Exception {
 
         String uuid = createReferenceableNode(referenced);
         Node node = testRootNode.getNode(referenced);
@@ -417,23 +409,19 @@
         }
     }
 
-    public void testSameUUIDAtAncestorWorkspaceHandler()
-            throws RepositoryException, IOException, SAXException, NotExecutableException {
+    public void testSameUUIDAtAncestorWorkspaceHandler() throws Exception {
         doTestSameUUIDAtAncestor(WORKSPACE, CONTENTHANDLER);
     }
 
-    public void testSameUUIDAtAncestorWorkspace()
-            throws RepositoryException, IOException, SAXException, NotExecutableException {
+    public void testSameUUIDAtAncestorWorkspace() throws Exception {
         doTestSameUUIDAtAncestor(WORKSPACE, STREAM);
     }
 
-    public void testSameUUIDAtAncestorSessionHandler()
-            throws RepositoryException, IOException, SAXException, NotExecutableException  {
+    public void testSameUUIDAtAncestorSessionHandler() throws Exception  {
         doTestSameUUIDAtAncestor(SESSION, CONTENTHANDLER);
     }
 
-    public void testSameUUIDAtAncestorSession()
-            throws RepositoryException, IOException, SAXException, NotExecutableException {
+    public void testSameUUIDAtAncestorSession() throws Exception {
         doTestSameUUIDAtAncestor(SESSION, STREAM);
     }
 }

Modified: jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SerializationTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SerializationTest.java?view=diff&rev=478989&r1=478988&r2=478989
==============================================================================
--- jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SerializationTest.java (original)
+++ jackrabbit/branches/1.1/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/SerializationTest.java Fri Nov 24 12:31:28 2006
@@ -19,11 +19,9 @@
 import org.apache.jackrabbit.test.AbstractJCRTest;
 import org.apache.jackrabbit.test.NotExecutableException;
 import org.xml.sax.ContentHandler;
-import org.xml.sax.ErrorHandler;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
+import org.xml.sax.helpers.DefaultHandler;
 
 import javax.jcr.ImportUUIDBehavior;
 import javax.jcr.InvalidSerializedDataException;
@@ -37,6 +35,10 @@
 import javax.jcr.lock.Lock;
 import javax.jcr.lock.LockException;
 import javax.jcr.version.VersionException;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -122,7 +124,7 @@
     }
 
     public void doTestVersioningExceptionFileParent(boolean useWorkspace, boolean useHandler)
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+            throws Exception {
         Node n = initVersioningException(true);
 
         FileInputStream in = new FileInputStream(file);
@@ -137,7 +139,7 @@
     }
 
     public void doTestVersioningExceptionFileChild(boolean useWorkspace, boolean useHandler)
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+            throws Exception {
         Node n = initVersioningException(false);
 
         FileInputStream in = new FileInputStream(file);
@@ -151,43 +153,35 @@
         }
     }
 
-    public void testVersioningExceptionFileParentWorkspaceContentHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testVersioningExceptionFileParentWorkspaceContentHandler() throws Exception {
         doTestVersioningExceptionFileParent(WORKSPACE, CONTENTHANDLER);
     }
 
-    public void testVersioningExceptionFileParentSessionContentHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testVersioningExceptionFileParentSessionContentHandler() throws Exception {
         doTestVersioningExceptionFileParent(SESSION, CONTENTHANDLER);
     }
 
-    public void testVersioningExceptionFileParentWorkspace()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testVersioningExceptionFileParentWorkspace() throws Exception {
         doTestVersioningExceptionFileParent(WORKSPACE, STREAM);
     }
 
-    public void testVersioningExceptionFileParentSession()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testVersioningExceptionFileParentSession() throws Exception {
         doTestVersioningExceptionFileParent(SESSION, STREAM);
     }
 
-    public void testVersioningExceptionFileChildWorkspaceContentHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testVersioningExceptionFileChildWorkspaceContentHandler() throws Exception {
         doTestVersioningExceptionFileChild(WORKSPACE, CONTENTHANDLER);
     }
 
-    public void testVersioningExceptionFileChildSessionContentHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testVersioningExceptionFileChildSessionContentHandler() throws Exception {
         doTestVersioningExceptionFileChild(SESSION, CONTENTHANDLER);
     }
 
-    public void testVersioningExceptionFileChildWorkspace()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testVersioningExceptionFileChildWorkspace() throws Exception {
         doTestVersioningExceptionFileChild(WORKSPACE, STREAM);
     }
 
-    public void testVersioningExceptionFileChildSession()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testVersioningExceptionFileChildSession() throws Exception {
         doTestVersioningExceptionFileChild(SESSION, STREAM);
     }
 
@@ -196,7 +190,7 @@
      * Tests whether importing a tree respects locking.
      */
     public void doTestLockException(boolean useWorkspace, boolean useHandler)
-            throws RepositoryException, IOException, SAXException {
+            throws Exception {
         Repository repository = session.getRepository();
         exportRepository(SKIPBINARY, RECURSE);
         if (isSupported(Repository.OPTION_LOCKING_SUPPORTED)) {
@@ -219,23 +213,19 @@
         }
     }
 
-    public void testLockExceptionWorkspaceWithHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testLockExceptionWorkspaceWithHandler() throws Exception {
         doTestVersioningExceptionFileChild(WORKSPACE, CONTENTHANDLER);
     }
 
-    public void testLockExceptionSessionWithHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testLockExceptionSessionWithHandler() throws Exception {
         doTestVersioningExceptionFileChild(SESSION, CONTENTHANDLER);
     }
 
-    public void testLockExceptionWorkspace()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testLockExceptionWorkspace() throws Exception {
         doTestVersioningExceptionFileChild(WORKSPACE, STREAM);
     }
 
-    public void testLockExceptionSession()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testLockExceptionSession() throws Exception {
         doTestVersioningExceptionFileChild(SESSION, STREAM);
     }
 
@@ -244,7 +234,8 @@
      * Tests whether importing an invalid XML file throws a SAX exception. The
      * file used here is more or less garbage.
      */
-    public void testInvalidXmlThrowsSaxException() throws IOException {
+    public void testInvalidXmlThrowsSaxException()
+            throws IOException, ParserConfigurationException {
         StringReader in = new StringReader("<this is not a <valid> <xml> file/>");
         ContentHandler ih = null;
         try {
@@ -270,17 +261,16 @@
      * @param ih
      * @param in
      */
-    private void helpTestSaxException(ContentHandler ih, Reader in, String mode) {
-        XMLReader parser = null;
+    private void helpTestSaxException(ContentHandler ih, Reader in, String mode)
+            throws IOException, ParserConfigurationException {
         try {
-            parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-            parser.setContentHandler(ih);
-            parser.setErrorHandler((ErrorHandler) ih);
-            try {
-                parser.parse(new InputSource(in));
-            } catch (IOException e) {
-                fail("Input stream not available for parsing: " + e);
-            }
+            SAXParserFactory factory = SAXParserFactory.newInstance();
+            factory.setNamespaceAware(true);
+            factory.setFeature(
+                    "http://xml.org/sax/features/namespace-prefixes", false);
+
+            SAXParser parser = factory.newSAXParser();
+            parser.parse(new InputSource(in), (DefaultHandler) ih);
             fail("Parsing an invalid XML file with via " + mode + " ContentHandler did not throw a SAXException.");
         } catch (SAXException e) {
             // success
@@ -389,7 +379,7 @@
      * not allow same-name siblings.
      */
     public void doTestOverwriteException(boolean useWorkspace, boolean useHandler)
-            throws RepositoryException, IOException, SAXException, NotExecutableException {
+            throws Exception {
         //If deserialization would overwrite an existing item,
         // an ItemExistsException respective a SAXException is thrown.
 
@@ -426,23 +416,19 @@
         }
     }
 
-    public void testOverwriteExceptionWorkspaceWithHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testOverwriteExceptionWorkspaceWithHandler() throws Exception {
         doTestOverwriteException(WORKSPACE, CONTENTHANDLER);
     }
 
-    public void testOverwriteExceptionSessionWithHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testOverwriteExceptionSessionWithHandler() throws Exception {
         doTestOverwriteException(SESSION, CONTENTHANDLER);
     }
 
-    public void testOverwriteExceptionWorkspace()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testOverwriteExceptionWorkspace() throws Exception {
         doTestOverwriteException(WORKSPACE, STREAM);
     }
 
-    public void testOverwriteExceptionSession()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testOverwriteExceptionSession() throws Exception {
         doTestOverwriteException(SESSION, STREAM);
     }
 
@@ -459,7 +445,7 @@
      * @throws IOException
      */
     public void doTestNodeTypeConstraintViolation(boolean useWorkspace, boolean useHandler)
-            throws RepositoryException, FileNotFoundException, IOException, SAXException {
+            throws Exception {
 
         treeComparator.createExampleTree();
         Node node = testRootNode.addNode("ntBase", ntBase);
@@ -491,23 +477,19 @@
     }
 
 
-    public void testNodeTypeConstraintViolationWorkspaceWithHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testNodeTypeConstraintViolationWorkspaceWithHandler() throws Exception {
         doTestNodeTypeConstraintViolation(WORKSPACE, CONTENTHANDLER);
     }
 
-    public void testNodeTypeConstraintViolationSessionWithHandler()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testNodeTypeConstraintViolationSessionWithHandler() throws Exception {
         doTestNodeTypeConstraintViolation(SESSION, CONTENTHANDLER);
     }
 
-    public void testNodeTypeConstraintViolationWorkspace()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testNodeTypeConstraintViolationWorkspace() throws Exception {
         doTestNodeTypeConstraintViolation(WORKSPACE, STREAM);
     }
 
-    public void testNodeTypeConstraintViolationSession()
-            throws RepositoryException, NotExecutableException, IOException, SAXException {
+    public void testNodeTypeConstraintViolationSession() throws Exception {
         doTestNodeTypeConstraintViolation(SESSION, STREAM);
     }
 
@@ -540,7 +522,7 @@
      * Makes sure that importing into the session does not save anything if the
      * session is closed.
      */
-    public void testSessionGetContentHandler() throws RepositoryException, IOException, SAXException {
+    public void testSessionGetContentHandler() throws Exception {
         FileInputStream in = new FileInputStream(file);
         try {
             exportRepository(SAVEBINARY, RECURSE);
@@ -572,21 +554,20 @@
      * @throws IOException
      */
     public void doImport(String absPath, FileInputStream in, boolean useWorkspace, boolean useHandler)
-            throws RepositoryException, IOException, SAXException {
+            throws Exception {
         if (useHandler) {
+            SAXParserFactory factory = SAXParserFactory.newInstance();
+            factory.setNamespaceAware(true);
+            factory.setFeature(
+                    "http://xml.org/sax/features/namespace-prefixes", false);
+
+            SAXParser parser = factory.newSAXParser();
             if (useWorkspace) {
                 ContentHandler ih = workspace.getImportContentHandler(absPath, 0);
-                XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-                parser.setContentHandler(ih);
-                parser.setErrorHandler((ErrorHandler) ih);
-                parser.parse(new InputSource(in));
+                parser.parse(new InputSource(in), (DefaultHandler) ih);
             } else {
                 ContentHandler ih = session.getImportContentHandler(absPath, 0);
-
-                XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-                parser.setContentHandler(ih);
-                parser.setErrorHandler((ErrorHandler) ih);
-                parser.parse(new InputSource(in));
+                parser.parse(new InputSource(in), (DefaultHandler) ih);
                 session.save();
             }
         } else {
@@ -600,81 +581,83 @@
     }
 
     public void doImportNoSave(String absPath, FileInputStream in, boolean useHandler)
-            throws RepositoryException, IOException, SAXException {
+            throws Exception {
         if (useHandler) {
-            ContentHandler ih = session.getImportContentHandler(absPath, 0);
+            SAXParserFactory factory = SAXParserFactory.newInstance();
+            factory.setNamespaceAware(true);
+            factory.setFeature(
+                    "http://xml.org/sax/features/namespace-prefixes", false);
 
-            XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-            parser.setContentHandler(ih);
-            parser.setErrorHandler((ErrorHandler) ih);
-            parser.parse(new InputSource(in));
+            SAXParser parser = factory.newSAXParser();
+            ContentHandler ih = session.getImportContentHandler(absPath, 0);
+            parser.parse(new InputSource(in), (DefaultHandler) ih);
         } else {
             session.importXML(absPath, in, ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
         }
     }
 //------------< System view export import tests >-----------------------------------
 
-    public void testExportSysView_stream_workspace_skipBinary_noRecurse() throws IOException, RepositoryException {
+    public void testExportSysView_stream_workspace_skipBinary_noRecurse() throws Exception {
         doTest(STREAM, WORKSPACE, SKIPBINARY, NORECURSE);
     }
 
-    public void testExportSysView_stream_workspace_skipBinary_recurse() throws IOException, RepositoryException {
+    public void testExportSysView_stream_workspace_skipBinary_recurse() throws Exception {
         doTest(STREAM, WORKSPACE, SKIPBINARY, RECURSE);
     }
 
-    public void testExportSysView_stream_workspace_saveBinary_noRecurse() throws IOException, RepositoryException {
+    public void testExportSysView_stream_workspace_saveBinary_noRecurse() throws Exception {
         doTest(STREAM, WORKSPACE, SAVEBINARY, NORECURSE);
     }
 
-    public void testExportSysView_stream_workspace_saveBinary_recurse() throws IOException, RepositoryException {
+    public void testExportSysView_stream_workspace_saveBinary_recurse() throws Exception {
         doTest(STREAM, WORKSPACE, SAVEBINARY, RECURSE);
     }
 
-    public void testExportSysView_stream_session_skipBinary_noRecurse() throws IOException, RepositoryException {
+    public void testExportSysView_stream_session_skipBinary_noRecurse() throws Exception {
         doTest(STREAM, SESSION, SKIPBINARY, NORECURSE);
     }
 
-    public void testExportSysView_stream_session_skipBinary_recurse() throws IOException, RepositoryException {
+    public void testExportSysView_stream_session_skipBinary_recurse() throws Exception {
         doTest(STREAM, SESSION, SKIPBINARY, RECURSE);
     }
 
-    public void testExportSysView_stream_session_saveBinary_noRecurse() throws IOException, RepositoryException {
+    public void testExportSysView_stream_session_saveBinary_noRecurse() throws Exception {
         doTest(STREAM, SESSION, SAVEBINARY, NORECURSE);
     }
 
-    public void testExportSysView_stream_session_saveBinary_recurse() throws IOException, RepositoryException {
+    public void testExportSysView_stream_session_saveBinary_recurse() throws Exception {
         doTest(STREAM, SESSION, SAVEBINARY, RECURSE);
     }
 
-    public void testExportSysView_handler_workspace_skipBinary_noRecurse() throws IOException, RepositoryException {
+    public void testExportSysView_handler_workspace_skipBinary_noRecurse() throws Exception {
         doTest(CONTENTHANDLER, WORKSPACE, SKIPBINARY, NORECURSE);
     }
 
-    public void testExportSysView_handler_workspace_skipBinary_recurse() throws IOException, RepositoryException {
+    public void testExportSysView_handler_workspace_skipBinary_recurse() throws Exception {
         doTest(CONTENTHANDLER, WORKSPACE, SKIPBINARY, RECURSE);
     }
 
-    public void testExportSysView_handler_workspace_saveBinary_noRecurse() throws IOException, RepositoryException {
+    public void testExportSysView_handler_workspace_saveBinary_noRecurse() throws Exception {
         doTest(CONTENTHANDLER, WORKSPACE, SAVEBINARY, NORECURSE);
     }
 
-    public void testExportSysView_handler_workspace_saveBinary_recurse() throws IOException, RepositoryException {
+    public void testExportSysView_handler_workspace_saveBinary_recurse() throws Exception {
         doTest(CONTENTHANDLER, WORKSPACE, SAVEBINARY, RECURSE);
     }
 
-    public void testExportSysView_handler_session_skipBinary_noRecurse() throws IOException, RepositoryException {
+    public void testExportSysView_handler_session_skipBinary_noRecurse() throws Exception {
         doTest(CONTENTHANDLER, SESSION, SKIPBINARY, NORECURSE);
     }
 
-    public void testExportSysView_handler_session_skipBinary_recurse() throws IOException, RepositoryException {
+    public void testExportSysView_handler_session_skipBinary_recurse() throws Exception {
         doTest(CONTENTHANDLER, SESSION, SKIPBINARY, RECURSE);
     }
 
-    public void testExportSysView_handler_session_saveBinary_noRecurse() throws IOException, RepositoryException {
+    public void testExportSysView_handler_session_saveBinary_noRecurse() throws Exception {
         doTest(CONTENTHANDLER, SESSION, SAVEBINARY, NORECURSE);
     }
 
-    public void testExportSysView_handler_session_saveBinary_recurse() throws IOException, RepositoryException {
+    public void testExportSysView_handler_session_saveBinary_recurse() throws Exception {
         doTest(CONTENTHANDLER, SESSION, SAVEBINARY, RECURSE);
     }
 
@@ -692,7 +675,7 @@
      *                   subtree
      */
     private void doTest(boolean handler, boolean workspace, boolean skipBinary, boolean noRecurse)
-            throws RepositoryException, IOException {
+            throws Exception {
         exportRepository(skipBinary, noRecurse);
         importRepository(handler, workspace);
         treeComparator.showTree();
@@ -728,38 +711,24 @@
      * @param workspace  True = import into workspace, false = import into
      *                   session
      */
-    public void importRepository(boolean useHandler, boolean workspace) throws RepositoryException, IOException {
-        FileInputStream in = null;
-        try {
-            in = new FileInputStream(file);
-        } catch (FileNotFoundException e) {
-            fail("Input file not opened: " + e);
-        }
-
+    public void importRepository(boolean useHandler, boolean workspace) throws Exception {
+        FileInputStream in = new FileInputStream(file);
         try {
             if (useHandler) {
+                SAXParserFactory factory = SAXParserFactory.newInstance();
+                factory.setNamespaceAware(true);
+                factory.setFeature(
+                        "http://xml.org/sax/features/namespace-prefixes", false);
+
+                SAXParser parser = factory.newSAXParser();
                 if (workspace) {
                     ContentHandler ih = this.workspace.getImportContentHandler(treeComparator.targetFolder, 0);
-                    try {
-                        XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-                        parser.setContentHandler(ih);
-                        parser.setErrorHandler((ErrorHandler) ih);
-                        parser.parse(new InputSource(in));
-                    } catch (SAXException e) {
-                        fail("Error while parsing the imported repository: " + e);
-                    }
+                    parser.parse(new InputSource(in), (DefaultHandler) ih);
                 } else {
                     ContentHandler ih = session.getImportContentHandler(treeComparator.targetFolder,
                             ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
-                    try {
-                        XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-                        parser.setContentHandler(ih);
-                        parser.setErrorHandler((ErrorHandler) ih);
-                        parser.parse(new InputSource(in));
-                        session.save();
-                    } catch (SAXException e) {
-                        fail("Error while parsing the imported repository: " + e);
-                    }
+                    parser.parse(new InputSource(in), (DefaultHandler) ih);
+                    session.save();
                 }
             } else {
                 if (workspace) {
@@ -770,6 +739,8 @@
                     session.save();
                 }
             }
+        } catch (SAXException e) {
+            fail("Error while parsing the imported repository: " + e);
         } finally {
             in.close();
         }