3229847 Fix lost focus in Table when refreshing row cache (#12231) 654d570 Don't close an unbound VaadinSession for GAEVaadinServlet (#12209) 2ea19f3 Make VaadinService.closeInactiveUIs set UI threadlocals (#12186) 7f5a0a7 Add Require-Bundle for our rebased atmosphere bundle (#12195)
419c6c7 Implemented Focusable in MenuBar (#7674) a4f1277 Fixed NPE in ApplicationRunnerServlet (#12145) 08d365a Fixed slider value initialization on HSV and RGB tabs of ColorPicker. (#7863) da480bd Fix VaadinService.findUI to throw Error if UIConstants.UI_ID_PARAMETER is not set (#11943) 6291a50 Ensure that Slider diffstate always contains "value" (#12133) 7e7e698 32x32 favicons added, replacing the old favicons (#12143) 1702059 Replace printStackTrace with getLogger().log() (#12147) b421d6e Updated Javadoc for Table.getColumnAlignment fixing #6810 414e3bf Fixed an error in CustomComponent JavaDoc (#10038), and some improvements. 4583d07 Fix NPE in Like.java (#10167) 6c4da29 Ensure table's cells aren't refreshed if table is detached. (#9138) e37464c #11638: Ending an imported SCSS file with a comment causes an error in the Sass 478eeb5 Test using Jetty 9 (#12124) f7cc72d Close only combobox on escape, not the window (#12163) 9a9b0a5 Automatic test for escape closing window from combobox (#12163) ae565a2 Fix bug in PopupDateField where locale was retained incorrectly if changed while popup was open (#12153) d7a64fd Enable native scrolling in home screen apps on iOS 6+ (#12149) 4a04f00 Add test case for testing ClickEvent after dragging button (#7690) 775c969 Make UploadInterruptedException visible (#12070) 6a4bbe5 Set heartbeat response Content-Type to text/plain (#12182) e4011c6 When InputStream cannot be opened while writing static resource response, display 404 instead of 500 (#10920) 20162db Set current instances when calling UI.push from VaadinSession.unlock (#12168) 94c0f86 Ensure VaadinSession.service is set up by storeInSession (#12204) 23ed487 Attempt to get GAE lock for UIDL requests (#12211) 7f52b2e Improved AbstractClientConnector performance (#12219) a934261 Improving performance of ConnectorTracker (#12218)
Fabian Lange [Thu, 13 Jun 2013 13:11:39 +0000 (15:11 +0200)]
When InputStream cannot be opened while writing static resource response, display 404 instead of 500 (#10920)
A security audit revealed that it is possible to trigger an error 500 with
stack trace by just trying a directory traversal. An example of this can be
found in the sampler: http://demo.vaadin.com/sampler/VAADIN/widgetsets/
While there are other scenarios that can produce exceptions, in this place
Vaadin can handle it more graceful by just catching the exception and
returning 404.
Fabian Lange [Wed, 12 Jun 2013 14:48:00 +0000 (16:48 +0200)]
simplified isStaticResourceRequest and improved its performance (#11758)
The previous implementation did first check if the PathInfo was empty (null returned).
This is almost never the case in reality. But if it happens, then the RequestURI would never contain contextRoot+"/VAADIN/".
Next it checked that contextUri was not null, and checked if the Uri started with "/VAADIN/".
This only would have worked in case the context root would have been "".
The next case checked was if the Uri starts with contextRoot+"/VAADIN/".
This is what you normally want to check. The only valid other case from before (contextRoot == "") is also covered by this line.
What you would have seen in normal deployments is:
* First if exit only for first request (http://demo.vaadin.com/sampler/) (and sometimes not even that depending on trailing slash config)
* Second exit only on no context root deployments (getContextRoot() returns "")
* Last exit in all other cases
Additionally, the existing implementation does not work correctly for the case getContextRoot would return null (which thankfully no container does).
Fabian Lange [Thu, 13 Jun 2013 12:51:08 +0000 (14:51 +0200)]
Make UploadInterruptedException visible (#12070)
When another threads interrupts the Upload, the UploadInterruptedException is
thrown. The respective StreamVariable will receive
streamingFailed(StreamingErrorEvent event) which contains the causing exception
via event.getException(). When the UploadInterruptedException is not public, it
is impossible to react on it in the StreamVariable (e.g. treating an
IOException differently from an UploadInterruptedException).
Fabian Lange [Wed, 12 Jun 2013 19:21:31 +0000 (21:21 +0200)]
Support uploading files larger 2GB via drag and drop and file input (#11947).
Vaadin mostly just passes through the value from the Javascript File object
on drag and drop. As per specification (http://www.w3.org/TR/file-upload/#blob)
the size value can be "long". The size attribute of Html5File was already long,
but this patch makes sure long values actually are transported correctly from
the client side Transferable. Additionally, the file upload handling in
FileUploadHandler was determining the length of the upload via the Servlet Spec
getContentLength method of the request. However the spec was written at a time
where 2GB were unthinkable. Luckily containers return this value by querying
the Content-Length header, which can transport values of "long". So instead of
using the Servlet Spec method, FileUploadHandler evaluates the header itself.
AbstractStreamingEvent already was supporting "long" values. For Drag&Drop,
the file size needs to be serialized as double, because long is not supported
in JSNI.
Fabian Lange [Wed, 12 Jun 2013 14:08:48 +0000 (16:08 +0200)]
Add getCacheTime(filename) to VaadinServlet (#11744)
This implementation by default adheres to the GWT Pristine Caching rules
and calculates 0 seconds for ".nocache." and 1 year for ".cache."
filenames. All other filenames will use the value configured in the
deployment configuration.
By exposing this to a method, developers can implement custom naming
schemes. Developers also can opt to set an expires header using this
value.
Artur Signell [Fri, 28 Jun 2013 11:52:58 +0000 (14:52 +0300)]
Merge changes from origin/7.1
3affc37 Enable using @Stylesheet with vaadin:// (#9934) 177c424 Updated Atmosphere dependency to 1.0.14.vaadin2 (#12017, #12033, #12115) dbfb9a3 Add version property to integration tests to servers know if it is a Vaadin 6 or 7 test e371001 Ensure caption is used when child is set to required (#12077) 90ed657 Use atmosphere 1.0.14.vaadin3 which fixes Android 4.1 support (#12101) 6f2db49 Include Atmosphere fix for Android 4.1 (#12101) c4ec786 Things now align better in SimpleTree, for #12058 172d704 Actually show loading indicator during loading (#12128) 6c10136 Use varargs instead of array where appropriate (#4513) 939095a Debug window poll interval claims interval is in seconds and not milliseconds (#12098) 68f025f The 'license.html' file has flaw in the HTML (unclosed span tag) (#11952) c107efc Remove sub window references from Window javadocs (#9892)
Artur Signell [Tue, 18 Jun 2013 19:27:11 +0000 (22:27 +0300)]
Merge changes from origin/7.1
bad3208 Corrected fix and better error checking for action/event request (#12056) a7957df Fixes broken request listeners (#12056) d5dbae8 Exclude external classes and FutureAccess b4fc9bc Define LegacyPropertyToStringMode parameter strings in the enum (#11970) 7fb8080 Don't attempt to run microbenchmarks as unit tests (#8759) 3067b23 DebugWindow sections now use previously empty areas to describe the functionality, for #12058 28f72b6 Highlight on server when highlighting on client, for #12058 86e1a31 VUIDLBrowser no longer requires shift-click to 'highlight component on server', open recursively changed to 'alt-click', for #12058 76b9cd1 DebugWindow styles improved and structured more, for #12058 1befbeb Test using Glassfish 4 (#12075) 78af0eb Specified supported server versions and added Glassfish 4 (#12075) ad9c350 Fixed test issues with type=null (#11895) 8c4800a Updated to atmosphere 1.0.14-vaadin1 2d54adf Highlight on server was still spamming in one instance, for #12058 0754158 Rename getCommunicationMethod -> getCommunicationMethodName (#12019) 8669f6a Actually compile an IE10 permutation (#12080) 47c199f Add 'transport' GET parameter to AbstractTestUI (#12094) b637ab5 Reinitialize pendingAccessQueue after deserialization (#12097)
Add 'transport' GET parameter to AbstractTestUI (#12094)
* Value can be 'xhr', 'websocket', or 'streaming'
* xhr disables push even if already enabled
* others set push to automatic if not already set to manual
Leif Åstrand [Thu, 13 Jun 2013 19:38:42 +0000 (22:38 +0300)]
Merge changes from origin/7.1
da0a112 Merge changes from origin/7.0 6ba8938 Restore legacyPropertyToString value parsing logic (#11970) d5c0ffa Fix NPE when converting null values (#11895) 2aa3096 Avoid string casing problems (#11970) 0f107f3 Update widgetset template (#12053) eb64fda Add support for rem units (#11279) 5f66766 Using StringTokenizer instead of String.split() in AbstractComponent (#8759) 15b217d Handle push disconnections and reconnections more reliably (#11831, #11922) 47addab Adding isIOs and isAndroid to the WebBrowser wrapper around VBrowserDetails (#11168) 0aa5907 Do not write 404 as a response to all action/event requests (#12056) 55ebe13 Detach and attach when adding or removing the caption wrapper (#11708) 7830af2 Fix GridLayout resize after removing caption (#12011) 53e3a25 DebugWindow resize/move improved, fixes #11937 (also implements shift-resize and alt-move, improves bounds-check) f2b2ce9 Updated to Smartsprites 0.2.10 (#12069) 29c9b60 SimpleTree styling changed for #12058 da8382d DebugWindow now remembers open tab/section, InfoSection fixed to support being opened at once, for #12058 4f5bcef Info tab is now tab 1, hierarchy tab 2 a089743 Consistently recover from disconnections in IE (#12073) 59103a9 Always notify parent of enable state changes (#12062) 997e9a9 Fixed test issue apparently caused by three levels of classes 54ffbdb Add missing license header
Handle push disconnections and reconnections more reliably (#11831, #11922)
Client-side:
* Call onOpen() also after a successful reconnection
* Reliably call onClose() and try to reconnect after disconnection
* Don't try to reconnect if !isApplicationRunning() after push
* Queue messages while trying to reconnect (state CONNECT_PENDING)
Server-side:
* Implement AtmosphereResourceEventListener.onDisconnect()
* Push marked as pending until client reconnects (if ever)