Drag and Drop Upload via StreamVariable broken in Internet Explorer?

Hi,

we have a problem when uploading files via Drag&Drop and StreamVariable in Internet Explorer.
Chrome and Firefox work fine!

Vaadin Version: 7.4.5
Server: Wildfly 8.2

When you drag some bigger files to vaadin for upload (make sure the upload takes some time) and then start to use other vaadin-components, e.g. a CheckBox, the streamingFinished method gets called, while the file is not full streamd yet.
[
11:34:02,284 INFO [stdout]
(default task-64) Streaming Finished - ContentLength: 76324232 - Bytes Received: 15204352
]

This results in defect files…

Serverlog (dragged 5 files with a size of arround 72MB for upload - while uploading just changing the value of a ComboBox):

11:34:00,812 INFO  [stdout]
 (default task-55) Streaming Started - ContentLength: 76324232 - Bytes Received: 0

11:34:01,250 INFO  [stdout]
 (default task-55) Streaming Finished - ContentLength: 76324232 - Bytes Received: 76324232

11:34:01,251 INFO  [stdout]
 (default task-57) Streaming Started - ContentLength: 76324232 - Bytes Received: 0

11:34:01,458 INFO  [stdout]
 (default task-57) Streaming Finished - ContentLength: 76324232 - Bytes Received: 76324232

11:34:01,474 INFO  [stdout]
 (default task-60) Streaming Started - ContentLength: 76324232 - Bytes Received: 0

11:34:01,843 INFO  [stdout]
 (default task-60) Streaming Finished - ContentLength: 76324232 - Bytes Received: 76324232

11:34:01,861 INFO  [stdout]
 (default task-62) Streaming Started - ContentLength: 76324232 - Bytes Received: 0

11:34:02,225 INFO  [stdout]
 (default task-62) Streaming Finished - ContentLength: 76324232 - Bytes Received: 76324232

11:34:02,245 INFO  [stdout]
 (default task-64) Streaming Started - ContentLength: 76324232 - Bytes Received: 0

11:34:02,284 INFO  [stdout]
 (default task-64) Streaming Finished - ContentLength: 76324232 - Bytes Received: [b]
15204352
[/b]

11:34:02,287 SEVERE [com.vaadin.server.DefaultErrorHandler]
 (default task-64) : java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert
durch den Hostcomputer abgebrochen
    at sun.nio.ch.SocketDispatcher.write0(Native Method) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at sun.nio.ch.IOUtil.write(IOUtil.java:65) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:152)
    at io.undertow.server.protocol.http.HttpResponseConduit.write(HttpResponseConduit.java:575) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.conduits.ChunkedStreamSinkConduit.flush(ChunkedStreamSinkConduit.java:260) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
    at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:118) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
    at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:609) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at com.vaadin.server.communication.FileUploadHandler.sendUploadResponse(FileUploadHandler.java:684) [vaadin-server-7.4.5.jar:7.4.5]

    at com.vaadin.server.communication.FileUploadHandler.doHandleXhrFilePost(FileUploadHandler.java:513) [vaadin-server-7.4.5.jar:7.4.5]

    at com.vaadin.server.communication.FileUploadHandler.handleRequest(FileUploadHandler.java:291) [vaadin-server-7.4.5.jar:7.4.5]

    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408) [vaadin-server-7.4.5.jar:7.4.5]

    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350) [vaadin-server-7.4.5.jar:7.4.5]

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]

    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.SessionRestoringHandler.handleRequest(SessionRestoringHandler.java:119) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletInitialHandler.jrHandle(ServletInitialHandler.java) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at org.zeroturnaround.javarebel.integration.servlet.undertow.cbp.ServletInitialHandlerCBP.handleRequest(ServletInitialHandlerCBP.java:104) [undertow-servlet-jr-plugin-6.2.0.jar:]

    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:1.8.0_05]

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:1.8.0_05]

    at java.lang.Thread.run(Thread.java:745) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:1.8.0_05]


11:34:02,290 ERROR [io.undertow.request]
 (default task-64) UT005023: Exception handling request to /hospitools/APP/UPLOAD/0/3/rec-4/bd1c3602-abda-4725-bc06-af7c1359a0af: javax.servlet.ServletException: com.vaadin.server.ServiceException: java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert
durch den Hostcomputer abgebrochen
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:352) [vaadin-server-7.4.5.jar:7.4.5]

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]

    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.SessionRestoringHandler.handleRequest(SessionRestoringHandler.java:119) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletInitialHandler.jrHandle(ServletInitialHandler.java) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at org.zeroturnaround.javarebel.integration.servlet.undertow.cbp.ServletInitialHandlerCBP.handleRequest(ServletInitialHandlerCBP.java:104) [undertow-servlet-jr-plugin-6.2.0.jar:]

    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:1.8.0_05]

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:1.8.0_05]

    at java.lang.Thread.run(Thread.java:745) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:1.8.0_05]

Caused by: com.vaadin.server.ServiceException: java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert
durch den Hostcomputer abgebrochen
    at com.vaadin.server.VaadinService.handleExceptionDuringRequest(VaadinService.java:1463) [vaadin-server-7.4.5.jar:7.4.5]

    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1420) [vaadin-server-7.4.5.jar:7.4.5]

    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350) [vaadin-server-7.4.5.jar:7.4.5]

    ... 33 more
Caused by: java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert
durch den Hostcomputer abgebrochen
    at sun.nio.ch.SocketDispatcher.write0(Native Method) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at sun.nio.ch.IOUtil.write(IOUtil.java:65) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [jrebel-bootstrap-c2164949f71c428b8f15525463f30f3b.jar:]

    at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:152)
    at io.undertow.server.protocol.http.HttpResponseConduit.write(HttpResponseConduit.java:575) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at io.undertow.conduits.ChunkedStreamSinkConduit.flush(ChunkedStreamSinkConduit.java:260) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
    at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:118) [undertow-core-1.1.0.Final.jar:1.1.0.Final]

    at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
    at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:609) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]

    at com.vaadin.server.communication.FileUploadHandler.sendUploadResponse(FileUploadHandler.java:684) [vaadin-server-7.4.5.jar:7.4.5]

    at com.vaadin.server.communication.FileUploadHandler.doHandleXhrFilePost(FileUploadHandler.java:513) [vaadin-server-7.4.5.jar:7.4.5]

    at com.vaadin.server.communication.FileUploadHandler.handleRequest(FileUploadHandler.java:291) [vaadin-server-7.4.5.jar:7.4.5]

    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408) [vaadin-server-7.4.5.jar:7.4.5]

    ... 34 more

Code to reproduce:

package de.web.test;

import java.io.OutputStream;
import java.util.Arrays;
import java.util.List;

import org.apache.commons.io.output.ByteArrayOutputStream;

import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptAll;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.server.StreamVariable;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.Component;
import com.vaadin.ui.DragAndDropWrapper;
import com.vaadin.ui.Html5File;
import com.vaadin.ui.Panel;
import com.vaadin.ui.VerticalLayout;

public class TestUploadLayout extends VerticalLayout {
    private static final long serialVersionUID = 1L;

    @Override
    public void attach() {
        super.attach();

        setMargin(true);
        setSpacing(true);
        
        ComboBox comboBox = new ComboBox();
        for (int i = 0; i < 10; i++) {
            comboBox.addItem("Test " + i);
        }
        addComponent(comboBox);
        
        Panel p = new Panel();
        p.setHeight(200, Unit.PIXELS);
        p.setWidth(200, Unit.PIXELS);
        MyUploadPanel myUploadPanel = new MyUploadPanel(p);
        addComponent(myUploadPanel);
    }
    
    class MyUploadPanel extends DragAndDropWrapper implements DropHandler{
        private static final long serialVersionUID = 1L;
        
        public MyUploadPanel(Component root) {
            super(root);
            setDropHandler(this);
        }

        @Override
        public void drop(DragAndDropEvent event) {
            WrapperTransferable tr = (WrapperTransferable) event.getTransferable();
            Html5File files = tr.getFiles();
            
            if (files != null) {
                List<Html5File> filesToUpload = Arrays.asList(files);
                filesToUpload.forEach(file -> {
                    file.setStreamVariable(new MyStreamVariable());
                });
            }
        }
        
        @Override
        public AcceptCriterion getAcceptCriterion() {
            return AcceptAll.get();
        }
        
    }
    
    class MyStreamVariable implements StreamVariable{
        private static final long serialVersionUID = 1L;

        @Override
        public OutputStream getOutputStream() {
            return new ByteArrayOutputStream();
        }

        @Override
        public boolean listenProgress() {
            return false;
        }

        @Override
        public void onProgress(StreamingProgressEvent event) {
            System.out.println("Streaming OnProgress - ContentLength: " + event.getContentLength() + " - Bytes Received: " + event.getBytesReceived());
        }

        @Override
        public void streamingStarted(StreamingStartEvent event) {
            System.out.println("Streaming Started - ContentLength: " + event.getContentLength() + " - Bytes Received: " + event.getBytesReceived());
        }

        @Override
        public void streamingFinished(StreamingEndEvent event) {
            System.out.println("Streaming Finished - ContentLength: " + event.getContentLength() + " - Bytes Received: " + event.getBytesReceived());
        }

        @Override
        public void streamingFailed(StreamingErrorEvent event) {
            System.out.println("Streaming Failed - ContentLength: " + event.getContentLength() + " - Bytes Received: " + event.getBytesReceived());
        }

        @Override
        public boolean isInterrupted() {
            return false;
        }
        
    }
    
}

Are we doing something wrong or is this a Bug in Vaadin, the Internet Explorer or Wildfly?
Thanks for your help!

Does your case work with other browsers like Firefox or Chrome? If it does this sounds like an issue that Vaadin should tackle. Could create a bug report ticket to dev.vaadin.com about the issue? Include the sources there as well.

cheers,
matti

Hi Matti,

yes, in Firefox and Chrome everything is fine - you can interact with vaadin components without aborting the upload!

Thanks, I created an issue!
https://dev.vaadin.com/ticket/18372#ticket

Best Regards,
Carsten