Andrew Overholt bdf2871
### Eclipse Workspace Patch 1.0
Andrew Overholt bdf2871
#P org.eclipse.jdt.core
Andrew Overholt bdf2871
Index: batch/org/eclipse/jdt/internal/compiler/batch/Main.java
Andrew Overholt bdf2871
===================================================================
Andrew Overholt bdf2871
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java,v
Andrew Overholt bdf2871
retrieving revision 1.327
Andrew Overholt bdf2871
diff -u -r1.327 Main.java
Andrew Overholt bdf2871
--- batch/org/eclipse/jdt/internal/compiler/batch/Main.java	21 Apr 2008 15:00:59 -0000	1.327
Andrew Overholt bdf2871
+++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java	20 Nov 2008 19:26:57 -0000
Andrew Overholt bdf2871
@@ -268,22 +268,22 @@
Andrew Overholt bdf2871
 			if ((startPosition > endPosition)
Andrew Overholt bdf2871
 				|| ((startPosition < 0) && (endPosition < 0))
Andrew Overholt bdf2871
 				|| length == 0)
Andrew Overholt bdf2871
-				return Messages.problem_noSourceInformation; 
Andrew Overholt bdf2871
+				return Messages.problem_noSourceInformation;
Andrew Overholt bdf2871
 
Andrew Overholt bdf2871
 			StringBuffer errorBuffer = new StringBuffer();
Andrew Overholt bdf2871
 			if ((bits & Main.Logger.EMACS) == 0) {
Andrew Overholt bdf2871
-				errorBuffer.append(' ').append(Messages.bind(Messages.problem_atLine, String.valueOf(problem.getSourceLineNumber()))); 
Andrew Overholt bdf2871
+				errorBuffer.append(' ').append(Messages.bind(Messages.problem_atLine, String.valueOf(problem.getSourceLineNumber())));
Andrew Overholt bdf2871
 				errorBuffer.append(Util.LINE_SEPARATOR);
Andrew Overholt bdf2871
 			}
Andrew Overholt bdf2871
 			errorBuffer.append('\t');
Andrew Overholt bdf2871
-			
Andrew Overholt bdf2871
+
Andrew Overholt bdf2871
 			char c;
Andrew Overholt bdf2871
 			final char SPACE = '\u0020';
Andrew Overholt bdf2871
 			final char MARK = '^';
Andrew Overholt bdf2871
 			final char TAB = '\t';
Andrew Overholt bdf2871
 			//the next code tries to underline the token.....
Andrew Overholt bdf2871
 			//it assumes (for a good display) that token source does not
Andrew Overholt bdf2871
-			//contain any \r \n. This is false on statements ! 
Andrew Overholt bdf2871
+			//contain any \r \n. This is false on statements !
Andrew Overholt bdf2871
 			//(the code still works but the display is not optimal !)
Andrew Overholt bdf2871
 
Andrew Overholt bdf2871
 			// expand to line limits
Andrew Overholt bdf2871
@@ -295,11 +295,11 @@
Andrew Overholt bdf2871
 			for (end = endPosition >= length ? length - 1 : endPosition ; end+1 < length; end++) {
Andrew Overholt bdf2871
 				if ((c = unitSource[end + 1]) == '\r' || c == '\n') break;
Andrew Overholt bdf2871
 			}
Andrew Overholt bdf2871
-			
Andrew Overholt bdf2871
+
Andrew Overholt bdf2871
 			// trim left and right spaces/tabs
Andrew Overholt bdf2871
 			while ((c = unitSource[begin]) == ' ' || c == '\t') begin++;
Andrew Overholt bdf2871
 			//while ((c = unitSource[end]) == ' ' || c == '\t') end--; TODO (philippe) should also trim right, but all tests are to be updated
Andrew Overholt bdf2871
-			
Andrew Overholt bdf2871
+
Andrew Overholt bdf2871
 			// copy source
Andrew Overholt bdf2871
 			errorBuffer.append(unitSource, begin, end-begin+1);
Andrew Overholt bdf2871
 			errorBuffer.append(Util.LINE_SEPARATOR).append("\t"); //$NON-NLS-1$
Andrew Overholt bdf2871
@@ -424,7 +424,7 @@
Andrew Overholt bdf2871
 								String.valueOf(generateTime),
Andrew Overholt bdf2871
 								String.valueOf(((int) (generateTime * 1000.0 / time)) / 10.0),
Andrew Overholt bdf2871
 							}));
Andrew Overholt bdf2871
-			}			
Andrew Overholt bdf2871
+			}
Andrew Overholt bdf2871
 		}
Andrew Overholt bdf2871
 		public void logClassFile(boolean generatePackagesStructure, String outputPath, String relativeFileName) {
Andrew Overholt bdf2871
 			if ((this.tagBits & Logger.XML) != 0) {
Andrew Overholt bdf2871
@@ -916,7 +916,7 @@
Andrew Overholt bdf2871
 					this.main.bind("compile.totalTime", //$NON-NLS-1$
Andrew Overholt bdf2871
 						new String[] {
Andrew Overholt bdf2871
 							String.valueOf(time),
Andrew Overholt bdf2871
-						})); 
Andrew Overholt bdf2871
+						}));
Andrew Overholt bdf2871
 			}
Andrew Overholt bdf2871
 			if ((this.main.timing & Main.TIMING_DETAILED) != 0) {
Andrew Overholt bdf2871
 				this.printlnOut(
Andrew Overholt bdf2871
@@ -1119,7 +1119,7 @@
Andrew Overholt bdf2871
 				this.endTag(Logger.STATS);
Andrew Overholt bdf2871
 			}
Andrew Overholt bdf2871
 		}
Andrew Overholt bdf2871
-		
Andrew Overholt bdf2871
+
Andrew Overholt bdf2871
 		private void printTag(String name, HashMap params, boolean insertNewLine, boolean closeTag) {
Andrew Overholt bdf2871
 			if (this.log != null) {
Andrew Overholt bdf2871
 				((GenericXMLWriter) this.log).printTag(name, parameters, true, insertNewLine, closeTag);
Andrew Overholt bdf2871
@@ -1245,12 +1245,12 @@
Andrew Overholt bdf2871
 
Andrew Overholt bdf2871
 	boolean warnJavadocOn;
Andrew Overholt bdf2871
 	boolean warnAllJavadocOn;
Andrew Overholt bdf2871
-	
Andrew Overholt bdf2871
+
Andrew Overholt bdf2871
 	public Compiler batchCompiler;
Andrew Overholt bdf2871
 	/* Bundle containing messages */
Andrew Overholt bdf2871
 	public ResourceBundle bundle;
Andrew Overholt bdf2871
 	protected FileSystem.Classpath[] checkedClasspaths;
Andrew Overholt bdf2871
-	
Andrew Overholt bdf2871
+
Andrew Overholt bdf2871
 	public Locale compilerLocale;
Andrew Overholt bdf2871
 	public CompilerOptions compilerOptions; // read-only
Andrew Overholt bdf2871
 	public CompilationProgress progress;
Andrew Overholt bdf2871
@@ -1299,7 +1299,7 @@
Andrew Overholt bdf2871
 	public static final int TIMING_DISABLED = 0;
Andrew Overholt bdf2871
 	public static final int TIMING_ENABLED = 1;
Andrew Overholt bdf2871
 	public static final int TIMING_DETAILED = 2;
Andrew Overholt bdf2871
-	
Andrew Overholt bdf2871
+
Andrew Overholt bdf2871
 	public int timing = TIMING_DISABLED;
Andrew Overholt bdf2871
 	public CompilerStats[] compilerStats;
Andrew Overholt bdf2871
 	public boolean verbose = false;
Andrew Overholt bdf2871
@@ -1312,7 +1312,7 @@
Andrew Overholt bdf2871
 	// two uses: recognize 'none' in options; code the singleton none
Andrew Overholt bdf2871
 	// for the '-d none' option (wherever it may be found)
Andrew Overholt bdf2871
 	public static final int DEFAULT_SIZE_CLASSPATH = 4;
Andrew Overholt bdf2871
-	
Andrew Overholt bdf2871
+
Andrew Overholt bdf2871
 	public static final String NONE = "none"; //$NON-NLS-1$
Andrew Overholt bdf2871
 
Andrew Overholt bdf2871
 /**
Andrew Overholt bdf2871
@@ -1562,7 +1562,7 @@
Andrew Overholt bdf2871
 }
Andrew Overholt bdf2871
 /**
Andrew Overholt bdf2871
  * Return true if and only if the running VM supports the given minimal version.
Andrew Overholt bdf2871
- * 
Andrew Overholt bdf2871
+ *
Andrew Overholt bdf2871
  * 

This only checks the major version, since the minor version is always 0 (at least for the useful cases).

Andrew Overholt bdf2871
  * 

The given minimalSupportedVersion is one of the constants:

Andrew Overholt bdf2871
  * 
    Andrew Overholt bdf2871
    @@ -2536,8 +2536,8 @@
    Andrew Overholt bdf2871
     		mode = DEFAULT;
    Andrew Overholt bdf2871
     		continue;
    Andrew Overholt bdf2871
     	}
    Andrew Overholt bdf2871
    -	
    Andrew Overholt bdf2871
    -	// set DocCommentSupport, with appropriate side effects on defaults if 
    Andrew Overholt bdf2871
    +
    Andrew Overholt bdf2871
    +	// set DocCommentSupport, with appropriate side effects on defaults if
    Andrew Overholt bdf2871
     	// javadoc is not enabled
    Andrew Overholt bdf2871
     	if (this.enableJavadocOn) {
    Andrew Overholt bdf2871
     		this.options.put(
    Andrew Overholt bdf2871
    @@ -2601,7 +2601,7 @@
    Andrew Overholt bdf2871
     	this.logger.logVersion(printVersionRequired);
    Andrew Overholt bdf2871
     
    Andrew Overholt bdf2871
     	validateOptions(didSpecifyCompliance);
    Andrew Overholt bdf2871
    -	
    Andrew Overholt bdf2871
    +
    Andrew Overholt bdf2871
     	// Enable annotation processing by default in batch mode when compliance is at least 1.6
    Andrew Overholt bdf2871
     	// see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=185768
    Andrew Overholt bdf2871
     	if (!didSpecifyDisabledAnnotationProcessing
    Andrew Overholt bdf2871
    @@ -2609,6 +2609,29 @@
    Andrew Overholt bdf2871
     		this.options.put(CompilerOptions.OPTION_Process_Annotations, CompilerOptions.ENABLED);
    Andrew Overholt bdf2871
     	}
    Andrew Overholt bdf2871
     
    Andrew Overholt bdf2871
    +	{
    Andrew Overholt bdf2871
    +		// If we're building an RPM, force full debugging info to
    Andrew Overholt bdf2871
    +		// be generated, no matter what options have been passed
    Andrew Overholt bdf2871
    +		// by Ant.  This is something of a kludge, but it is far
    Andrew Overholt bdf2871
    +		// better than the alternative, which is having class
    Andrew Overholt bdf2871
    +		// files with debug info mysteriously missing.
    Andrew Overholt bdf2871
    +
    Andrew Overholt bdf2871
    +		String RpmPackageName = System.getenv("RPM_PACKAGE_NAME");
    Andrew Overholt bdf2871
    +		String RpmArch = System.getenv("RPM_ARCH");
    Andrew Overholt bdf2871
    +		String RpmBuildRoot = System.getenv("RPM_BUILD_ROOT");
    Andrew Overholt bdf2871
    +		if (RpmPackageName != null && RpmArch != null && RpmBuildRoot != null) {
    Andrew Overholt bdf2871
    +			this.options.put(
    Andrew Overholt bdf2871
    +					CompilerOptions.OPTION_LocalVariableAttribute,
    Andrew Overholt bdf2871
    +					CompilerOptions.GENERATE);
    Andrew Overholt bdf2871
    +			this.options.put(
    Andrew Overholt bdf2871
    +					CompilerOptions.OPTION_LineNumberAttribute,
    Andrew Overholt bdf2871
    +					CompilerOptions.GENERATE);
    Andrew Overholt bdf2871
    +			this.options.put(
    Andrew Overholt bdf2871
    +					CompilerOptions.OPTION_SourceFileAttribute,
    Andrew Overholt bdf2871
    +					CompilerOptions.GENERATE);
    Andrew Overholt bdf2871
    +		}
    Andrew Overholt bdf2871
    +	}
    Andrew Overholt bdf2871
    +
    Andrew Overholt bdf2871
     	this.logger.logCommandLineArguments(newCommandLineArgs);
    Andrew Overholt bdf2871
     	this.logger.logOptions(this.options);
    Andrew Overholt bdf2871
     
    Andrew Overholt bdf2871
    @@ -2636,7 +2659,7 @@
    Andrew Overholt bdf2871
     			0,
    Andrew Overholt bdf2871
     			classCount);
    Andrew Overholt bdf2871
     	}
    Andrew Overholt bdf2871
    -	
    Andrew Overholt bdf2871
    +
    Andrew Overholt bdf2871
     	setPaths(bootclasspaths,
    Andrew Overholt bdf2871
     			sourcepathClasspathArg,
    Andrew Overholt bdf2871
     			sourcepathClasspaths,
    Andrew Overholt bdf2871
    @@ -2644,7 +2667,7 @@
    Andrew Overholt bdf2871
     			extdirsClasspaths,
    Andrew Overholt bdf2871
     			endorsedDirClasspaths,
    Andrew Overholt bdf2871
     			customEncoding);
    Andrew Overholt bdf2871
    -	
    Andrew Overholt bdf2871
    +
    Andrew Overholt bdf2871
     	if (this.pendingErrors != null) {
    Andrew Overholt bdf2871
     		for (Iterator iterator = this.pendingErrors.iterator(); iterator.hasNext(); ) {
    Andrew Overholt bdf2871
     			String message = (String) iterator.next();
    Andrew Overholt bdf2871
    @@ -3376,7 +3399,7 @@
    Andrew Overholt bdf2871
     	} else if (token.equals("unusedTypeArgs")) { //$NON-NLS-1$
    Andrew Overholt bdf2871
     		this.options.put(
    Andrew Overholt bdf2871
     				CompilerOptions.OPTION_ReportUnusedTypeArgumentsForMethodInvocation,
    Andrew Overholt bdf2871
    -				isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);	
    Andrew Overholt bdf2871
    +				isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
    Andrew Overholt bdf2871
     	} else {
    Andrew Overholt bdf2871
     		addPendingErrors(this.bind("configure.invalidWarning", token)); //$NON-NLS-1$
    Andrew Overholt bdf2871
     	}