You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2017/10/10 06:34:20 UTC
incubator-netbeans-html4j git commit: Empty strings shall not be
treated as null
Repository: incubator-netbeans-html4j
Updated Branches:
refs/heads/master 593fe288c -> 210f773c3
Empty strings shall not be treated as null
Project: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/commit/210f773c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/tree/210f773c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/diff/210f773c
Branch: refs/heads/master
Commit: 210f773c35b721e20b6f11bfa4ffd475442c303c
Parents: 593fe28
Author: Jaroslav Tulach <ja...@oracle.com>
Authored: Tue Oct 10 08:34:00 2017 +0200
Committer: Jaroslav Tulach <ja...@oracle.com>
Committed: Tue Oct 10 08:34:00 2017 +0200
----------------------------------------------------------------------
.../main/java/net/java/html/json/tests/JSONTest.java | 14 ++++++++++++++
.../main/java/org/netbeans/html/ko4j/Knockout.java | 8 +++++++-
.../main/java/org/netbeans/html/xhr4j/LoadJSON.java | 10 ++++++++--
3 files changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/blob/210f773c/json-tck/src/main/java/net/java/html/json/tests/JSONTest.java
----------------------------------------------------------------------
diff --git a/json-tck/src/main/java/net/java/html/json/tests/JSONTest.java b/json-tck/src/main/java/net/java/html/json/tests/JSONTest.java
index 19e989f..6aaf236 100644
--- a/json-tck/src/main/java/net/java/html/json/tests/JSONTest.java
+++ b/json-tck/src/main/java/net/java/html/json/tests/JSONTest.java
@@ -100,6 +100,20 @@ public final class JSONTest {
"Should be the same: " + p.getFirstName() + " != " + p2.getFirstName());
}
+ @KOTest public void fromJsonEmptyValues() throws Throwable {
+ final BrwsrCtx c = newContext();
+ Person p = Models.bind(new Person(), c);
+ p.setSex(Sex.MALE);
+ p.setFirstName("");
+ p.setLastName("");
+
+ byte[] arr = p.toString().getBytes("UTF-8");
+ Person p2 = Models.parse(c, Person.class, new ByteArrayInputStream(arr));
+
+ assertEquals(p2.getFirstName(), p.getFirstName(),
+ "Should be the same: " + p.getFirstName() + " != " + p2.getFirstName());
+ }
+
@KOTest public void toJSONWithEscapeCharactersInABrowser() throws Throwable {
Person p = Models.bind(new Person(), newContext());
p.setSex(Sex.MALE);
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/blob/210f773c/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
----------------------------------------------------------------------
diff --git a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
index df5b03a..7500715 100644
--- a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
+++ b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
@@ -41,7 +41,13 @@ final class Knockout {
"if (property === null) ret = object;\n" +
"else if (object === null) ret = null;\n" +
"else ret = object[property];\n" +
- "return ret ? ko['utils']['unwrapObservable'](ret) : null;"
+ "if (typeof ret !== 'undefined' && ret !== null) {\n" +
+ " if (typeof ko !== 'undefined' && ko['utils'] && ko['utils']['unwrapObservable']) {\n" +
+ " return ko['utils']['unwrapObservable'](ret);\n" +
+ " }\n" +
+ " return ret;\n" +
+ "}\n" +
+ "return null;\n"
)
static Object getProperty(Object object, String property) {
return null;
http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/blob/210f773c/xhr4j/src/main/java/org/netbeans/html/xhr4j/LoadJSON.java
----------------------------------------------------------------------
diff --git a/xhr4j/src/main/java/org/netbeans/html/xhr4j/LoadJSON.java b/xhr4j/src/main/java/org/netbeans/html/xhr4j/LoadJSON.java
index 3f5e807..9f1ac6e 100644
--- a/xhr4j/src/main/java/org/netbeans/html/xhr4j/LoadJSON.java
+++ b/xhr4j/src/main/java/org/netbeans/html/xhr4j/LoadJSON.java
@@ -226,8 +226,14 @@ final class LoadJSON implements Runnable {
"var ret;\n" +
"if (property === null) ret = object;\n" +
"else if (object === null) ret = null;\n" +
- "else ret = object[property];\n" +
- "return ret ? (typeof ko === 'undefined' ? ret : ko.utils.unwrapObservable(ret)) : null;"
+ "else ret = object[property];\n" +
+ "if (typeof ret !== 'undefined' && ret !== null) {\n" +
+ " if (typeof ko !== 'undefined' && ko['utils'] && ko['utils']['unwrapObservable']) {\n" +
+ " return ko['utils']['unwrapObservable'](ret);\n" +
+ " }\n" +
+ " return ret;\n" +
+ "}\n" +
+ "return null;\n"
)
private static Object getProperty(Object object, String property) {
return null;