Revision: 6253 Author: rj...@google.com Date: Tue Sep 29 15:03:56 2009 Log: Merge through tr...@6239
http://code.google.com/p/google-web-toolkit/source/detail?r=6253 Modified: /branches/farewellSwt /branches/farewellSwt/branch-info.txt /branches/farewellSwt/dev/core/src/com/google/gwt/core/ext/ServletContainer.java /branches/farewellSwt/dev/core/src/com/google/gwt/core/ext/ServletContainerLauncher.java /branches/farewellSwt/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java /branches/farewellSwt/dev/core/src/com/google/gwt/dev/jjs/impl/JavaScriptObjectNormalizer.java /branches/farewellSwt/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java /branches/farewellSwt/dev/core/src/com/google/gwt/dev/shell/rewrite/RewriteSingleJsoImplDispatches.java /branches/farewellSwt/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerDisableAggressiveOptimization.java /branches/farewellSwt/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerEnableAssertions.java /branches/farewellSwt/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerOutDir.java /branches/farewellSwt/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerWorkDirOptional.java /branches/farewellSwt/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerWorkDirRequired.java /branches/farewellSwt/dev/core/test/com/google/gwt/dev/AboutTest.java /branches/farewellSwt/distro-source/core/src/release_notes.html /branches/farewellSwt/distro-source/mac/src/webAppCreator /branches/farewellSwt/eclipse/samples/Hello/Hello-gwtc.launch /branches/farewellSwt/samples/dynatable/war/DynaTable.css /branches/farewellSwt/samples/dynatable/war/DynaTable.html /branches/farewellSwt/samples/hello/war/Hello.html /branches/farewellSwt/samples/i18n/war/I18N.css /branches/farewellSwt/samples/i18n/war/I18N.html /branches/farewellSwt/samples/json/war/JSON.css /branches/farewellSwt/samples/json/war/JSON.html /branches/farewellSwt/samples/mail/war/Mail.css /branches/farewellSwt/samples/mail/war/Mail.html /branches/farewellSwt/samples/mail/war/gradient.gif /branches/farewellSwt/samples/mail/war/leftCorner.gif /branches/farewellSwt/samples/mail/war/rightCorner.gif /branches/farewellSwt/samples/showcase/war/Showcase.html /branches/farewellSwt/samples/simplerpc/war/SimpleRPC.css /branches/farewellSwt/samples/simplerpc/war/SimpleRPC.html /branches/farewellSwt/samples/simplexml/war/SimpleXML.css /branches/farewellSwt/samples/simplexml/war/SimpleXML.html /branches/farewellSwt/user/src/com/google/gwt/core/client/HttpThrowableReporter.java /branches/farewellSwt/user/src/com/google/gwt/core/client/JsonUtils.java /branches/farewellSwt/user/src/com/google/gwt/event/dom/client/HandlesAllFocusEvents.java /branches/farewellSwt/user/src/com/google/gwt/event/dom/client/HandlesAllKeyEvents.java /branches/farewellSwt/user/src/com/google/gwt/event/dom/client/HandlesAllMouseEvents.java /branches/farewellSwt/user/src/com/google/gwt/event/dom/client/KeyCodes.java /branches/farewellSwt/user/src/com/google/gwt/event/dom/client/PrivateMap.java /branches/farewellSwt/user/src/com/google/gwt/event/logical/shared/HasValueChangeHandlers.java /branches/farewellSwt/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java /branches/farewellSwt/user/src/com/google/gwt/event/logical/shared/ValueChangeHandler.java /branches/farewellSwt/user/src/com/google/gwt/event/shared/DefaultHandlerRegistration.java /branches/farewellSwt/user/src/com/google/gwt/event/shared/GwtEvent.java /branches/farewellSwt/user/src/com/google/gwt/event/shared/HandlerRegistration.java /branches/farewellSwt/user/src/com/google/gwt/junit/JUnitMessageQueue.java /branches/farewellSwt/user/src/com/google/gwt/resources /branches/farewellSwt/user/src/com/google/gwt/resources/client/ClientBundle.java /branches/farewellSwt/user/src/com/google/gwt/resources/ext/ClientBundleFields.java /branches/farewellSwt/user/src/com/google/gwt/resources/ext/ClientBundleRequirements.java /branches/farewellSwt/user/src/com/google/gwt/resources/rebind/context/AbstractClientBundleGenerator.java /branches/farewellSwt/user/src/com/google/gwt/resources/rebind/context/InlineClientBundleGenerator.java /branches/farewellSwt/user/src/com/google/gwt/resources/rebind/context/StaticClientBundleGenerator.java /branches/farewellSwt/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java /branches/farewellSwt/user/src/com/google/gwt/uibinder/rebind/GwtResourceEntityResolver.java /branches/farewellSwt/user/src/com/google/gwt/uibinder/resources/xhtml.ent /branches/farewellSwt/user/src/com/google/gwt/uibinder/sample/client/WidgetBasedUi.ui.xml /branches/farewellSwt/user/src/com/google/gwt/user/RemoteServiceObfuscateTypeNames.gwt.xml /branches/farewellSwt/user/src/com/google/gwt/user/client/ui/ListenerWrapper.java /branches/farewellSwt/user/src/com/google/gwt/user/rebind/StringSourceWriter.java /branches/farewellSwt/user/src/com/google/gwt/user/tools/WebAppCreator.java /branches/farewellSwt/user/test/com/google/gwt/core/client/HttpThrowableReporterTest.java /branches/farewellSwt/user/test/com/google/gwt/dev/jjs/test/jsoimpls/UnreferencedImplOfJsoInterface.java /branches/farewellSwt/user/test/com/google/gwt/dev/jjs/test/jsointfs/JsoInterfaceWithUnreferencedImpl.java /branches/farewellSwt/user/test/com/google/gwt/dev/jjs/test/singlejso/TypeHierarchyTest.java /branches/farewellSwt/user/test/com/google/gwt/event/dom/client/DomEventTest.java /branches/farewellSwt/user/test/com/google/gwt/event/logical/shared/LogicalEventsTest.java /branches/farewellSwt/user/test/com/google/gwt/junit/NonGwtTestSuite.java /branches/farewellSwt/user/test/com/google/gwt/resources /branches/farewellSwt/user/test/com/google/gwt/uibinder/rebind/GwtResourceEntityResolverTest.java /branches/farewellSwt/user/test/com/google/gwt/user/RPCSuiteWithObfuscation.gwt.xml /branches/farewellSwt/user/test/com/google/gwt/user/client/rpc/CollectionsTestWithTypeObfuscation.java /branches/farewellSwt/user/test/com/google/gwt/user/client/rpc/CustomFieldSerializerTestWithTypeObfuscation.java /branches/farewellSwt/user/test/com/google/gwt/user/client/rpc/EnumsTestWithTypeObfuscation.java /branches/farewellSwt/user/test/com/google/gwt/user/client/rpc/InheritanceTestWithTypeObfuscation.java /branches/farewellSwt/user/test/com/google/gwt/user/client/rpc/ObjectGraphTestWithTypeObfuscation.java /branches/farewellSwt/user/test/com/google/gwt/user/client/rpc/RemoteServiceServletTestWithTypeObfuscation.java /branches/farewellSwt/user/test/com/google/gwt/user/client/rpc/UnicodeEscapingTestWithTypeObfuscation.java /branches/farewellSwt/user/test/com/google/gwt/user/client/rpc/ValueTypesTestWithTypeObfuscation.java ======================================= --- /branches/farewellSwt/branch-info.txt Tue Sep 29 11:27:01 2009 +++ /branches/farewellSwt/branch-info.txt Tue Sep 29 15:03:56 2009 @@ -11,3 +11,5 @@ svn merge --ignore-ancestry -r6142:6200 \ https://google-web-toolkit.googlecode.com/svn/trunk (via changes/jat/noswt-merge6200) +svn merge https://google-web-toolkit.googlecode.com/svn/trunk \ + -r6200:6239 . ======================================= --- /branches/farewellSwt/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java Tue Jul 21 18:31:48 2009 +++ /branches/farewellSwt/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java Tue Sep 29 15:03:56 2009 @@ -448,7 +448,6 @@ } } } - jsoSubType.clearImplements(); } } ======================================= --- /branches/farewellSwt/dev/core/src/com/google/gwt/dev/jjs/impl/JavaScriptObjectNormalizer.java Tue Jul 21 18:30:12 2009 +++ /branches/farewellSwt/dev/core/src/com/google/gwt/dev/jjs/impl/JavaScriptObjectNormalizer.java Tue Sep 29 15:03:56 2009 @@ -58,7 +58,8 @@ public void endVisit(JCastOperation x, Context ctx) { JType newType = translate(x.getCastType()); if (newType != x.getCastType()) { - ctx.replaceMe(new JCastOperation(x.getSourceInfo(), newType, x.getExpr())); + ctx.replaceMe(new JCastOperation(x.getSourceInfo(), newType, + x.getExpr())); } } @@ -135,8 +136,8 @@ CloneExpressionVisitor cloner = new CloneExpressionVisitor(program); // instance.jsoMethod(arg, arg) - JMethodCall jsoCall = new JMethodCall(info, cloner.cloneExpression(instance), - jsoMethod); + JMethodCall jsoCall = new JMethodCall(info, + cloner.cloneExpression(instance), jsoMethod); jsoCall.addArgs(cloner.cloneExpressions(x.getArgs())); // Cast.isJavaScriptObject() ? instance.jsoMethod() : @@ -152,7 +153,8 @@ * ... otherwise, if there's only a JSO implementation, we'll just * call that directly. */ - JMethodCall jsoCall = new JMethodCall(info, x.getInstance(), jsoMethod); + JMethodCall jsoCall = new JMethodCall(info, x.getInstance(), + jsoMethod); jsoCall.addArgs(x.getArgs()); ctx.replaceMe(jsoCall); } @@ -177,13 +179,21 @@ private JMethod findConcreteImplementation(JMethod method, JClassType concreteType) { - for (JMethod m : concreteType.getMethods()) { - if (program.typeOracle.getAllOverrides(m).contains(method)) { - if (!m.isAbstract()) { - return m; + /* + * Search supertypes for virtual overrides via subclass. See the javadoc + * on JTypeOracle.getAllVirtualOverrides for an example. + */ + while (concreteType != null) { + for (JMethod m : concreteType.getMethods()) { + if (program.typeOracle.getAllOverrides(m).contains(method)) { + if (!m.isAbstract()) { + return m; + } } } - } + concreteType = concreteType.getSuperClass(); + } + return null; } @@ -205,7 +215,8 @@ JExpression notJsoExpr) { // Cast.isJavaScriptObjectOrString(instance) JMethod isJavaScriptObjectMethod = program.getIndexedMethod("Cast.isJavaScriptObjectOrString"); - JMethodCall isJavaScriptObjectExpr = new JMethodCall(info, null, isJavaScriptObjectMethod); + JMethodCall isJavaScriptObjectExpr = new JMethodCall(info, null, + isJavaScriptObjectMethod); isJavaScriptObjectExpr.addArg(instance); return new JConditional(info, conditionalType, isJavaScriptObjectExpr, isJsoExpr, notJsoExpr); ======================================= --- /branches/farewellSwt/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java Fri Jul 31 13:43:46 2009 +++ /branches/farewellSwt/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java Tue Sep 29 15:03:56 2009 @@ -36,9 +36,9 @@ import com.google.gwt.dev.shell.rewrite.HostedModeClassRewriter; import com.google.gwt.dev.shell.rewrite.HostedModeClassRewriter.InstanceMethodOracle; import com.google.gwt.dev.util.JsniRef; -import com.google.gwt.dev.util.Name.SourceOrBinaryName; -import com.google.gwt.dev.util.Name.InternalName; import com.google.gwt.dev.util.Util; +import com.google.gwt.dev.util.Name.InternalName; +import com.google.gwt.dev.util.Name.SourceOrBinaryName; import com.google.gwt.util.tools.Utility; import org.apache.commons.collections.map.AbstractReferenceMap; @@ -910,6 +910,21 @@ */ String mangledName = getBinaryName(type).replace('.', '_') + "_" + m.getName(); + + JType[] parameterTypes = new JType[m.getParameters().length]; + for (int i = 0; i < parameterTypes.length; i++) { + parameterTypes[i] = m.getParameters()[i].getType(); + } + + /* + * Handle virtual overrides by finding the method that we would normally + * invoke and using its declaring class as the dispatch target. + */ + while (implementingType.findMethod(m.getName(), parameterTypes) == null) { + implementingType = implementingType.getSuperclass(); + } + assert implementingType != null : "Unable to find virtual override for " + + m.toString(); /* * Cook up the a pseudo-method declaration for the concrete type. This @@ -921,9 +936,9 @@ */ String decl = getBinaryOrPrimitiveName(m.getReturnType()) + " " + m.getName() + "$ (" + getBinaryOrPrimitiveName(implementingType); - for (JParameter p : m.getParameters()) { + for (JType paramType : parameterTypes) { decl += ","; - decl += getBinaryOrPrimitiveName(p.getType()); + decl += getBinaryOrPrimitiveName(paramType); } decl += ")"; ======================================= --- /branches/farewellSwt/distro-source/core/src/release_notes.html Tue May 19 08:35:33 2009 +++ /branches/farewellSwt/distro-source/core/src/release_notes.html Tue Sep 29 15:03:56 2009 @@ -28,28 +28,86 @@ <body> <h1>Google Web Toolkit Release Notes</h1> <ul> - <li><a href="#Release_Notes_Current">@GWT_VERSION@</a></li> + <li><a href="#Release_Notes_Current">@GWT_VERSION@</a></li> + <li><a href="#Release_Notes_1_7_0">1.7.0</a></li> + <li><a href="#Release_Notes_1_6_4">1.6.4</a></li> <li><a href="#Release_Notes_1_6_3">1.6.3</a></li> - <li><a href="#Release_Notes_1_6_2">1.6.2</a></li> - <li><a href="#Release_Notes_1_5_3">1.5.3</a></li> - <li><a href="#Release_Notes_1_5_2">1.5.2</a></li> - <li><a href="#Release_Notes_1_5_1">1.5.1 (RC2)</a></li> - <li><a href="#Release_Notes_1_5_0">1.5.0 (RC)</a></li> - <li><a href="#Release_Notes_1_4_60">1.4.60</a></li> - <li><a href="#Release_Notes_1_4_59">1.4.59 (RC2)</a></li> - <li><a href="#Release_Notes_1_4_10">1.4.10 (RC)</a></li> - <li><a href="#Release_Notes_1_3_3">1.3.3</a></li> - <li><a href="#Release_Notes_1_3_1">1.3.1 (RC)</a></li> - <li><a href="#Release_Notes_1_2_22">1.2.22</a></li> - <li><a href="#Release_Notes_1_2_11">1.2.21 (RC)</a></li> - <li><a href="#Release_Notes_1_1_10">1.1.10</a></li> - <li><a href="#Release_Notes_1_1_0">1.1.0 (RC)</a></li> - <li><a href="#Release_Notes_1_0_21">1.0.21</a></li> + <li><a href="#Release_Notes_1_6_2">1.6.2</a></li> + <li><a href="#Release_Notes_1_5_3">1.5.3</a></li> + <li><a href="#Release_Notes_1_5_2">1.5.2</a></li> + <li><a href="#Release_Notes_1_5_1">1.5.1 (RC2)</a></li> + <li><a href="#Release_Notes_1_5_0">1.5.0 (RC)</a></li> + <li><a href="#Release_Notes_1_4_60">1.4.60</a></li> + <li><a href="#Release_Notes_1_4_59">1.4.59 (RC2)</a></li> + <li><a href="#Release_Notes_1_4_10">1.4.10 (RC)</a></li> + <li><a href="#Release_Notes_1_3_3">1.3.3</a></li> + <li><a href="#Release_Notes_1_3_1">1.3.1 (RC)</a></li> + <li><a href="#Release_Notes_1_2_22">1.2.22</a></li> + <li><a href="#Release_Notes_1_2_11">1.2.21 (RC)</a></li> + <li><a href="#Release_Notes_1_1_10">1.1.10</a></li> + <li><a href="#Release_Notes_1_1_0">1.1.0 (RC)</a></li> + <li><a href="#Release_Notes_1_0_21">1.0.21</a></li> </ul> <hr/> <a name="Release_Notes_Current"></a> <h2>Release Notes for @GWT_VERSION@</h2> + <p> + This release adds support for Mac OS X version 10.6 (Snow Leopard) by allowing hosted mode to run with a 1.6 JRE in 32-bit + mode (using the -d32 flag). + </p> + <h3>Fixed Issues</h3> + <ul> + <li> + Allow hosted mode using a 1.6 JRE with the -d32 flag + (<a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3843">#3843</a>, + <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3998">#3998</a>) + </li> + </ul> + + <hr/> + <a name="Release_Notes_1_7_0"></a> + <h2>Release Notes for 1.7.0</h2> + <p> + This release adds explicit support for Internet Explorer 8, Firefox 3.5, and Safari 4 as well as a few high-priority bug fixes. + In all other respects, it is very similar to GWT 1.6. + Note, however, that this release is version 1.7.0 rather than version 1.6.5 to signify a potentially breaking change for libraries + that use deferred binding to specialize code based on user agent (see the next section for technical details). + </p> + <h3>Potentially breaking changes and fixes</h3> + <ul> + <li> + This release includes explicit support for IE8, which has some significant behavioral changes from prior versions of IE. + These changes are great enough that the new value <code>ie8</code> has been added for the <code>user.agent</code> deferred binding client property. + If you have deferred binding rules (i.e. <code><replace-with></code> or <code><generate-with></code>) or property providers + that are sensitive to <code>user.agent</code>, you may need to update them to account for the <code>ie8</code> value. + For more information, see the <a href="http://code.google.com/p/google-web-toolkit/wiki/IE8Support">technical notes</a>. + </li> + </ul> + + <h3>Fixed Issues</h3> + <ul> + <li> + Updated GWT libraries to support IE8 + (<a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3558">#3558</a>, + <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3329">#3329</a>) + </li> + <li>Native exception in Node.is() (<a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3644">#3644</a>)</li> + <li> + Incorrect firing of two click events from CheckBox and a related issue + (<a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3508">#3508</a>, + <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3679">#3679</a>) + </li> + <li>Compiler java.lang.StackOverflowError if you don't use -Xss to set a stack size (<a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3510">#3510</a>)</li> + <li>Mouse wheel in FF3 (<a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=2902">#2902</a>)</li> + <li>GWT outputs expressions too long for WebKit (<a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3455">#3455</a>)</li> + <li>java.sql.Date.valueOf error (<a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3731">#3731</a>)</li> + <li>Added a workaround for Firefox 3.5 regression (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=497780">bugzilla #497780</a>)</li> + </ul> + + <hr/> + <a name="Release_Notes_1_6_4"></a> + <h2>Release Notes for 1.6.4</h2> <h3>Fixed Issues</h3> <ul> <li>The classpath in the scripts created by junitCreator was updated to refer to <code>/war/WEB-INF/classes</code> rather than <code>/bin</code>.</li> ======================================= --- /branches/farewellSwt/samples/mail/war/leftCorner.gif Mon Mar 16 16:27:28 2009 +++ /branches/farewellSwt/samples/mail/war/leftCorner.gif Tue Sep 29 15:03:56 2009 Binary file, no diff available. ======================================= --- /branches/farewellSwt/samples/mail/war/rightCorner.gif Mon Mar 16 16:27:28 2009 +++ /branches/farewellSwt/samples/mail/war/rightCorner.gif Tue Sep 29 15:03:56 2009 Binary file, no diff available. ======================================= --- /branches/farewellSwt/user/src/com/google/gwt/junit/JUnitMessageQueue.java Tue Sep 29 11:27:01 2009 +++ /branches/farewellSwt/user/src/com/google/gwt/junit/JUnitMessageQueue.java Tue Sep 29 15:03:56 2009 @@ -306,7 +306,7 @@ buf.append('\n'); } - if (!results.containsKey(clientStatus.clientId)) { + if (results == null | | !results.containsKey(clientStatus.clientId)) { buf.append(" - NO RESPONSE: "); } else { buf.append(" - (ok): "); ======================================= ***Additional files exist in this changeset.*** --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---