<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>Just to summarise here is what we found out when trying to create an Errai client for the TODO demo:</div><div><br></div><div><a href="https://github.com/aerogear/TODO/pull/29">https://github.com/aerogear/TODO/pull/29</a></div><div><br></div><div>We have our own implementation that serialises JSON from and to objects that is compliant with Jackson and that seems to 'conflict' with the server implementation, because that is receiving Longs as javascript numbers. A number in Javascript is a Double and if you execute the following javascript you'll see that this leads to strange rounding problems </div><div><br></div><div><table class="file-code file-diff hide-line-numbers line-number-attrs" style="margin: 0px; padding: 0px; border: 0px; border-spacing: 0px; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13px; line-height: 18px; width: 1134px; background-color: rgb(255, 255, 255); color: rgb(51, 51, 51); position: static; z-index: auto; "><tbody style="margin: 0px; padding: 0px; border: 0px;"><tr class="file-diff-line gi" id="server-src-test-java-org-aerogear-todo-server-model-tasktest-java-P18" data-position="18" style="margin: 0px; padding: 0px; border: 0px; position: relative; text-shadow: rgba(255, 255, 255, 0.247059) 0px 1px 0px; color: rgb(0, 0, 0); background-color: rgb(221, 255, 221);"><td class="diff-line-code" style="margin: 0px; padding: 0px 10px; border: 0px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgb(51, 51, 51); white-space: nowrap; background-color: rgb(248, 238, 199); "></td></tr><tr class="file-diff-line gi" id="server-src-test-java-org-aerogear-todo-server-model-tasktest-java-P19" data-position="19" style="margin: 0px; padding: 0px; border: 0px; position: relative; text-shadow: rgba(255, 255, 255, 0.247059) 0px 1px 0px; color: rgb(0, 0, 0); background-color: rgb(221, 255, 221);"><td id="L0L-1" class="diff-line-num linkable-line-number empty-cell" data-line-number="
" style="margin: 0px; padding: 0px 8px; border-width: 0px 1px 0px 0px; border-right-style: solid; border-color: rgb(180, 226, 180); width: 24px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgba(0, 0, 0, 0.296875); vertical-align: top; text-align: right; -webkit-user-select: none; background-color: rgb(206, 255, 206); "><br></td><td id="L0R19" class="diff-line-num linkable-line-number" data-line-number="
19
" style="margin: 0px; padding: 0px 8px; border-width: 0px 1px 0px 0px; border-right-style: solid; border-color: rgb(180, 226, 180); width: 24px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgba(0, 0, 0, 0.296875); vertical-align: top; text-align: right; -webkit-user-select: none; background-color: rgb(206, 255, 206); "><br></td><td class="diff-line-code" style="margin: 0px; padding: 0px 10px; border: 0px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgb(51, 51, 51); white-space: nowrap; ">var test = {"id":1,"name":"tag","tags":[10000000000000001]};</td></tr><tr class="file-diff-line gi" id="server-src-test-java-org-aerogear-todo-server-model-tasktest-java-P20" data-position="20" style="margin: 0px; padding: 0px; border: 0px; position: relative; text-shadow: rgba(255, 255, 255, 0.247059) 0px 1px 0px; color: rgb(0, 0, 0); background-color: rgb(221, 255, 221);"><td id="L0L-1" class="diff-line-num linkable-line-number empty-cell" data-line-number="
" style="margin: 0px; padding: 0px 8px; border-width: 0px 1px 0px 0px; border-right-style: solid; border-color: rgb(180, 226, 180); width: 24px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgba(0, 0, 0, 0.296875); vertical-align: top; text-align: right; -webkit-user-select: none; background-color: rgb(206, 255, 206); "></td><td id="L0R20" class="diff-line-num linkable-line-number" data-line-number="
20
" style="margin: 0px; padding: 0px 8px; border-width: 0px 1px 0px 0px; border-right-style: solid; border-color: rgb(180, 226, 180); width: 24px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgba(0, 0, 0, 0.296875); vertical-align: top; text-align: right; -webkit-user-select: none; background-color: rgb(206, 255, 206); "></td><td class="diff-line-code" style="margin: 0px; padding: 0px 10px; border: 0px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgb(51, 51, 51); white-space: nowrap; "><b class="add-line-comment mini-icon mini-icon-add-comment" data-remote="/edewit/TODO/commit_comment/form?commit_id=2faed3861d339ae3df62522a96d162caaf202f9b&path=server/src/test/java/org/aerogear/todo/server/model/TaskTest.java&position=20&line=20" style="margin: 0px 0px 0px -25px; padding: 0px; border: 0px; font-family: 'Octicons Regular'; display: inline-block; -webkit-font-smoothing: antialiased; line-height: 1; font-size: 16px; width: 25px; height: 16px; position: absolute; left: 0px; color: rgb(65, 131, 196); cursor: pointer; opacity: 0; "></b>console.log(test.tags[0]);</td></tr><tr class="file-diff-line gi" id="server-src-test-java-org-aerogear-todo-server-model-tasktest-java-P21" data-position="21" style="margin: 0px; padding: 0px; border: 0px; position: relative; text-shadow: rgba(255, 255, 255, 0.247059) 0px 1px 0px; color: rgb(0, 0, 0); background-color: rgb(221, 255, 221);"><td id="L0L-1" class="diff-line-num linkable-line-number empty-cell" data-line-number="
" style="margin: 0px; padding: 0px 8px; border-width: 0px 1px 0px 0px; border-right-style: solid; border-color: rgb(180, 226, 180); width: 24px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgba(0, 0, 0, 0.296875); vertical-align: top; text-align: right; -webkit-user-select: none; background-color: rgb(206, 255, 206); "></td><td id="L0R21" class="diff-line-num linkable-line-number" data-line-number="
21
" style="margin: 0px; padding: 0px 8px; border-width: 0px 1px 0px 0px; border-right-style: solid; border-color: rgb(180, 226, 180); width: 24px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgba(0, 0, 0, 0.296875); vertical-align: top; text-align: right; -webkit-user-select: none; background-color: rgb(206, 255, 206); "></td><td class="diff-line-code" style="margin: 0px; padding: 0px 10px; border: 0px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgb(51, 51, 51); white-space: nowrap; "><b class="add-line-comment mini-icon mini-icon-add-comment" data-remote="/edewit/TODO/commit_comment/form?commit_id=2faed3861d339ae3df62522a96d162caaf202f9b&path=server/src/test/java/org/aerogear/todo/server/model/TaskTest.java&position=21&line=21" style="margin: 0px 0px 0px -25px; padding: 0px; border: 0px; font-family: 'Octicons Regular'; display: inline-block; -webkit-font-smoothing: antialiased; line-height: 1; font-size: 16px; width: 25px; height: 16px; position: absolute; left: 0px; color: rgb(65, 131, 196); cursor: pointer; opacity: 0; "></b></td></tr></tbody></table><div><br></div></div><div><br></div><div>The same exists in Java</div><div><br></div><div><a href="https://gist.github.com/jfuerth/5372442" style="margin: 0px; padding: 0px; border: 0px; color: rgb(65, 131, 196); text-decoration: none; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 13px; line-height: 22px; background-color: rgb(251, 251, 251); ">https://gist.github.com/jfuerth/5372442</a></div><div><br></div><div>What I've added to the server side of the demo is the ability to receive the ids as Strings and then convert them on the server side where such a number limitation does not exists.</div><div><br></div><div>Cheers,</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Erik Jan</div></body></html>