Remove the output from the link step before attempting to
write.  Fixes a problem when the output has been set to
read only permissions.

Review at http://gwt-code-reviews.appspot.com/928801


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8885 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/Link.java b/dev/core/src/com/google/gwt/dev/Link.java
index 47c5d0a..5a38bfe 100644
--- a/dev/core/src/com/google/gwt/dev/Link.java
+++ b/dev/core/src/com/google/gwt/dev/Link.java
@@ -16,6 +16,7 @@
 package com.google.gwt.dev;
 
 import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.core.ext.TreeLogger.Type;
 import com.google.gwt.core.ext.UnableToCompleteException;
 import com.google.gwt.core.ext.linker.Artifact;
 import com.google.gwt.core.ext.linker.ArtifactSet;
@@ -189,6 +190,13 @@
       PermutationResult permResult, File jarFile,
       PrecompileOptions precompileOptions) throws UnableToCompleteException {
     try {
+      if (jarFile.exists()) {
+        boolean success = jarFile.delete();
+        if (!success) {
+          logger.log(Type.ERROR, "Linker output file " + jarFile.getName() 
+              + " already exists and can't be deleted.");
+        }
+      }
       JarOutputStream jar = new JarOutputStream(new FileOutputStream(jarFile));
 
       StandardLinkerContext linkerContext = new StandardLinkerContext(logger,