Browse Source

Remove broken custom String[] serialization (#17146)

Change-Id: If40b6c4e979e4258a22a7d2d1af0532d3e8f11bc
tags/7.4.5
Leif Åstrand 9 years ago
parent
commit
f8404b9be9

+ 1
- 21
server/src/com/vaadin/server/JsonCodec.java View File

@@ -417,7 +417,7 @@ public class JsonCodec implements Serializable {
connectorTracker);

} else if (JsonConstants.VTYPE_STRINGARRAY.equals(transportType)) {
return decodeStringArray((JsonArray) encodedJsonValue);
return decodeArray(String.class, (JsonArray) encodedJsonValue, null);
}

// Special Vaadin types
@@ -573,15 +573,6 @@ public class JsonCodec implements Serializable {
return Enum.valueOf(cls, value.getString());
}

private static String[] decodeStringArray(JsonArray jsonArray) {
int length = jsonArray.length();
List<String> tokens = new ArrayList<String>(length);
for (int i = 0; i < length; ++i) {
tokens.add(jsonArray.getString(i));
}
return tokens.toArray(new String[tokens.size()]);
}

private static Object[] decodeObjectArray(Type targetType,
JsonArray jsonArray, ConnectorTracker connectorTracker) {
List<Object> list = decodeList(List.class, true, jsonArray,
@@ -659,8 +650,6 @@ public class JsonCodec implements Serializable {
toReturn = Json.create(((Number) value).doubleValue());
} else if (value instanceof Character) {
toReturn = Json.create(Character.toString((Character) value));
} else if (value instanceof String[]) {
toReturn = toJsonArray((String[]) value);
} else if (value instanceof Collection) {
toReturn = encodeCollection(valueType, (Collection<?>) value,
connectorTracker);
@@ -997,13 +986,4 @@ public class JsonCodec implements Serializable {
JSONSerializer serializer = customSerializers.get(value.getClass());
return serializer.serialize(value, connectorTracker);
}

private static JsonArray toJsonArray(String[] array) {
JsonArray jsonArray = Json.createArray();
for (int i = 0; i < array.length; ++i) {
jsonArray.set(i, array[i]);
}
return jsonArray;
}

}

+ 5
- 4
uitest/src/com/vaadin/tests/serialization/SerializerTest.java View File

@@ -51,7 +51,7 @@ import elemental.json.JsonValue;
@Widgetset("com.vaadin.tests.widgetset.TestingWidgetSet")
public class SerializerTest extends AbstractTestUI {

private Log log = new Log(45);
private Log log = new Log(50);

@Override
protected void setup(VaadinRequest request) {
@@ -120,8 +120,9 @@ public class SerializerTest extends AbstractTestUI {
state.doubleObjectValue = Double.valueOf(-Math.E);
state.doubleArray = new double[] { Double.MAX_VALUE, Double.MIN_VALUE };

rpc.sendString("This is a tesing string ‡");
rpc.sendString("This is a tesing string ‡", new String[] { "‡", null });
state.string = "This is a tesing string ‡";
state.stringArray = new String[] { null, "‡" };

rpc.sendConnector(this);
state.connector = this;
@@ -317,8 +318,8 @@ public class SerializerTest extends AbstractTestUI {
}

@Override
public void sendString(String value) {
log.log("sendString: " + value);
public void sendString(String value, String[] array) {
log.log("sendString: " + value + ", " + Arrays.toString(array));
}

@Override

+ 4
- 1
uitest/src/com/vaadin/tests/serialization/SerializerTestTest.java View File

@@ -62,7 +62,7 @@ public class SerializerTestTest extends MultiBrowserTest {
Assert.assertEquals(
"sendConnector: com.vaadin.tests.widgetset.server.SerializerTestExtension",
getLogRow(logRow++));
Assert.assertEquals("sendString: Taegghiiiinnrsssstt‡",
Assert.assertEquals("sendString: Taegghiiiinnrsssstt‡, [null, ‡]",
getLogRow(logRow++));
Assert.assertEquals(
"sendDouble: 0.423310825130748, 5.859874482048838, [2.0, 1.7976931348623157E308, 4.9E-324]",
@@ -83,6 +83,9 @@ public class SerializerTestTest extends MultiBrowserTest {
Assert.assertEquals("state.jsonBoolean: false", getLogRow(logRow++));
Assert.assertEquals("state.jsonString: a string", getLogRow(logRow++));
Assert.assertEquals("state.jsonNull: NULL", getLogRow(logRow++));
Assert.assertEquals("state.stringArray: [null, ‡]", getLogRow(logRow++));
Assert.assertEquals("state.string: This is a tesing string ‡",
getLogRow(logRow++));
Assert.assertEquals(
"state.doubleArray: [1.7976931348623157e+308, 5e-324]",
getLogRow(logRow++));

+ 6
- 2
uitest/src/com/vaadin/tests/widgetset/client/SerializerTestConnector.java View File

@@ -71,10 +71,11 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
}

@Override
public void sendString(String value) {
public void sendString(String value, String[] array) {
char[] chars = value.toCharArray();
Arrays.sort(chars);
rpc.sendString(new String(chars));
rpc.sendString(new String(chars), new String[] { array[1],
array[0] });
}

@Override
@@ -339,6 +340,9 @@ public class SerializerTestConnector extends AbstractExtensionConnector {
rpc.log("state.doubleObjectValue: " + getState().doubleObjectValue);
rpc.log("state.doubleArray: " + Arrays.toString(getState().doubleArray));

rpc.log("state.string: " + getState().string);
rpc.log("state.stringArray: " + Arrays.toString(getState().stringArray));

rpc.log("state.jsonNull: " + getState().jsonNull.getType().name());
rpc.log("state.jsonString: "
+ ((JsonString) getState().jsonString).getString());

+ 1
- 1
uitest/src/com/vaadin/tests/widgetset/client/SerializerTestRpc.java View File

@@ -45,7 +45,7 @@ public interface SerializerTestRpc extends ServerRpc, ClientRpc {

public void sendDouble(double value, Double boxedValue, double[] array);

public void sendString(String value);
public void sendString(String value, String[] array);

public void sendConnector(Connector connector);


+ 1
- 0
uitest/src/com/vaadin/tests/widgetset/client/SerializerTestState.java View File

@@ -58,6 +58,7 @@ public class SerializerTestState extends AbstractComponentState {
public double[] doubleArray;

public String string;
public String[] stringArray;

public String nullString;


Loading…
Cancel
Save