From 24a7ea91b6af427c4ea417e31e98d6785a4830f3 Mon Sep 17 00:00:00 2001 From: David Huynh Date: Wed, 14 Apr 2010 20:34:29 +0000 Subject: [PATCH] Fixed bugs - MassEditOperation was barfing when engineConfig was missing - When parsing JSON in streaming mode, get long instead of int and double instead of float so that we won't get overflow exception. git-svn-id: http://google-refine.googlecode.com/svn/trunk@476 7d457c2a-affb-35e4-300a-418c747d4874 --- src/main/java/com/metaweb/gridworks/model/Cell.java | 4 ++-- src/main/java/com/metaweb/gridworks/model/Recon.java | 4 ++-- .../com/metaweb/gridworks/operations/MassEditOperation.java | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/metaweb/gridworks/model/Cell.java b/src/main/java/com/metaweb/gridworks/model/Cell.java index f626ec455..451c98dd0 100644 --- a/src/main/java/com/metaweb/gridworks/model/Cell.java +++ b/src/main/java/com/metaweb/gridworks/model/Cell.java @@ -130,9 +130,9 @@ public class Cell implements HasFields, Jsonizable { if (token == JsonToken.VALUE_STRING) { value = jp.getText(); } else if (token == JsonToken.VALUE_NUMBER_INT) { - value = jp.getIntValue(); + value = jp.getLongValue(); } else if (token == JsonToken.VALUE_NUMBER_FLOAT) { - value = jp.getFloatValue(); + value = jp.getDoubleValue(); } else if (token == JsonToken.VALUE_TRUE) { value = true; } else if (token == JsonToken.VALUE_FALSE) { diff --git a/src/main/java/com/metaweb/gridworks/model/Recon.java b/src/main/java/com/metaweb/gridworks/model/Recon.java index 6876d8f1e..27b30c573 100644 --- a/src/main/java/com/metaweb/gridworks/model/Recon.java +++ b/src/main/java/com/metaweb/gridworks/model/Recon.java @@ -279,9 +279,9 @@ public class Recon implements HasFields, Jsonizable { if (token == JsonToken.VALUE_STRING) { recon.features[feature++] = jp.getText(); } else if (token == JsonToken.VALUE_NUMBER_INT) { - recon.features[feature++] = jp.getIntValue(); + recon.features[feature++] = jp.getLongValue(); } else if (token == JsonToken.VALUE_NUMBER_FLOAT) { - recon.features[feature++] = jp.getFloatValue(); + recon.features[feature++] = jp.getDoubleValue(); } else if (token == JsonToken.VALUE_FALSE) { recon.features[feature++] = false; } else if (token == JsonToken.VALUE_TRUE) { diff --git a/src/main/java/com/metaweb/gridworks/operations/MassEditOperation.java b/src/main/java/com/metaweb/gridworks/operations/MassEditOperation.java index 98289905c..668a2f83b 100644 --- a/src/main/java/com/metaweb/gridworks/operations/MassEditOperation.java +++ b/src/main/java/com/metaweb/gridworks/operations/MassEditOperation.java @@ -54,7 +54,8 @@ public class MassEditOperation extends EngineDependentMassCellOperation { } static public AbstractOperation reconstruct(Project project, JSONObject obj) throws Exception { - JSONObject engineConfig = obj.getJSONObject("engineConfig"); + JSONObject engineConfig = obj.has("engineConfig") && !obj.isNull("engineConfig") ? + obj.getJSONObject("engineConfig") : null; return new MassEditOperation( engineConfig,