Author: stefan Date: Wed Nov 2 01:43:18 2005 New Revision: 330225 URL: http://svn.apache.org/viewcvs?rev=330225&view=rev Log: JCR-267 temporary files created by some jUnit test are not automatically removed Modified: incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/ExportDocViewTest.java incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SerializationTest.java Modified: incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/ExportDocViewTest.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/ExportDocViewTest.java?rev=330225&r1=330224&r2=330225&view=diff ============================================================================== --- incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/ExportDocViewTest.java (original) +++ incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/ExportDocViewTest.java Wed Nov 2 01:43:18 2005 @@ -200,12 +200,16 @@ this.noRecurse = noRecurse; this.withHandler = withHandler; BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(file)); - if (withHandler) { - ContentHandler handler = - new org.apache.xml.serialize.XMLSerializer(os, null).asContentHandler(); - session.exportDocumentView(testPath, handler, skipBinary, noRecurse); - } else { - session.exportDocumentView(testPath, os, skipBinary, noRecurse); + try { + if (withHandler) { + ContentHandler handler = + new org.apache.xml.serialize.XMLSerializer(os, null).asContentHandler(); + session.exportDocumentView(testPath, handler, skipBinary, noRecurse); + } else { + session.exportDocumentView(testPath, os, skipBinary, noRecurse); + } + } finally { + os.close(); } // build the DOM tree Modified: incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SerializationTest.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SerializationTest.java?rev=330225&r1=330224&r2=330225&view=diff ============================================================================== --- incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SerializationTest.java (original) +++ incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/test/api/SerializationTest.java Wed Nov 2 01:43:18 2005 @@ -25,26 +25,26 @@ import org.xml.sax.XMLReader; import org.xml.sax.helpers.XMLReaderFactory; -import javax.jcr.version.VersionException; -import javax.jcr.lock.Lock; -import javax.jcr.lock.LockException; -import javax.jcr.Workspace; -import javax.jcr.Session; -import javax.jcr.RepositoryException; -import javax.jcr.Node; -import javax.jcr.Repository; import javax.jcr.ImportUUIDBehavior; import javax.jcr.InvalidSerializedDataException; -import javax.jcr.PathNotFoundException; import javax.jcr.ItemExistsException; +import javax.jcr.Node; +import javax.jcr.PathNotFoundException; +import javax.jcr.Repository; +import javax.jcr.RepositoryException; +import javax.jcr.Session; +import javax.jcr.Workspace; +import javax.jcr.lock.Lock; +import javax.jcr.lock.LockException; +import javax.jcr.version.VersionException; +import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; -import java.io.StringReader; import java.io.Reader; -import java.io.ByteArrayInputStream; -import java.io.FileOutputStream; -import java.io.FileNotFoundException; +import java.io.StringReader; /** * SerializationTest contains the test cases for the method @@ -122,7 +122,7 @@ } public void doTestVersioningExceptionFileParent(boolean useWorkspace, boolean useHandler) - throws RepositoryException, NotExecutableException, IOException, SAXException { + throws RepositoryException, NotExecutableException, IOException, SAXException { Node n = initVersioningException(true); FileInputStream in = new FileInputStream(file); @@ -131,11 +131,13 @@ fail("Importing to a checked-in node must throw a ConstraintViolationException."); } catch (VersionException e) { // success + } finally { + in.close(); } } public void doTestVersioningExceptionFileChild(boolean useWorkspace, boolean useHandler) - throws RepositoryException, NotExecutableException, IOException, SAXException { + throws RepositoryException, NotExecutableException, IOException, SAXException { Node n = initVersioningException(false); FileInputStream in = new FileInputStream(file); @@ -144,6 +146,8 @@ fail("Importing to a child of a checked-in node must throw a ConstraintViolationException."); } catch (VersionException e) { // success + } finally { + in.close(); } } @@ -207,6 +211,8 @@ doImport(lNode.getPath(), in, useWorkspace, useHandler); } catch (LockException e) { // success + } finally { + in.close(); } } else { log.println("Locking not supported."); @@ -258,7 +264,7 @@ helpTestSaxException(ih, in, "workspace"); } - /** + /** * Helper method for testSaxException. * * @param ih @@ -282,12 +288,11 @@ } /** - * * Tests whether importing an invalid XML file throws a InvalidSerializedDataException. * The file used here is more or less garbage. */ public void testInvalidXmlThrowsInvalidSerializedDataException() - throws RepositoryException, IOException{ + throws RepositoryException, IOException { String data = " file/>"; ByteArrayInputStream in = new ByteArrayInputStream(data.getBytes()); @@ -353,6 +358,8 @@ fail("Importing to a non-existing node does not throw a PathNotFoundException."); } catch (PathNotFoundException e) { // success + } finally { + in.close(); } } @@ -370,6 +377,8 @@ fail("Importing to a non-existing node does not throw a PathNotFoundException."); } catch (PathNotFoundException e) { // success + } finally { + in.close(); } } @@ -389,28 +398,35 @@ session.save(); FileOutputStream out = new FileOutputStream(file); - session.exportSystemView(subfolder.getPath(), out, true, true); + try { + session.exportSystemView(subfolder.getPath(), out, true, true); + } finally { + out.close(); + } FileInputStream in = new FileInputStream(file); - if (useHandler) { - try { - doImport(folder.getPath(), in, useWorkspace, useHandler); - fail("Overwriting an existing node during import must throw a SAXException"); - } catch (SAXException e) { - // success - } - } - else { - try { - doImport(folder.getPath(), in, useWorkspace, useHandler); - fail("Overwriting an existing node during import must throw an ItemExistsException"); - } catch (ItemExistsException e) { - // success + try { + if (useHandler) { + try { + doImport(folder.getPath(), in, useWorkspace, useHandler); + fail("Overwriting an existing node during import must throw a SAXException"); + } catch (SAXException e) { + // success + } + } else { + try { + doImport(folder.getPath(), in, useWorkspace, useHandler); + fail("Overwriting an existing node during import must throw an ItemExistsException"); + } catch (ItemExistsException e) { + // success + } } + } finally { + in.close(); } } - public void testOverwriteExceptionWorkspaceWithHandler() + public void testOverwriteExceptionWorkspaceWithHandler() throws RepositoryException, NotExecutableException, IOException, SAXException { doTestOverwriteException(WORKSPACE, CONTENTHANDLER); } @@ -430,11 +446,12 @@ doTestOverwriteException(SESSION, STREAM); } - // ------------------< Node type constraint violation tests >-------------------------------- + // ------------------< Node type constraint violation tests >-------------------------------- /** * Create a node named ntBase with node type nt:base * and creates a tree in the repository which will be exported * and reimported below the node ntBase. + * * @param useWorkspace * @param useHandler * @throws RepositoryException @@ -442,36 +459,39 @@ * @throws IOException */ public void doTestNodeTypeConstraintViolation(boolean useWorkspace, boolean useHandler) - throws RepositoryException, FileNotFoundException, IOException, SAXException { + throws RepositoryException, FileNotFoundException, IOException, SAXException { treeComparator.createExampleTree(); Node node = testRootNode.addNode("ntBase", ntBase); session.save(); FileInputStream in = new FileInputStream(file); - if (useHandler) { - try { - doImport(node.getPath(), in, useWorkspace, useHandler); - fail("Node type constraint violation should throw a SAXException " + - "during xml import using a Contenthandler."); - } catch (SAXException se) { - // ok - } - } - else { - try { - doImport(node.getPath(), in, useWorkspace, useHandler); - fail("Node type constraint violation should throw a " + - " InvalidSerializedDataException during xml import " + - "using a Contenthandler."); - } catch (InvalidSerializedDataException isde) { - // ok + try { + if (useHandler) { + try { + doImport(node.getPath(), in, useWorkspace, useHandler); + fail("Node type constraint violation should throw a SAXException " + + "during xml import using a Contenthandler."); + } catch (SAXException se) { + // ok + } + } else { + try { + doImport(node.getPath(), in, useWorkspace, useHandler); + fail("Node type constraint violation should throw a " + + " InvalidSerializedDataException during xml import " + + "using a Contenthandler."); + } catch (InvalidSerializedDataException isde) { + // ok + } } + } finally { + in.close(); } } - public void testNodeTypeConstraintViolationWorkspaceWithHandler() + public void testNodeTypeConstraintViolationWorkspaceWithHandler() throws RepositoryException, NotExecutableException, IOException, SAXException { doTestNodeTypeConstraintViolation(WORKSPACE, CONTENTHANDLER); } @@ -498,9 +518,13 @@ */ public void testSessionImportXml() throws RepositoryException, IOException { FileInputStream in = new FileInputStream(file); - exportRepository(SAVEBINARY, RECURSE); - session.importXML(treeComparator.targetFolder, in, - ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW); + try { + exportRepository(SAVEBINARY, RECURSE); + session.importXML(treeComparator.targetFolder, in, + ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW); + } finally { + in.close(); + } // after logout/login, no nodes are in the session session.logout(); @@ -518,8 +542,12 @@ */ public void testSessionGetContentHandler() throws RepositoryException, IOException, SAXException { FileInputStream in = new FileInputStream(file); - exportRepository(SAVEBINARY, RECURSE); - doImportNoSave(treeComparator.targetFolder, in, CONTENTHANDLER); + try { + exportRepository(SAVEBINARY, RECURSE); + doImportNoSave(treeComparator.targetFolder, in, CONTENTHANDLER); + } finally { + in.close(); + } // after logout/login, no nodes are in the session session.logout(); @@ -571,7 +599,7 @@ } } - public void doImportNoSave(String absPath, FileInputStream in, boolean useHandler) + public void doImportNoSave(String absPath, FileInputStream in, boolean useHandler) throws RepositoryException, IOException, SAXException { if (useHandler) { ContentHandler ih = session.getImportContentHandler(absPath, 0); @@ -580,8 +608,7 @@ parser.setContentHandler(ih); parser.setErrorHandler((ErrorHandler) ih); parser.parse(new InputSource(in)); - } - else { + } else { session.importXML(absPath, in, ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW); } } @@ -682,14 +709,14 @@ * @throws IOException */ private void exportRepository(boolean skipBinary, boolean noRecurse) throws IOException { - FileOutputStream out; + FileOutputStream out = new FileOutputStream(file); try { - //File file = new File("C:\\exportTestOutput"); - out = new FileOutputStream(file); session.refresh(false); //move the workspace into the session, then save it. The workspace is always valid, the session not necessarily. session.exportSystemView(treeComparator.getSourceRootPath(), out, skipBinary, noRecurse); } catch (RepositoryException e) { fail("Could not export the repository: " + e); + } finally { + out.close(); } } @@ -709,38 +736,42 @@ fail("Input file not opened: " + e); } - if (useHandler) { - 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); + try { + if (useHandler) { + 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); + } + } 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); + } } } 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)); + if (workspace) { + this.workspace.importXML(treeComparator.targetFolder, in, 0); + } else { + session.importXML(treeComparator.targetFolder, in, + ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW); session.save(); - } catch (SAXException e) { - fail("Error while parsing the imported repository: " + e); } } - } else { - if (workspace) { - this.workspace.importXML(treeComparator.targetFolder, in, 0); - } else { - session.importXML(treeComparator.targetFolder, in, - ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW); - session.save(); - } + } finally { + in.close(); } } }