Author: olamy Date: Thu Mar 29 13:40:58 2012 New Revision: 1306856 URL: http://svn.apache.org/viewvc?rev=1306856&view=rev Log: close streams in a finally block
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagCommand.java maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java?rev=1306856&r1=1306855&r2=1306856&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java Thu Mar 29 13:40:58 2012 @@ -19,12 +19,6 @@ package org.apache.maven.scm.provider.pe * under the License. */ -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; - import org.apache.maven.scm.ScmException; import org.apache.maven.scm.ScmFileSet; import org.apache.maven.scm.ScmVersion; @@ -35,11 +29,18 @@ import org.apache.maven.scm.provider.per import org.apache.maven.scm.provider.perforce.command.PerforceCommand; import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository; import org.apache.regexp.RE; +import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.cli.CommandLineException; import org.codehaus.plexus.util.cli.CommandLineUtils; import org.codehaus.plexus.util.cli.Commandline; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; + /** * @author Mike Perham * @version $Id$ @@ -59,7 +60,7 @@ public class PerforceCheckOutCommand * 1) A clientspec will be created or updated which holds a temporary * mapping from the repo path to the target directory. * 2) This clientspec is sync'd to pull all the files onto the client - * + * <p/> * {@inheritDoc} */ protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, ScmFileSet files, @@ -92,7 +93,8 @@ public class PerforceCheckOutCommand getLogger().info( "Executing: " + PerforceScmProvider.clean( cl.toString() ) ); } - String client = PerforceScmProvider.createClientspec( getLogger(), prepo, workingDirectory, actualLocation ); + String client = + PerforceScmProvider.createClientspec( getLogger(), prepo, workingDirectory, actualLocation ); if ( getLogger().isDebugEnabled() ) { @@ -100,7 +102,8 @@ public class PerforceCheckOutCommand } CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer(); - int exitCode = CommandLineUtils.executeCommandLine( cl, new ByteArrayInputStream(client.getBytes()), consumer, err ); + int exitCode = + CommandLineUtils.executeCommandLine( cl, new ByteArrayInputStream( client.getBytes() ), consumer, err ); if ( exitCode != 0 ) { @@ -187,8 +190,8 @@ public class PerforceCheckOutCommand } else { - return new CheckOutScmResult( cl.toString(), "Unable to sync. Are you logged in?", consumer - .getOutput(), consumer.isSuccess() ); + return new CheckOutScmResult( cl.toString(), "Unable to sync. Are you logged in?", + consumer.getOutput(), consumer.isSuccess() ); } } finally @@ -198,6 +201,8 @@ public class PerforceCheckOutCommand if ( clientspecExists && !prepo.isPersistCheckout() ) { // Delete the clientspec + InputStreamReader isReader = null; + InputStreamReader isReaderErr = null; try { cl = PerforceScmProvider.createP4Command( prepo, workingDirectory ); @@ -209,8 +214,8 @@ public class PerforceCheckOutCommand getLogger().info( "Executing: " + PerforceScmProvider.clean( cl.toString() ) ); } Process proc = cl.execute(); - - BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) ); + isReader = new InputStreamReader( proc.getInputStream() ); + BufferedReader br = new BufferedReader( isReader ); String line; while ( ( line = br.readLine() ) != null ) { @@ -222,7 +227,8 @@ public class PerforceCheckOutCommand } br.close(); // Read errors from STDERR - BufferedReader brErr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) ); + isReaderErr = new InputStreamReader( proc.getErrorStream() ); + BufferedReader brErr = new BufferedReader( isReaderErr ); while ( ( line = brErr.readLine() ) != null ) { if ( getLogger().isDebugEnabled() ) @@ -247,6 +253,11 @@ public class PerforceCheckOutCommand getLogger().error( "IOException " + e.getMessage(), e ); } } + finally + { + IOUtil.close( isReader ); + IOUtil.close( isReaderErr ); + } } else if ( clientspecExists ) { @@ -289,8 +300,7 @@ public class PerforceCheckOutCommand return command; } - private int getLastChangelist( PerforceScmProviderRepository repo, File workingDirectory, - String specname ) + private int getLastChangelist( PerforceScmProviderRepository repo, File workingDirectory, String specname ) { int lastChangelist = 0; try @@ -322,10 +332,11 @@ public class PerforceCheckOutCommand try { - lastChangelist = Integer.parseInt(lastChangelistStr); + lastChangelist = Integer.parseInt( lastChangelistStr ); } - catch( NumberFormatException nfe ) { - getLogger().debug("Could not parse changelist from line " + line); + catch ( NumberFormatException nfe ) + { + getLogger().debug( "Could not parse changelist from line " + line ); } } catch ( IOException e ) Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagCommand.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagCommand.java?rev=1306856&r1=1306855&r2=1306856&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagCommand.java (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagCommand.java Thu Mar 29 13:40:58 2012 @@ -30,6 +30,7 @@ import org.apache.maven.scm.provider.per import org.apache.maven.scm.provider.perforce.command.PerforceCommand; import org.apache.maven.scm.provider.perforce.command.PerforceInfoCommand; import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository; +import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.cli.CommandLineException; import org.codehaus.plexus.util.cli.CommandLineUtils; import org.codehaus.plexus.util.cli.Commandline; @@ -53,14 +54,16 @@ public class PerforceTagCommand { private String actualRepoLocation = null; - + protected ScmResult executeTagCommand( ScmProviderRepository repo, ScmFileSet files, String tag, String message ) throws ScmException { return executeTagCommand( repo, files, tag, new ScmTagParameters( message ) ); } - - /** {@inheritDoc} */ + + /** + * {@inheritDoc} + */ protected ScmResult executeTagCommand( ScmProviderRepository repo, ScmFileSet files, String tag, ScmTagParameters scmTagParameters ) throws ScmException @@ -136,6 +139,9 @@ public class PerforceTagCommand boolean lock ) { Commandline cl = createLabelCommandLine( (PerforceScmProviderRepository) repo, files.getBasedir() ); + DataOutputStream dos = null; + InputStreamReader isReader = null; + InputStreamReader isReaderErr = null; try { if ( getLogger().isDebugEnabled() ) @@ -144,7 +150,7 @@ public class PerforceTagCommand } Process proc = cl.execute(); OutputStream out = proc.getOutputStream(); - DataOutputStream dos = new DataOutputStream( out ); + dos = new DataOutputStream( out ); String label = createLabelSpecification( (PerforceScmProviderRepository) repo, tag, lock ); if ( getLogger().isDebugEnabled() ) { @@ -154,8 +160,10 @@ public class PerforceTagCommand dos.close(); out.close(); // TODO find & use a less naive InputStream multiplexer - BufferedReader stdout = new BufferedReader( new InputStreamReader( proc.getInputStream() ) ); - BufferedReader stderr = new BufferedReader( new InputStreamReader( proc.getErrorStream() ) ); + isReader = new InputStreamReader( proc.getInputStream() ); + isReaderErr = new InputStreamReader( proc.getErrorStream() ); + BufferedReader stdout = new BufferedReader( isReader ); + BufferedReader stderr = new BufferedReader( isReaderErr ); String line; while ( ( line = stdout.readLine() ) != null ) { @@ -190,6 +198,12 @@ public class PerforceTagCommand getLogger().error( "IOException " + e.getMessage(), e ); } } + finally + { + IOUtil.close( dos ); + IOUtil.close( isReader ); + IOUtil.close( isReaderErr ); + } } public static Commandline createLabelCommandLine( PerforceScmProviderRepository repo, File workingDirectory ) Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java?rev=1306856&r1=1306855&r2=1306856&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java Thu Mar 29 13:40:58 2012 @@ -28,6 +28,7 @@ import org.apache.maven.scm.provider.cvs import org.apache.maven.scm.provider.cvslib.CvsScmTestUtils; import org.apache.maven.scm.repository.ScmRepository; import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.IOUtil; import java.io.File; import java.io.FileWriter; @@ -46,7 +47,9 @@ public class CvsUpdateCommandTest private File assertionDirectory; - /** {@inheritDoc} */ + /** + * {@inheritDoc} + */ public void setUp() throws Exception { @@ -61,7 +64,9 @@ public class CvsUpdateCommandTest CvsScmTestUtils.initRepo( repository, workingDirectory, assertionDirectory ); } - /** {@inheritDoc} */ + /** + * {@inheritDoc} + */ protected String getModule() { return "test-repo/update"; @@ -73,113 +78,123 @@ public class CvsUpdateCommandTest public void testCvsUpdate() throws Exception { - if ( !isSystemCmd( CvsScmTestUtils.CVS_COMMAND_LINE ) ) + + FileWriter writer = null; + try { - System.err.println( "'" + CvsScmTestUtils.CVS_COMMAND_LINE + "' is not a system command. Ignored " - + getName() + "." ); - return; - } + if ( !isSystemCmd( CvsScmTestUtils.CVS_COMMAND_LINE ) ) + { + System.err.println( + "'" + CvsScmTestUtils.CVS_COMMAND_LINE + "' is not a system command. Ignored " + getName() + "." ); + return; + } - ScmManager scmManager = getScmManager(); + ScmManager scmManager = getScmManager(); - String scmUrl = CvsScmTestUtils.getScmUrl( repository, getModule() ); + String scmUrl = CvsScmTestUtils.getScmUrl( repository, getModule() ); - // Check out the repo to a working directory where files will be modified and committed - String arguments = - "-f -d " + repository.getAbsolutePath() + " " + "co -d " + workingDirectory.getName() + " " + getModule(); + // Check out the repo to a working directory where files will be modified and committed + String arguments = + "-f -d " + repository.getAbsolutePath() + " " + "co -d " + workingDirectory.getName() + " " + + getModule(); - CvsScmTestUtils.executeCVS( workingDirectory.getParentFile(), arguments ); + CvsScmTestUtils.executeCVS( workingDirectory.getParentFile(), arguments ); - // Check out the repo to a assertion directory where the command will be used - arguments = - "-f -d " + repository.getAbsolutePath() + " " + "co -d " + assertionDirectory.getName() + " " + getModule(); + // Check out the repo to a assertion directory where the command will be used + arguments = "-f -d " + repository.getAbsolutePath() + " " + "co -d " + assertionDirectory.getName() + " " + + getModule(); - CvsScmTestUtils.executeCVS( assertionDirectory.getParentFile(), arguments ); + CvsScmTestUtils.executeCVS( assertionDirectory.getParentFile(), arguments ); - // A new check out should return 0 updated files. - ScmRepository scmRepository = scmManager.makeScmRepository( scmUrl ); + // A new check out should return 0 updated files. + ScmRepository scmRepository = scmManager.makeScmRepository( scmUrl ); - UpdateScmResult result = scmManager.update( scmRepository, new ScmFileSet( assertionDirectory ) ); + UpdateScmResult result = scmManager.update( scmRepository, new ScmFileSet( assertionDirectory ) ); - assertNotNull( result ); + assertNotNull( result ); - if ( !result.isSuccess() ) - { - System.out.println( "result.providerMessage: " + result.getProviderMessage() ); + if ( !result.isSuccess() ) + { + System.out.println( "result.providerMessage: " + result.getProviderMessage() ); - System.out.println( "result.commandOutput: " + result.getCommandOutput() ); + System.out.println( "result.commandOutput: " + result.getCommandOutput() ); - fail( "Command failed" ); - } + fail( "Command failed" ); + } - assertNull( result.getProviderMessage() ); + assertNull( result.getProviderMessage() ); - assertNull( result.getCommandOutput() ); + assertNull( result.getCommandOutput() ); - assertNotNull( result.getUpdatedFiles() ); + assertNotNull( result.getUpdatedFiles() ); - assertEquals( 0, result.getUpdatedFiles().size() ); + assertEquals( 0, result.getUpdatedFiles().size() ); - // Modifing a file - File fooJava = new File( workingDirectory, "Foo.java" ); + // Modifing a file + File fooJava = new File( workingDirectory, "Foo.java" ); - String content = FileUtils.fileRead( fooJava ); + String content = FileUtils.fileRead( fooJava ); - FileWriter writer = new FileWriter( fooJava ); + writer = new FileWriter( fooJava ); - writer.write( content + System.getProperty( "line.separator" ) ); - writer.write( "extra line" ); + writer.write( content + System.getProperty( "line.separator" ) ); + writer.write( "extra line" ); - writer.close(); + writer.close(); - // Adding a new file - writer = new FileWriter( new File( workingDirectory, "New.txt" ) ); + // Adding a new file + writer = new FileWriter( new File( workingDirectory, "New.txt" ) ); - writer.write( "new file" ); + writer.write( "new file" ); - writer.close(); + writer.close(); - arguments = "-f -d " + repository.getAbsolutePath() + " add New.txt"; + arguments = "-f -d " + repository.getAbsolutePath() + " add New.txt"; - CvsScmTestUtils.executeCVS( workingDirectory, arguments ); + CvsScmTestUtils.executeCVS( workingDirectory, arguments ); - // Committing - arguments = "-f -d " + repository.getAbsolutePath() + " commit -m ."; + // Committing + arguments = "-f -d " + repository.getAbsolutePath() + " commit -m ."; - CvsScmTestUtils.executeCVS( workingDirectory, arguments ); + CvsScmTestUtils.executeCVS( workingDirectory, arguments ); - // Check the updated files - result = scmManager.update( scmRepository, new ScmFileSet( assertionDirectory ) ); + // Check the updated files + result = scmManager.update( scmRepository, new ScmFileSet( assertionDirectory ) ); - assertNotNull( result ); + assertNotNull( result ); - if ( !result.isSuccess() ) - { - System.out.println( "result.providerMessage: " + result.getProviderMessage() ); + if ( !result.isSuccess() ) + { + System.out.println( "result.providerMessage: " + result.getProviderMessage() ); - System.out.println( "result.commandOutput: " + result.getCommandOutput() ); + System.out.println( "result.commandOutput: " + result.getCommandOutput() ); - fail( "Command failed" ); - } + fail( "Command failed" ); + } - assertNull( result.getProviderMessage() ); + assertNull( result.getProviderMessage() ); - assertNull( result.getCommandOutput() ); + assertNull( result.getCommandOutput() ); - assertNotNull( result.getUpdatedFiles() ); + assertNotNull( result.getUpdatedFiles() ); - assertEquals( 2, result.getUpdatedFiles().size() ); + assertEquals( 2, result.getUpdatedFiles().size() ); - ScmFile file1 = (ScmFile) result.getUpdatedFiles().get( 0 ); + ScmFile file1 = result.getUpdatedFiles().get( 0 ); - assertPath( "Foo.java", file1.getPath() ); + assertPath( "Foo.java", file1.getPath() ); - assertEquals( ScmFileStatus.UPDATED, file1.getStatus() ); + assertEquals( ScmFileStatus.UPDATED, file1.getStatus() ); - ScmFile file2 = (ScmFile) result.getUpdatedFiles().get( 1 ); + ScmFile file2 = result.getUpdatedFiles().get( 1 ); - assertPath( "New.txt", file2.getPath() ); + assertPath( "New.txt", file2.getPath() ); - assertEquals( ScmFileStatus.UPDATED, file2.getStatus() ); + assertEquals( ScmFileStatus.UPDATED, file2.getStatus() ); + } + finally + { + IOUtil.close( writer ); + } } } Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java?rev=1306856&r1=1306855&r2=1306856&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java (original) +++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java Thu Mar 29 13:40:58 2012 @@ -19,22 +19,23 @@ package org.apache.maven.scm; * under the License. */ -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.Calendar; -import java.util.Date; -import java.util.TimeZone; - import org.apache.maven.scm.manager.ScmManager; import org.apache.maven.scm.repository.ScmRepository; import org.codehaus.plexus.PlexusTestCase; import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.cli.CommandLineUtils; import org.codehaus.plexus.util.cli.CommandLineUtils.StringStreamConsumer; import org.codehaus.plexus.util.cli.Commandline; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; + /** * Base class for all scm tests. Consumers will typically * extend this class while tck test would extend ScmTckTestCase. @@ -215,11 +216,11 @@ public abstract class ScmTestCase * Execute the command line * * @param workingDirectory not null - * @param executable not null, should be a system command - * @param arguments not null + * @param executable not null, should be a system command + * @param arguments not null * @throws Exception if any * @see CommandLineUtils#executeCommandLine(Commandline, org.codehaus.plexus.util.cli.StreamConsumer, - * org.codehaus.plexus.util.cli.StreamConsumer) + * org.codehaus.plexus.util.cli.StreamConsumer) */ public static void execute( File workingDirectory, String executable, String arguments ) throws Exception @@ -292,10 +293,14 @@ public abstract class ScmTestCase } FileWriter writer = new FileWriter( file ); - - writer.write( contents ); - - writer.close(); + try + { + writer.write( contents ); + } + finally + { + IOUtil.close( writer ); + } } public static Date getDate( int year, int month, int day ) @@ -334,7 +339,6 @@ public abstract class ScmTestCase } /** - * * @param cmd the executable to run, not null. * @return <code>true</code> */ Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java?rev=1306856&r1=1306855&r2=1306856&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java (original) +++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/branch/BranchCommandTckTest.java Thu Mar 29 13:40:58 2012 @@ -26,6 +26,7 @@ import org.apache.maven.scm.command.bran import org.apache.maven.scm.command.checkin.CheckInScmResult; import org.apache.maven.scm.command.checkout.CheckOutScmResult; import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.IOUtil; import java.io.File; import java.io.FileWriter; @@ -45,9 +46,9 @@ public abstract class BranchCommandTckTe { String branch = "test-branch"; - @SuppressWarnings( "deprecation" ) - BranchScmResult branchResult = getScmManager().getProviderByUrl( getScmUrl() ) - .branch( getScmRepository(), new ScmFileSet( getWorkingCopy() ), branch ); + @SuppressWarnings( "deprecation" ) BranchScmResult branchResult = + getScmManager().getProviderByUrl( getScmUrl() ).branch( getScmRepository(), + new ScmFileSet( getWorkingCopy() ), branch ); assertResultIsSuccess( branchResult ); @@ -77,8 +78,9 @@ public abstract class BranchCommandTckTe assertFalse( "check previous assertion copy deleted", getAssertionCopy().exists() ); - checkoutResult = getScmManager().getProviderByUrl( getScmUrl() ) - .checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ), new ScmBranch( branch ) ); + checkoutResult = getScmManager().getProviderByUrl( getScmUrl() ).checkOut( getScmRepository(), + new ScmFileSet( getAssertionCopy() ), + new ScmBranch( branch ) ); assertResultIsSuccess( checkoutResult ); @@ -90,9 +92,13 @@ public abstract class BranchCommandTckTe throws Exception { FileWriter output = new FileWriter( readmeTxt ); - - output.write( "changed file" ); - - output.close(); + try + { + output.write( "changed file" ); + } + finally + { + IOUtil.close( output ); + } } } Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java?rev=1306856&r1=1306855&r2=1306856&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java (original) +++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java Thu Mar 29 13:40:58 2012 @@ -27,6 +27,7 @@ import org.apache.maven.scm.command.add. import org.apache.maven.scm.command.checkin.CheckInScmResult; import org.apache.maven.scm.command.checkout.CheckOutScmResult; import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.IOUtil; import java.io.File; import java.io.FileWriter; @@ -66,9 +67,9 @@ public abstract class CheckInCommandTckT changeReadmeTxt( readmeTxt ); - AddScmResult addResult = getScmManager().add( getScmRepository(), new ScmFileSet( getWorkingCopy(), - "src/main/java/Foo.java", - null ) ); + AddScmResult addResult = getScmManager().add( getScmRepository(), + new ScmFileSet( getWorkingCopy(), "src/main/java/Foo.java", + null ) ); assertResultIsSuccess( addResult ); @@ -88,12 +89,10 @@ public abstract class CheckInCommandTckT assertNotNull( file1 ); assertEquals( ScmFileStatus.CHECKED_IN, file1.getStatus() ); - ScmFile file2 = fileMap.get( "readme.txt" ); assertNotNull( file2 ); assertEquals( ScmFileStatus.CHECKED_IN, file2.getStatus() ); - CheckOutScmResult checkoutResult = getScmManager().checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ) ); @@ -137,14 +136,16 @@ public abstract class CheckInCommandTckT changeReadmeTxt( readmeTxt ); - AddScmResult addResult = getScmManager().getProviderByUrl( getScmUrl() ) - .add( getScmRepository(), new ScmFileSet( getWorkingCopy(), "src/main/java/Foo.java", null ) ); + AddScmResult addResult = getScmManager().getProviderByUrl( getScmUrl() ).add( getScmRepository(), + new ScmFileSet( getWorkingCopy(), + "src/main/java/Foo.java", + null ) ); assertResultIsSuccess( addResult ); - CheckInScmResult result = getScmManager().checkIn( getScmRepository(), - new ScmFileSet( getWorkingCopy(), "**/Foo.java", null ), - "Commit message" ); + CheckInScmResult result = + getScmManager().checkIn( getScmRepository(), new ScmFileSet( getWorkingCopy(), "**/Foo.java", null ), + "Commit message" ); assertResultIsSuccess( result ); @@ -186,20 +187,23 @@ public abstract class CheckInCommandTckT FileWriter output = new FileWriter( fooJava ); PrintWriter printer = new PrintWriter( output ); - - printer.println( "public class Foo" ); - printer.println( "{" ); - - printer.println( " public void foo()" ); - printer.println( " {" ); - printer.println( " int i = 10;" ); - printer.println( " }" ); - - printer.println( "}" ); - - printer.close(); - - output.close(); + try + { + printer.println( "public class Foo" ); + printer.println( "{" ); + + printer.println( " public void foo()" ); + printer.println( " {" ); + printer.println( " int i = 10;" ); + printer.println( " }" ); + + printer.println( "}" ); + } + finally + { + IOUtil.close( output ); + IOUtil.close( printer ); + } } private void createBarJava( File barJava ) Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java?rev=1306856&r1=1306855&r2=1306856&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java (original) +++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java Thu Mar 29 13:40:58 2012 @@ -26,6 +26,7 @@ import org.apache.maven.scm.command.chec import org.apache.maven.scm.command.checkout.CheckOutScmResult; import org.apache.maven.scm.command.tag.TagScmResult; import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.IOUtil; import java.io.File; import java.io.FileWriter; @@ -45,9 +46,9 @@ public abstract class TagCommandTckTest { String tag = "test-tag"; - @SuppressWarnings( "deprecation" ) - TagScmResult tagResult = getScmManager().getProviderByUrl( getScmUrl() ) - .tag( getScmRepository(), new ScmFileSet( getWorkingCopy() ), tag ); + @SuppressWarnings( "deprecation" ) TagScmResult tagResult = + getScmManager().getProviderByUrl( getScmUrl() ).tag( getScmRepository(), new ScmFileSet( getWorkingCopy() ), + tag ); assertResultIsSuccess( tagResult ); @@ -77,8 +78,9 @@ public abstract class TagCommandTckTest assertFalse( "check previous assertion copy deleted", getAssertionCopy().exists() ); - checkoutResult = getScmManager().getProviderByUrl( getScmUrl() ) - .checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ), new ScmTag( tag ) ); + checkoutResult = getScmManager().getProviderByUrl( getScmUrl() ).checkOut( getScmRepository(), + new ScmFileSet( getAssertionCopy() ), + new ScmTag( tag ) ); assertResultIsSuccess( checkoutResult ); @@ -90,9 +92,14 @@ public abstract class TagCommandTckTest throws Exception { FileWriter output = new FileWriter( readmeTxt ); + try + { + output.write( "changed file" ); + } + finally + { + IOUtil.close( output ); + } - output.write( "changed file" ); - - output.close(); } }