Upgrade minimum java version for GWT to 1.7.

GWT 2.7 is declared as the last Java 6 compatible release
and we are already started using Java 7 specific APIs.

Change-Id: I6d85c8d845292ff4baee0743c6bfc6c54fd1305a
diff --git a/common.ant.xml b/common.ant.xml
index 7bdf6ee..3cbf7c6 100755
--- a/common.ant.xml
+++ b/common.ant.xml
@@ -56,8 +56,8 @@
   <property name="javac.debug" value="true"/>
   <property name="javac.debuglevel" value="lines,vars,source"/>
   <property name="javac.encoding" value="utf-8"/>
-  <property name="javac.source" value="1.6"/>
-  <property name="javac.target" value="1.6"/>
+  <property name="javac.source" value="1.7"/>
+  <property name="javac.target" value="1.7"/>
   <property name="javac.nowarn" value="true"/>
   <property name="junit.out" location="${project.build}/test"/>
   <property name="emma.dir" value="${gwt.tools.redist}/emma"/>
diff --git a/dev/BUILD b/dev/BUILD
index abab9ca..f0ec39a 100644
--- a/dev/BUILD
+++ b/dev/BUILD
@@ -131,11 +131,6 @@
         ["core/src/**/*.java"],
         exclude = ["**/package-info.java"],
     ),
-    # Temporary workaround to ensure Java 6 compatible class files after Java
-    # 7 upgrade.
-    # TODO: only the requestfactory client should be required to be Android
-    # compatible.
-    constraints = ["android"],
     deps = [
         ":compiler.standalone.super",
         "//third_party/java_src/gwt/svn/tools:dev_deps",
diff --git a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
index fb78490..55f4719 100644
--- a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
@@ -757,7 +757,6 @@
    */
   private static final Map<SourceLevel, Long> jdtLevelByGwtLevel =
       ImmutableMap.<SourceLevel, Long>of(
-          SourceLevel.JAVA6, ClassFileConstants.JDK1_6,
           SourceLevel.JAVA7, ClassFileConstants.JDK1_7,
           SourceLevel.JAVA8, ClassFileConstants.JDK1_8);
 
diff --git a/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java b/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java
index ca3a955..14d2188 100644
--- a/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java
+++ b/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java
@@ -26,7 +26,6 @@
  */
 public enum SourceLevel {
   // Source levels must appear in ascending order for the default setting logic to work.
-  JAVA6("1.6", "6"),
   JAVA7("1.7", "7"),
   JAVA8("1.8", "8");
 
diff --git a/dev/core/test/com/google/gwt/dev/CompilerTest.java b/dev/core/test/com/google/gwt/dev/CompilerTest.java
index 6ce54ac..dafa666 100644
--- a/dev/core/test/com/google/gwt/dev/CompilerTest.java
+++ b/dev/core/test/com/google/gwt/dev/CompilerTest.java
@@ -811,13 +811,11 @@
   }
 
   public void testSourceLevelSelection() {
-    // We are not able to compile to less that Java 6 so, we might as well do Java7 on
-    // these cases.
     assertEquals(SourceLevel.JAVA7, SourceLevel.getBestMatchingVersion("1.4"));
     assertEquals(SourceLevel.JAVA7, SourceLevel.getBestMatchingVersion("1.5"));
+    assertEquals(SourceLevel.JAVA7, SourceLevel.getBestMatchingVersion("1.6"));
+    assertEquals(SourceLevel.JAVA7, SourceLevel.getBestMatchingVersion("1.6_26"));
 
-    assertEquals(SourceLevel.JAVA6, SourceLevel.getBestMatchingVersion("1.6"));
-    assertEquals(SourceLevel.JAVA6, SourceLevel.getBestMatchingVersion("1.6_26"));
     assertEquals(SourceLevel.JAVA7, SourceLevel.getBestMatchingVersion("1.7"));
     assertEquals(SourceLevel.JAVA8, SourceLevel.getBestMatchingVersion("1.8"));
     assertEquals(SourceLevel.JAVA8, SourceLevel.getBestMatchingVersion("1.9"));
diff --git a/tools/api-checker/config/gwt27_28userApi.conf b/tools/api-checker/config/gwt27_28userApi.conf
index b27ed0e..196b577 100644
--- a/tools/api-checker/config/gwt27_28userApi.conf
+++ b/tools/api-checker/config/gwt27_28userApi.conf
@@ -91,7 +91,6 @@
 :**/server/**\
 :**/tools/**\
 :**/vm/**\
-:user/src/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java\
 :user/src/com/google/gwt/core/client/impl/WeakMapping.java\
 :user/src/com/google/gwt/core/shared/impl/ThrowableTypeResolver.java\
 :user/src/com/google/gwt/i18n/**/impl/cldr/**\
diff --git a/user/BUILD b/user/BUILD
index b4ff116..72025a7 100644
--- a/user/BUILD
+++ b/user/BUILD
@@ -288,7 +288,6 @@
             "src/com/google/gwt/core/client/JsDate.java",
             "src/com/google/gwt/core/client/Duration.java",
             "src/com/google/gwt/core/client/Scheduler.java",
-            "src/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java",
             "src/com/google/gwt/user/client/Window.java",
             "src/com/google/gwt/user/client/Window*.java",
             "src/com/google/gwt/user/client/BaseListenerWrapper.java",
diff --git a/user/src/com/google/gwt/core/client/JavaScriptException.java b/user/src/com/google/gwt/core/client/JavaScriptException.java
index 1350037..1395541 100644
--- a/user/src/com/google/gwt/core/client/JavaScriptException.java
+++ b/user/src/com/google/gwt/core/client/JavaScriptException.java
@@ -15,8 +15,6 @@
  */
 package com.google.gwt.core.client;
 
-import com.google.gwt.core.client.impl.JavaScriptExceptionBase;
-
 /**
  * Any JavaScript exceptions occurring within JSNI methods are wrapped as this
  * class when caught in Java code. The wrapping does not occur until the
@@ -43,7 +41,7 @@
  * }
  * </pre>
  */
-public final class JavaScriptException extends JavaScriptExceptionBase {
+public final class JavaScriptException extends RuntimeException {
 
   private static final Object NOT_SET = new Object();
 
@@ -110,6 +108,9 @@
    *          trace
    */
   public JavaScriptException(Object e, String description) {
+    // Stack trace is writeable for outside just for classic devmode but otherwise it is not and we
+    // don't want unnecessary fillInStackTrace calls from super constructor as well.
+    super(null, null, true, !GWT.isScript());
     this.e = e;
     this.description = description;
   }
diff --git a/user/src/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java b/user/src/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java
deleted file mode 100644
index 11362f1..0000000
--- a/user/src/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.core.client.impl;
-
-/**
- * A helper to super-source just the parent constructor call that doesn't exist in Java6.
- */
-public class JavaScriptExceptionBase extends RuntimeException {
-
-  public JavaScriptExceptionBase() {
-    super(null, null);
-  }
-
-  public JavaScriptExceptionBase(String message) {
-    super(message);
-  }
-}
diff --git a/user/src/com/google/gwt/uibinder/rebind/model/ImplicitCssResource.java b/user/src/com/google/gwt/uibinder/rebind/model/ImplicitCssResource.java
index 894e01a..eb3f08c 100644
--- a/user/src/com/google/gwt/uibinder/rebind/model/ImplicitCssResource.java
+++ b/user/src/com/google/gwt/uibinder/rebind/model/ImplicitCssResource.java
@@ -52,22 +52,17 @@
  */
 public class ImplicitCssResource {
 
-  /**
-   * Class wrapping code using GSS in order to keep Java6 compatibility if GSS is not used.
-   */
-  private static class GssWrapper {
-    private static Set<String> getCssClassNames(String fileName, String cssSource,
-        Set<JClassType> imports, TreeLogger logger) throws UnableToCompleteException {
-      SourceCode sourceCode = new SourceCode(fileName, cssSource);
-      CssTree tree;
-      try {
-        tree = new GssParser(sourceCode).parse();
-      } catch (GssParserException e) {
-        logger.log(TreeLogger.ERROR, "Unable to parse CSS", e);
-        throw new UnableToCompleteException();
-      }
-      return new ClassNamesCollector().getClassNames(tree, imports);
+  private static Set<String> getCssClassNames(String fileName, String cssSource,
+      Set<JClassType> imports, TreeLogger logger) throws UnableToCompleteException {
+    SourceCode sourceCode = new SourceCode(fileName, cssSource);
+    CssTree tree;
+    try {
+      tree = new GssParser(sourceCode).parse();
+    } catch (GssParserException e) {
+      logger.log(TreeLogger.ERROR, "Unable to parse CSS", e);
+      throw new UnableToCompleteException();
     }
+    return new ClassNamesCollector().getClassNames(tree, imports);
   }
 
   private static final CssNameConverter nameConverter = new CssNameConverter();
@@ -132,8 +127,7 @@
       assert urls.size() > 0;
 
       if (gss) {
-       return GssWrapper.getCssClassNames(bodyFile.getName(), body, imports,
-           logger.getTreeLogger());
+       return getCssClassNames(bodyFile.getName(), body, imports, logger.getTreeLogger());
       } else {
         CssStylesheet sheet = GenerateCssAst.exec(logger.getTreeLogger(),
             urls.toArray(new URL[urls.size()]));
diff --git a/user/super/com/google/gwt/core/translatable/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java b/user/super/com/google/gwt/core/translatable/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java
deleted file mode 100644
index 18fb8dd..0000000
--- a/user/super/com/google/gwt/core/translatable/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.core.client.impl;
-
-import com.google.gwt.core.client.GwtScriptOnly;
-
-/**
- * A super-source version of JavaScriptExceptionBase so that we can call super constructor that
- * disables #fillInStackTrace without breaking Java6 compatibility.
- */
-@GwtScriptOnly
-public class JavaScriptExceptionBase extends RuntimeException {
-
-  public JavaScriptExceptionBase() {
-    // Stack trace is not-writeable from outside and we don't want unnecessary fillInStackTrace
-    // calls from super constructor as well.
-    super(null, null, true, false);
-  }
-
-  public JavaScriptExceptionBase(String message) {
-    super(message);
-  }
-}