Artur Signell [Mon, 19 Aug 2013 09:37:52 +0000 (12:37 +0300)]
Merge changes from origin/7.1
7cb49d1 Fix invisible calendar actions menu #12181 44aacf4 Clarify Embedded javadoc (#12290) 59a043b Fix actions in action menu appearing in random order #12250 5d57129 Fix calendar click events on context menu #12297 f5e3663 Document multiple load semantics in @StyleSheet and @JavaScript (#12200) 17bb700 Add optional OSGi Import-Package for javax.validation (#12301) ea148c8 Disable all logging if production mode is enabled (#12299) 326bbb5 Fixes parsing of multiple push messages in streaming mode (#12197) 7fc1054 Ensure StringToIntegerConverter rejects values outside range of int (#12230) f587298 Improve URI fragment listener javadocs (#12296) d97cfbc Refine handling of null and empty URI fragments (#12207) 99c7d0b Show tooltips for ordered layout captions (#10046)
Artur Signell [Mon, 19 Aug 2013 09:34:29 +0000 (12:34 +0300)]
Merge changes from origin/7.1
a53d487 Verify the connector hierarchy if assertions are enabled (#12271) e9f3fcc Fix issue with hidden component cells in Table and TreeTable #12119 cbab936 Fixes light theme window sprites #12171 938d412 Fixes button :active state on firefox #12126 4219227 Fixed wrong classname in WindowThemes TB test #12171
John Ahlroos [Thu, 15 Aug 2013 13:27:27 +0000 (16:27 +0300)]
Fixed WAI-ARIA test related to #11820 which never has succeeded
Due to Testbench bug #12375 the test had never succeed on IE9/IE10.
To circumvent the issue I changed the way the test was done by
substituting the /@class assertion with an xpath statement instead which
works on all supported browsers.
John Ahlroos [Thu, 15 Aug 2013 09:39:46 +0000 (12:39 +0300)]
Fixed WAI-ARIA test related to #11821 which never has succeeded
Due to Testbench bug #12375 the test had never succeed on IE9/IE10.
To circumvent the issue I changed the way the test was done by
substituting the /@class assertion with an xpath statement instead which
works on all supported browsers.
John Ahlroos [Thu, 15 Aug 2013 06:32:54 +0000 (09:32 +0300)]
Fixes tests broken by accessability fixes #11874 and #11820
Both WAI-ARIA fixes improves the accessability by adding a hidden
element into the dom for the screen readers. Unfortunatly this
broke tests based on a certain DOM path.
Matti Hosio [Mon, 15 Jul 2013 12:56:07 +0000 (15:56 +0300)]
Support for null intermediate beans in NestedMethodProperty (#11435)
Allows intermediate beans to return null in the NestedMethodProperty.
The feature is not enabled by default and thus should be fully backwards
compatible.
Fabian Lange [Wed, 17 Jul 2013 09:44:57 +0000 (11:44 +0200)]
Fixes parsing of multiple push messages in streaming mode (#12197)
The current atmosphere code can handle messages split up using the message
length header. But it does not handle the case where the header is actually
split up itself.
This patch solves it by making sure the length header stays intact.
Corresponding atmosphere ticket:
https://github.com/Atmosphere/atmosphere/issues/1199
Jarno Rantala [Wed, 26 Jun 2013 11:56:54 +0000 (14:56 +0300)]
BeanValidator changed to throw exception with array of causes (#11324)
BeanValidator was modified to throw InvalidValueException with array of causes
instead of exception with one message including HTML. This way
AbstractErrorMessage is able to create correct error notification message with
multiple lines.
John Ahlroos [Fri, 26 Jul 2013 08:07:36 +0000 (11:07 +0300)]
Fixes button :active state on firefox #12126
When doing event.preventDefault() firefox will not trigger the :active
selector intentionally (see
https://bugzilla.mozilla.org/show_bug.cgi?id=771241).
Event.preventDefault() was added to prevent text selection in #10917
but it actually is not needed since the button also uses the
user-select:none css attribute which effectivly prevents the text selection.
Also now applying the previously browser specific (ie,opera) .v-pressed
classname to all browsers to make styling of the pressed state a bit easier
to do for all browsers and not reliant on the :active pseudo-class which is a
non-standard pseudo-class.
John Ahlroos [Thu, 25 Jul 2013 06:53:50 +0000 (09:53 +0300)]
Fixes light theme window sprites #12171
The close buttons images for the Window black theme was mistakenly
added to the white theme sprite and ended up in the middle of the
light theme window. Moved the black theme button images to the
black theme sprite.
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)