The GWT Release Notes

  • 2.7.0
  • 2.7.0 (RC1)
  • 2.6.1
  • 2.6.0
  • 2.6.0 (RC4)
  • 2.6.0 (RC3)
  • 2.6.0 (RC2)
  • 2.6.0 (RC1)
  • 2.5.1
  • 2.5.1 (RC1)
  • 2.5.0
  • 2.5.0 (RC2)
  • 2.5.0 (RC1)
  • 2.4.0
  • 2.3.0
  • 2.3.0 (M1)
  • 2.2.0
  • 2.1.1
  • 2.1.0
  • 2.1.0 (RC1)
  • 2.1.0 (M3)
  • 2.1.0 (M2)
  • 2.1.0 (M1)
  • 2.0.3
  • 2.0.2
  • 2.0.1
  • 2.0.0
  • 2.0.0 (RC2)
  • 2.0.0 (RC1)
  • 1.7.1
  • 1.7.0
  • 1.6.4
  • 1.6.3
  • 1.6.2
  • 1.5.3
  • 1.5.2
  • 1.5.1 (RC2)
  • 1.5.0 (RC)
  • 1.4.60
  • 1.4.59 (RC2)
  • 1.4.10 (RC)
  • 1.3.3
  • 1.3.1 (RC)
  • 1.2.22
  • 1.2.21 (RC)
  • 1.1.10
  • 1.1.0 (RC)
  • 1.0.21

This release fixes issues found while testing RC1.

For details, see the commit logs.

DevMode always starts in Super Dev Mode, so it's not as easy to test in production mode. See issue 9004 for workarounds.

  • Super Dev Mode is now the default. DevMode automatically starts Super Dev Mode and reloading a web page automatically runs the compiler when necessary. (The -noSuperDevMode flag may be used to revert to the old behavior.)

  • Compiling in Super Dev Mode is much faster after the first compile.

  • Experimental support for GSS, also known as Closure Stylesheets. (See below.)

  • gwttar files are incorrect. (Fixed in the next version.)
  • GWT Designer doesn't work with 2.7 and is no longer supported. (Source code is available if someone wishes to revive this project.)

  • IFrameLinker and XSLinker are deprecated because they don‘t work in Super Dev Mode. However, we don’t have suitable replacements for all use cases yet. For updates and possible workarounds, see issue 8997.

  • In draft mode and Super Dev Mode, all compiler optimizations are turned off for better debugging. For example, null pointers are detected sooner.

  • JSNI references no longer require fully qualified class names when this wouldn't be necessary in Java. (For example, imports work.)

  • We‘ve started implementing JS Interop annotations, which will make it much easier to use GWT with JavaScript libraries. The specification is not final and there are bugs, so production GWT apps and libraries should continue to use JSNI for now. If you wish to experiment, you can enable JS Interop using the -XjsInteropMode flag, which is available for the compiler and Super Dev Mode. (It doesn’t work with old DevMode.)

  • The experimental -XmethodNameDisplayMode flag adds a displayName property to each JavaScript function containing the name of the Java method. This makes Java method names available in browser debuggers at the expense of code size. (Also available in Super Dev Mode.)

  • Boxed JavaScript strings (created in JavaScript using new String(...)) are no longer considered equivalent to Java strings. They should be unboxed before being passed to Java.

  • Many bugfixes.

  • Significant performance improvements in String, ArrayList, HashMap, and Exception.

  • New emulated classes: Locale, NavigableSet, and NavigableMap.

  • New emulated methods in Class, String, Exception, RuntimeException, Logger, Arrays, Collections, and Map.Entry.

  • LinkedList extends Deque and handles incorrect usage better.

  • Better wrapping of exceptions thrown from JavaScript.

  • GWT apps that inherit the com.google.gwt.logging.Logging module have different default behavior for messages logged using the java.util.logging package. The new default is to log messages at level SEVERE and above to the browser's console. PopupLogHandler and SystemHandler are no longer enabled by default.

  • FirebugLogHandler and NullLoggingPopup have been removed. ()

The CssResource.enableGss configuration property turns on GSS support.

  • When enabled, resource files with a ‘gss’ extension are parsed as a Closure Stylesheet.

  • When enabled, GSS can be used in a UiBinder file by setting gss=true on a ui:style tag.

  • If the CssResource.legacy configuration property is set, .css resources and ui:style tags without gss=true will first be converted to GSS and then parsed as GSS.

  • The ui:data tag has new attributes: mimeType and doNotEmbed.
  • The rpc.XserializeFinalFields configuration property turns on experimental support for serializing final fields.

  • LinkedHashSet may be serialized without a serialization policy.

  • deRPC is removed.

  • Support overridden methods and generics better.

  • Fix support for @SkipInterfaceValidation on RequestContext methods.

  • Upgraded to CLDR 25.
  • Updated support for typed arrays.

  • Added History.replaceItem().

  • Fixed an issue with Window.addWindowScrollHandler on Chrome.

  • The deprecated com.google.gwt.widgets package is removed.

  • Various bugfixes and minor improvements.

  • The -noSuperDevMode flag may be used to turn off Super Dev Mode and revert to old Dev Mode. (However, most current browsers no longer support Dev Mode plugins.)

  • The -modulePathPrefix flag may be used to move DevMode's output to a subdirectory of the war directory.

  • Compiling is much faster after the first compile. (Compiling is skipped altogether if no files have changed.)

  • The first compile no longer happens at startup.

  • Chrome reloads the page faster while debugging. (Sourcemap file size is reduced.)

  • The -launcherDir flag may be used to avoid running the GWT compiler before starting Super Dev Mode. When enabled, Super Dev Mode writes stub .nocache.js files that automatically recompile the GWT app before loading it. Therefore the bookmarklets aren't needed. (This feature is automatically enabled when launched via DevMode.)

  • The -logLevel flag may be used to adjust how compile errors are reported.

  • The Dev Mode On bookmarklet dialog shows whether Super Dev Mode is turned on for each module on the page.

  • Messages logged using java.util.logging at level SEVERE and above are written to the browser console by default.

  • Fixed a startup failure caused by locked directories on Windows.

  • Better error reporting for compile errors while running tests.

  • Messages logged using java.util.logging at level SEVERE and above are written to the browser console and test output by default.

  • -Dgwt.htmlunit.debug may be used to open a JavaScript debugger window when running a test using HtmlUnit.

  • Removed RunStyleRemoteWeb and the BrowserManager tool.

  • Removed flags: -standardsMode, -nostandardsMode, -quirksMode. (GWTTestCase tests are always run in an HTML page in standards mode.)

For even more detail, see the [Issue Tracker.] (https://code.google.com/p/google-web-toolkit/issues/list?can=1&q=Milestone%3D2_7+status%3AFixed)

  • Java 7 is supported and is now the default. (This can be overridden using
    -sourceLevel 6)
  • GWT Development Mode will no longer be available for Chrome sometime in 2014, so we improved alternate ways of debugging. There are improvements to Super Dev Mode, asserts, console logging, and error messages.
  • Internet Explorer cleanup: IE6/7 support is disabled by default in this release and will be gone in the next major release. IE10 is now a separate permutation.
  • A @GwtIncompatible annotation may be used to mark classes, methods, and fields that the GWT compiler should ignore. (Any annotation with this name can be used, regardless of package.)

Flags have been cleaned up for consistency, but the old flags are still supported for backward compatibility.

  • Arguments may be specified multiple times on the command line and the last one wins.
  • Boolean flags can consistently be disabled using ‘-no’.
  • Experimental flags consistently start with ‘-X’ or ‘-Xno’ to disable.
  • The deprecated -out flags were removed
  • Added flags for turning specific optimizations on and off.
  • The -saveSource and -saveSourceOutput *dest* options may be used to write source files used by the GWT app to an output directory. (Combined with the includeSourceMapUrl config property, it is possible to set up source-level debugging outside Super Dev Mode.)
  • Catching and rethrowing a JavaScript exception no longer wraps it in a Java exception (so the console will print it correctly, etc.)
  • Failed assertions stop in the browser's debugger (if open)
  • Various code size improvements.
  • Fragment merging is more reliable, works with soyc reports
  • GWT.runAsync: passing the same class is allowed, puts the code in the same fragment
  • GWT.runAsync always runs asynchronously; before it would sometimes be synchronous. (This behavior can be reverted by inheriting SynchronousFragmentLoadCallback.gwt.xml)
  • The compiler.splitpoint.leftovermerge.size configuration property sets a minimum size for fragments
  • AsyncProxy is deprecated
  • Various bugfixes
  • JavaScriptObject: added createArray(size)
  • JsMixedArray: getString() fixed for nulls
  • JSNI: Allow line breaks (and other whitespace) within JSNI method references
  • JSNI: Don‘t discard unary ‘+’ when it’s used to cast to a double issue 6373, 3942
  • PropertyOracle: removed deprecated methods
  • JRawType.getImplementedMethods: fixed type parameters for inherited methods
  • java.lang.Class: added getSimpleName()
  • ArrayList.removeRange(): fixed
  • StringBuilder: added appendCodePointInt()
  • StringBuffer/Builder: added reverse()
  • Number subclasses:
    • integer parsing accepts initial ‘+’ (for Java 7 compatibility)
    • add compare methods (for Java 7)
    • fixed isFinite/isInfinite issue 8073
  • java.lang.reflect.Type: added
  • java.util.Objects: added (Java 7)
  • java.sql.Timestamp: fixed NullPointerException in equals() issue 6992
  • GWT.debugger() emits a JavaScript debugger statement
  • GWT.maybeReportUncaughtException() sends an exception to the uncaught exception handler (if any)
  • About: cleaned up
  • ConsoleLogHandler: fixed for IE and Firefox issue 6916, issue 8040
  • Stack traces fixed on iOS.
  • Timer: cancel() fixed for IE6-8 issue 8101
  • The ie6 permutation (which also handles IE 7) is now disabled by default. Support for IE6 and IE7 will be removed in the next major GWT release.

  • Added the ie10 permutation. There's no fallback value, so deferred bindings and conditional CSS that explicitly checks user.agent may need to be updated. (However, note that workarounds needed for previous versions of IE may no longer be necessary.)

  • UserAgent: new class to access user.agent

  • Element methods that return sizes in pixels automatically convert subpixel values to int (for backward compatibility).

  • All API's that used to take com.google.gwt.user.client.Element (which has long been deprecated) now take a com.google.gwt.dom.client.Element instead.

  • DOM methods that take a URL now accept a SafeUri object as well.

  • Node: added removeAllChildren()

  • Element: added toggleClassName()

  • Element.hasTagName() is now case-insensitive

  • Element subclasses: added is() methods, for example DivElement.is(elem)

  • user.client.DOM: deprecate old methods

  • KeyCodes: many more key codes, added isArrowKey()

  • HandlerRegistrations: added compose() method

  • Canvas: added drawImage() overloads, wrap() method

  • Animation: added isRunning()

  • DOM events not known to GWT can handled using Widget.addBitlessDomHandler(). This allows third-party libraries to handle events that GWT itself doesn't know about (such as MsPointerEvents). issue 8379

  • HtmlElementBuilder: supports the <col> tag
  • HtmlBuilderFactory: return types are more specific
  • Builder methods that take a URL now accept SafeUri as well
  • @url now supports ImageResource
  • user.agent values have changed (see Browser permutation changes)
  • @UiHandler works with parameterized types issue 6091
  • @UiHandler works with bindery.event.shared.HandlerRegistration issue 7079
  • CellView: focus fix issue 8359
  • DataGrid fixes: style name, scroll bars issue 8309
  • DatePicker: lots of improvements.
  • DialogBox: fix auto-hide memory leak
  • FileUpload: fixed wrap() method issue 5055
  • HtmlTable,FlexTable,Grid: fixed memory leak in IE9/IE10 issue 6938
  • ListBox.setMultipleSelect undeprecated
  • MenuBar: focus fix issue 3884
  • RootPanel: added clear()
  • SimpleCheckBox: implement HasValue
  • SimplePager: added constructor to hide “first page” button
  • SingleSelectionModel: fixed getSelectedSet
  • SplitLayoutPanel: resizing fix issue 4755
  • SuggestBox:
    • changed to avoid firing events twice issue 3533
    • after selecting, move focus to the next field issue 8051
  • Tree/TreeItem: deprecated methods removed
  • ValueListBox: implement Focusable
  • ValuePicker: fixed setValue() to not fire events issue 7330
  • UiObject.setVisible() only adds aria-hidden for hidden objects
  • Document.{get,set}ScrollLeft(): fixed RTL for Safari and IE9
  • Plural rules updated for some Slavic languages
  • Fixed currency formatting when the currency symbol comes last (the symbol was added twice)
  • Number format constants upgraded to CLDR 21
  • CompositeEditor and subclasses take Editor<? super C>
  • Added support for Maps issue 5524
  • Added support for enums as type parameters in requests
  • Added support for EntityProxyId as a request parameter
  • Fixed a NullPointerException when server returns null issue 8104
  • StackTraceDeobfuscator cleaned up and moved to gwt.core.server
  • Starts the user's preferred browser on Linux
  • Fixed primitive class references in JSNI code (e.g. @int::class)
  • Reduced memory leakage
  • Security: with 2.6 we believe it‘s safe to turn on the Super Dev Mode hook and leave it on in production. As an extra precaution, we recommend setting the devModeUrlWhitelistRegexp configuration property to ensure that it can only load JavaScript from localhost and your developers’ machines in your own domain.

  • Security: automatically disable Super Dev Mode on https pages (Another precaution, and it doesn't work anyway due to mixed-content restrictions.)

  • WebAppCreator now creates Ant projects with a “superdevmode” target and Super Dev Mode enabled.

  • Most sample apps have a “superdevmode” target

  • GWT.log() works and prints basic stack traces

  • sourceUrl comment fixed so that in a JavaScript debugger, the JavaScript source shows up as ‘{module}-0.js’ instead of just ‘0.js’.

  • Grey out unused Java in source code listings on the code server.

  • RemoteServiceServlet: the gwt.codeserver.port parameter may be used to download serialization policies from a Super Dev Mode code server's /policies/ directory. This can be used to avoid some server recompiles when working on GWT-RPC code.

  • Benchmarking and Profile support removed
  • GWTTestCase reports better error messages in many cases
  • GWTTestCase: always use an UTF-8 HTML page
  • GWTTestCase: removed supportsAsync, addCheckpoint, clearCheckpoint, getCheckpoints
  • GWTTestCase now uses its own uncaught exception handler to avoid conflicts when testing code that calls GWT.setUncaughtExceptionHandler.
  • HtmlUnit 2.13
  • Jetty 8.1
  • Servlet 3.0
  • Guava 15.0
  • Protobuf 2.5.0
  • ASM 4.1
  • JDT 3.8.3
  • Closure compiler 20131014

For even more detail, see Changelists up to 2.6.0-rc1 and the issue tracker.

</li>
<br />
<li>Added GWT SDK support for HTML5 local storage</li>
<li>RequestFactory does not fail gracefully for primitive types <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5357">(5357)</a></li>
<li>Allow CellTable headers/footers to be refreshed <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5360">(5360)</a></li>
<li>Need to document what situations source change events <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5361">(5361)</a></li>
<li>Enable tests for RequestFactoryPolymorphicTest <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5364">(5364)</a></li>
<li>Bring history management to Expenses sample <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5366">(5366)</a></li>
<li>Polymorphism not supported by Request Factory <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5367">(5367)</a></li>
<li>Server cannot return unpersisted objects <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5373">(5374)</a></li>
<li>Javadoc polymorphism rules <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5374">(5374)</a></li>
<li>Stopping an ActivityManager from a PlaceChangeEvent might
	cause an NPE <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5375">(5375)</a>
</li>
<li>Why is gwt-servlet.jar a compile-time dependency in the
	pom.xml generated by the expenses.roo script? <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5376">(5376)</a>
</li>
<li>Why does gwt-user.jar have scope "provided" in the pom.xml
	generated by the expenses.roo script? <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5377">(5377)</a>
</li>
<li>Server side domain classes cannot be resolved <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5378">(5378)</a></li>
<li>Confirm logging compiles out of generated scaffold apps <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5379">(5379)</a></li>
<li>Many classes added in 2.1 still have the experimental API
	warnings in their javadoc that need to be removed <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5380">(5380)</a>
</li>
<li>Showcase Cell List show {2} in entries with JDK 1.5 <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5385">(5385)</a></li>
<li>Many stale javadoc warnings of experimental API <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5380">(5380)</a></li>
<li>Instance methods are not looked up properly in the
	OperationRegistry <a
	href="https://code.google.com/p/google-web-toolkit/issues/detail?id=5425">(5425)</a>
</li>
<li><b><a
		href="https://code.google.com/p/google-web-toolkit/issues/list?can=1&q=status%3AFixed%20milestone%3A1_2_Final">Changes
			included in GWT 1.2 since the RC</a></b> <br>Also see the GWT Blog for
	a discussion of the <a
	href="http://googlewebtoolkit.blogspot.com/2006/11/wrapping-up-gwt-12-soon.html">noteworthy
		issues related to 1.2 RC</a></li>
<li><b><a
		href="https://code.google.com/p/google-web-toolkit/issues/list?can=1&q=status%3AFixed%20milestone%3A1_2_RC">New
			features and bug fixes in GWT 1.2 RC</a></b></li>