Skip to content

Commit

Permalink
fixup! ISSUE-292 Prevent SPI calls at runtime
Browse files Browse the repository at this point in the history
  • Loading branch information
chibenwa committed Dec 16, 2022
1 parent dacda7e commit 21ce50f
Showing 1 changed file with 11 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,13 @@
* object (e.g. START_OBJECT, VALUE_NUMBER, etc).
*/
class JsonValueParser {
private static final JsonProvider provider = JsonProvider.provider();
private static class DefaultJsonProvider {
private static final JsonProvider INSTANCE = JsonProvider.provider();
}

public JsonObject parseObject(JsonParser parser) throws IOException {

JsonObjectBuilder ob = provider.createObjectBuilder();
JsonObjectBuilder ob = DefaultJsonProvider.INSTANCE.createObjectBuilder();

JsonToken token;
while((token = parser.nextToken()) != JsonToken.END_OBJECT) {
Expand All @@ -68,7 +70,7 @@ public JsonObject parseObject(JsonParser parser) throws IOException {
}

public JsonArray parseArray(JsonParser parser) throws IOException {
JsonArrayBuilder ab = provider.createArrayBuilder();
JsonArrayBuilder ab = DefaultJsonProvider.INSTANCE.createArrayBuilder();

while(parser.nextToken() != JsonToken.END_ARRAY) {
ab.add(parseValue(parser));
Expand All @@ -94,22 +96,22 @@ public JsonValue parseValue(JsonParser parser) throws IOException {
return JsonValue.NULL;

case VALUE_STRING:
return provider.createValue(parser.getText());
return DefaultJsonProvider.INSTANCE.createValue(parser.getText());

case VALUE_NUMBER_FLOAT:
case VALUE_NUMBER_INT:
switch(parser.getNumberType()) {
case INT:
return provider.createValue(parser.getIntValue());
return DefaultJsonProvider.INSTANCE.createValue(parser.getIntValue());
case LONG:
return provider.createValue(parser.getLongValue());
return DefaultJsonProvider.INSTANCE.createValue(parser.getLongValue());
case FLOAT:
case DOUBLE:
return provider.createValue(parser.getDoubleValue());
return DefaultJsonProvider.INSTANCE.createValue(parser.getDoubleValue());
case BIG_DECIMAL:
return provider.createValue(parser.getDecimalValue());
return DefaultJsonProvider.INSTANCE.createValue(parser.getDecimalValue());
case BIG_INTEGER:
return provider.createValue(parser.getBigIntegerValue());
return DefaultJsonProvider.INSTANCE.createValue(parser.getBigIntegerValue());
}

default:
Expand Down

0 comments on commit 21ce50f

Please sign in to comment.