brett       2005/03/20 22:06:42

  Modified:    maven-mboot2/src/main/java/compile JavacCompiler.java
  Log:
  no need to throw an exception every time there is a compiler error, however 
make sure to process lines starting with "error: " as a compile error
  
  Revision  Changes    Path
  1.6       +23 -14    
maven-components/maven-mboot2/src/main/java/compile/JavacCompiler.java
  
  Index: JavacCompiler.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-mboot2/src/main/java/compile/JavacCompiler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JavacCompiler.java        21 Mar 2005 05:33:52 -0000      1.5
  +++ JavacCompiler.java        21 Mar 2005 06:06:42 -0000      1.6
  @@ -68,11 +68,6 @@
   
           List args = new ArrayList( sources.length + 5 + 
compilerOptions.size() * 2 );
   
  -        if ( config.isDebug() )
  -        {
  -            args.add( "-g" );
  -        }
  -
           args.add( "-d" );
   
           args.add( destinationDir.getAbsolutePath() );
  @@ -83,6 +78,11 @@
   
           args.add( getClasspathString( config.getClasspathEntries() ) );
   
  +        if ( config.isDebug() )
  +        {
  +            args.add( "-g" );
  +        }
  +
           Iterator it = compilerOptions.entrySet().iterator();
   
           while ( it.hasNext() )
  @@ -116,13 +116,14 @@
   
           Boolean ok = (Boolean) compile.invoke( compiler, new Object[] { 
args.toArray( new String[0] ) } );
   
  -        if ( !ok.booleanValue() )
  +        List messages = parseModernStream( new BufferedReader( new 
InputStreamReader( new ByteArrayInputStream( err.toByteArray() ) ) ) );
  +
  +        if ( !ok.booleanValue() && messages.isEmpty() )
           {
  -            throw new Exception( "Failure executing javac: \n\n'javac " + 
args + "'\n\n" + err.toString() );
  +            // TODO: don't throw exception
  +            throw new Exception( "Failure executing javac, but could not 
parse the error:\n\n" + err.toString() );
           }
   
  -        List messages = parseModernStream( new BufferedReader( new 
InputStreamReader( new ByteArrayInputStream( err.toByteArray() ) ) ) );
  -
           return messages;
       }
   
  @@ -147,10 +148,18 @@
                       return errors;
                   }
   
  -                buffer.append( line );
  +                if ( buffer.length() == 0 && line.startsWith( "error: " ) )
  +                {
  +                    errors.add( new CompilerError( line ) );
  +                }
  +                else
  +                {
  +                    buffer.append( line );
   
  -                buffer.append( '\n' );
  -            } while ( !line.endsWith( "^" ) );
  +                    buffer.append( '\n' );
  +                }
  +            }
  +            while ( !line.endsWith( "^" ) );
   
               // add the error bean
               errors.add( parseModernError( buffer.toString() ) );
  @@ -187,7 +196,7 @@
                   endcolumn = context.length();
               }
   
  -            return new CompilerError( file, false, line, startcolumn, line, 
endcolumn, message );
  +            return new CompilerError( file, true, line, startcolumn, line, 
endcolumn, message );
           }
           catch ( NoSuchElementException nse )
           {
  @@ -203,4 +212,4 @@
       {
           return "Sun Javac Compiler";
       }
  -}
  +}
  \ No newline at end of file
  
  
  

Reply via email to