[ 
https://jira.codehaus.org/browse/MVERIFIER-12?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Karl Heinz Marbaise closed MVERIFIER-12.
----------------------------------------

    Resolution: Fixed

Issue is solve in the shared component.

> An incomplete fix for the resource leak bugs in Verifier.java
> -------------------------------------------------------------
>
>                 Key: MVERIFIER-12
>                 URL: https://jira.codehaus.org/browse/MVERIFIER-12
>             Project: Maven Verifier Plugin
>          Issue Type: Bug
>    Affects Versions: 1.1
>            Reporter: Guangtai Liang
>            Priority: Critical
>
> The fix revision 1134539 was aimed to remove resource leak bugs on the 
> BufferedReader  object "reader"(created in line 421) in the method 
> "loadFile()", the BufferedReader object "reader" (created in line 1538) of 
> the file 
> "/maven/shared/trunk/maven-verifier/src/main/java/org/apache/maven/it/Verifier.java"
>  , but it is incomplete. 
> There are some problems: 
> 1. when "reader" is not created successfully at line 427 but the temp 
> FileReader object is created successfully at line 427,the temp FileReader 
> object will be leaked. 
> 2. when "reader" is not created successfully at line 1541 but the temp 
> FileReader object is created successfully at line 1541,the temp FileReader 
> object will be leaked. 
> The best way to close such resource objects is putting such close operations 
> for all resource objects in the finaly block of a try-catch-finally structure.
> The problem still exists in the head revision. The buggy code is copied as 
> bellows (the temp objects created at line 427 and 1541 needs to be closed in 
> the finally clause): 
>   416 public List loadFile( File file, boolean hasCommand )
>         throws VerificationException
>     {
>         List lines = new ArrayList();
>         BufferedReader reader = null;
>         if ( file.exists() )
>         {
>             try
>             {
>  427               reader = new BufferedReader( new FileReader( file ) );
>                 String line = reader.readLine();
>                 while ( line != null )
>                 {
>                     line = line.trim();
>                     if ( !line.startsWith( "#" ) && line.length() != 0 )
>                     {
>                         lines.addAll( replaceArtifacts( line, hasCommand ) );
>                     }
>                     line = reader.readLine();
>                 }
>                 reader.close();
>             }
>             catch ( FileNotFoundException e )
>             {
>                 throw new VerificationException( e );
>             }
>             catch ( IOException e )
>             {
>                 throw new VerificationException( e );
>             }
>             finally
>             {
>  454              IOUtil.close( reader );
>             }
>         }
>         return lines;
>     }
>  1535 private void displayLogFile()
>     {
>         System.out.println( "Log file contents:" );
>         BufferedReader reader = null;
>         try
>         {
>  1541           reader = new BufferedReader( new FileReader( new File( 
> getBasedir(), getLogFileName
> () ) ) );
>             String line = reader.readLine();
>             while ( line != null )
>             {
>                 System.out.println( line );
>                 line = reader.readLine();
>             }
>             reader.close();
>         }
>         catch ( FileNotFoundException e )
>         {
>             System.err.println( "Error: " + e );
>         }
>         catch ( IOException e )
>         {
>             System.err.println( "Error: " + e );
>         }
>         finally
>         {
>  1560           IOUtil.close( reader );
>         }
>     }



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Reply via email to