todmorrison commented on a change in pull request #6629:
URL: https://github.com/apache/geode/pull/6629#discussion_r661662363
##########
File path:
geode-core/src/main/java/org/apache/geode/pdx/internal/json/PdxToJSON.java
##########
@@ -224,9 +226,15 @@ private void getJSONStringFromArray(JsonGenerator jg,
Object value, String pf)
writeValue(jg, obj, pf);
}
jg.writeEndArray();
+ } else if (value.getClass().isArray()) {
+ throw new IllegalStateException(
+ "The pdx field " + pf + " is an array whose component type "
+ + value.getClass().getComponentType()
+ + " can not be converted to JSON.");
} else {
throw new IllegalStateException(
- "PdxInstance returns unknown pdxfield " + pf + " for type " + value);
+ "Expected an array for pdx field " + pf + ", but got an object of
type "
Review comment:
As in my reply to Darrel's similar earlier comment, I'm not sure I like
trusting that the caller made sure that value.getClass().isArray() was true and
there's nothing about the method signature (and I don't believe can be) that
would prevent this, so my instinct is to go with "defensive coding". (What's
"safe" and "obvious" today can get lost in future changes.)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]