Commit d8a9aea
committed
JCBC-1574 JsonObject/Array.put(String,Object) fails on Map or List
Backported from SDK 3 commit fb2d3845d53ce202b91ad1f886fb7c701ea1ff4a
Motivation
----------
There already exist specialized methods for putting Map and List values,
but they are not invoked if the exact type of the value is not known
at compile time.
Support passing a Map or List to JsonObject/Array.put(String,Object).
This is important since these methods are used by Spring Data Couchbase.
Modifications
-------------
Add a JsonValue.coerce(Object) method that converts the given object
to a type that can be put in a JsonArray or JsonObject. Use this method
everywhere a value of unknown type is added.
For consistency, convert any ClassCastExceptions to
InvalidArgumentExceptions.
Change-Id: Iea39648a94743c9a05020ed7e5a78ee37ae2b589
Reviewed-on: http://review.couchbase.org/120924
Tested-by: David Nault <david.nault@couchbase.com>
Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>1 parent 5fabec4 commit d8a9aea
File tree
5 files changed
+108
-187
lines changed- src
- main/java/com/couchbase/client/java/document/json
- test/java/com/couchbase/client/java/document/json
5 files changed
+108
-187
lines changedLines changed: 4 additions & 52 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
28 | 27 | | |
29 | 28 | | |
30 | 29 | | |
| |||
36 | 35 | | |
37 | 36 | | |
38 | 37 | | |
39 | | - | |
40 | | - | |
41 | 38 | | |
42 | 39 | | |
43 | 40 | | |
| |||
91 | 88 | | |
92 | 89 | | |
93 | 90 | | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
| 91 | + | |
99 | 92 | | |
100 | 93 | | |
101 | 94 | | |
| |||
120 | 113 | | |
121 | 114 | | |
122 | 115 | | |
123 | | - | |
124 | | - | |
125 | 116 | | |
126 | 117 | | |
127 | 118 | | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
| 119 | + | |
| 120 | + | |
164 | 121 | | |
165 | 122 | | |
166 | 123 | | |
| |||
206 | 163 | | |
207 | 164 | | |
208 | 165 | | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | 166 | | |
| 167 | + | |
216 | 168 | | |
217 | 169 | | |
218 | 170 | | |
| |||
Lines changed: 14 additions & 58 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
45 | | - | |
46 | | - | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
| 130 | + | |
135 | 131 | | |
136 | 132 | | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
172 | 138 | | |
| 139 | + | |
| 140 | + | |
173 | 141 | | |
| 142 | + | |
174 | 143 | | |
175 | 144 | | |
176 | 145 | | |
| |||
203 | 172 | | |
204 | 173 | | |
205 | 174 | | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | 175 | | |
| 176 | + | |
213 | 177 | | |
214 | 178 | | |
215 | 179 | | |
| |||
230 | 194 | | |
231 | 195 | | |
232 | 196 | | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
| 197 | + | |
242 | 198 | | |
243 | 199 | | |
244 | 200 | | |
| |||
1243 | 1199 | | |
1244 | 1200 | | |
1245 | 1201 | | |
1246 | | - | |
| 1202 | + | |
Lines changed: 23 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
| 21 | + | |
20 | 22 | | |
21 | 23 | | |
22 | 24 | | |
23 | 25 | | |
24 | | - | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
32 | | - | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| |||
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
71 | 92 | | |
Lines changed: 37 additions & 40 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
31 | 33 | | |
32 | 34 | | |
33 | 35 | | |
| |||
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | 41 | | |
47 | 42 | | |
48 | 43 | | |
| |||
139 | 134 | | |
140 | 135 | | |
141 | 136 | | |
142 | | - | |
| 137 | + | |
143 | 138 | | |
144 | 139 | | |
145 | 140 | | |
| |||
154 | 149 | | |
155 | 150 | | |
156 | 151 | | |
157 | | - | |
| 152 | + | |
158 | 153 | | |
159 | 154 | | |
160 | 155 | | |
| |||
168 | 163 | | |
169 | 164 | | |
170 | 165 | | |
171 | | - | |
172 | | - | |
173 | | - | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
174 | 169 | | |
175 | | - | |
| 170 | + | |
176 | 171 | | |
177 | 172 | | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
185 | 176 | | |
186 | 177 | | |
187 | | - | |
| 178 | + | |
188 | 179 | | |
189 | 180 | | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
197 | 184 | | |
198 | 185 | | |
199 | 186 | | |
200 | 187 | | |
201 | | - | |
202 | | - | |
203 | | - | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
204 | 191 | | |
205 | 192 | | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
213 | 196 | | |
214 | 197 | | |
215 | 198 | | |
| |||
219 | 202 | | |
220 | 203 | | |
221 | 204 | | |
222 | | - | |
| 205 | + | |
223 | 206 | | |
224 | | - | |
| 207 | + | |
225 | 208 | | |
226 | 209 | | |
227 | 210 | | |
| |||
399 | 382 | | |
400 | 383 | | |
401 | 384 | | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
402 | 399 | | |
0 commit comments