Treat undefined Record properties on JSOs as nulls Review at http://gwt-code-reviews.appspot.com/744801 Review by: amitmanjhi@google.com git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8501 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java b/user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java index 3558572..a2ba8dc 100644 --- a/user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java +++ b/user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java
@@ -83,12 +83,12 @@ // assert isDefined(property.getName()) : // "Cannot ask for a property before setting it: " // + property.getName(); - if (isNull(property.getName())) { + if (isNullOrUndefined(property.getName())) { return null; } try { if (Boolean.class.equals(property.getType())) { - return (V) Boolean.valueOf((String) get(property.getName())); + return (V) Boolean.valueOf(getBoolean(property.getName())); } if (Byte.class.equals(property.getType())) { return (V) Byte.valueOf((byte) getInt(property.getName())); @@ -189,8 +189,8 @@ /** * @param name */ - public final native boolean isNull(String name)/*-{ - return this[name] === null; + public final native boolean isNullOrUndefined(String name)/*-{ + return this[name] == null; }-*/; public final boolean merge(RecordJsoImpl from) { @@ -299,6 +299,10 @@ return @java.util.Date::createFrom(D)(millis); }-*/; + private native boolean getBoolean(String name) /*-{ + return this[name]; + }-*/; + private native double getDouble(String name) /*-{ return this[name]; }-*/;
diff --git a/user/test/com/google/gwt/valuestore/shared/impl/RecordJsoImplTest.java b/user/test/com/google/gwt/valuestore/shared/impl/RecordJsoImplTest.java index 7786277..17e8ac7 100644 --- a/user/test/com/google/gwt/valuestore/shared/impl/RecordJsoImplTest.java +++ b/user/test/com/google/gwt/valuestore/shared/impl/RecordJsoImplTest.java
@@ -122,6 +122,8 @@ } assertEquals((Long) 42L, jso.getId()); assertEquals(new Integer(1), jso.getVersion()); + assertEquals(null, jso.get(SimpleFooRecord.longField)); + assertEquals(null, jso.get(SimpleFooRecord.enumField)); testSchema(jso, schemaPresent); }