From: Johannes Dahlström Date: Wed, 3 Sep 2014 13:46:40 +0000 (+0300) Subject: Fix potential invalid JSON output in MetadataWriter (#14591) X-Git-Tag: 7.3.1~14 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=03097e75ccbbed2b434082f5cf939dec2a387bdf;p=vaadin-framework.git Fix potential invalid JSON output in MetadataWriter (#14591) Change-Id: I90ec428ae11727b9762d53ebb8d94f8c850c425b --- diff --git a/server/src/com/vaadin/server/communication/MetadataWriter.java b/server/src/com/vaadin/server/communication/MetadataWriter.java index 17c893fe40..9c46e64692 100644 --- a/server/src/com/vaadin/server/communication/MetadataWriter.java +++ b/server/src/com/vaadin/server/communication/MetadataWriter.java @@ -70,6 +70,7 @@ public class MetadataWriter implements Serializable { if (metaOpen) { writer.write(", "); } + metaOpen = true; writer.write("\"async\":true"); } diff --git a/server/tests/src/com/vaadin/server/communication/MetadataWriterTest.java b/server/tests/src/com/vaadin/server/communication/MetadataWriterTest.java index dee37ddc7f..afae14007e 100644 --- a/server/tests/src/com/vaadin/server/communication/MetadataWriterTest.java +++ b/server/tests/src/com/vaadin/server/communication/MetadataWriterTest.java @@ -18,6 +18,7 @@ package com.vaadin.server.communication; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.io.IOException; import java.io.StringWriter; import org.junit.Assert; @@ -92,4 +93,17 @@ public class MetadataWriterTest { "{\"timedRedirect\":{\"interval\":15,\"url\":\"\"}}", writer .getBuffer().toString()); } + + @Test + public void writeAsyncWithSystemMessages() throws IOException { + WrappedSession wrappedSession = mock(WrappedSession.class); + when(session.getSession()).thenReturn(wrappedSession); + + disableSessionExpirationMessages(messages); + + new MetadataWriter().write(ui, writer, false, true, messages); + Assert.assertEquals( + "{\"async\":true,\"timedRedirect\":{\"interval\":15,\"url\":\"\"}}", + writer.getBuffer().toString()); + } }