@@ -636,11 +636,11 @@ private final JsonToken _startValue(int ch) throws IOException
636
636
return _startTrueToken ();
637
637
case '[' :
638
638
return _startArrayScope ();
639
- case ']' :
639
+ case INT_RBRACKET :
640
640
return _closeArrayScope ();
641
641
case '{' :
642
642
return _startObjectScope ();
643
- case '}' :
643
+ case INT_RCURLY :
644
644
return _closeObjectScope ();
645
645
default :
646
646
}
@@ -676,6 +676,10 @@ private final JsonToken _startValueExpectComma(int ch) throws IOException
676
676
}
677
677
_reportUnexpectedChar (ch , "was expecting comma to separate " +_parsingContext .typeDesc ()+" entries" );
678
678
}
679
+
680
+ // 17-Sep-2019, tatu: [core#563] Need to call this to update index within array
681
+ _parsingContext .expectComma ();
682
+
679
683
int ptr = _inputPtr ;
680
684
if (ptr >= _inputEnd ) {
681
685
_minorState = MINOR_VALUE_WS_AFTER_COMMA ;
@@ -722,15 +726,15 @@ private final JsonToken _startValueExpectComma(int ch) throws IOException
722
726
return _startTrueToken ();
723
727
case '[' :
724
728
return _startArrayScope ();
725
- case ']' :
729
+ case INT_RBRACKET :
726
730
// Was that a trailing comma?
727
731
if ((_features & FEAT_MASK_TRAILING_COMMA ) != 0 ) {
728
732
return _closeArrayScope ();
729
733
}
730
734
break ;
731
735
case '{' :
732
736
return _startObjectScope ();
733
- case '}' :
737
+ case INT_RCURLY :
734
738
// Was that a trailing comma?
735
739
if ((_features & FEAT_MASK_TRAILING_COMMA ) != 0 ) {
736
740
return _closeObjectScope ();
@@ -866,15 +870,15 @@ private final JsonToken _startValueAfterComma(int ch) throws IOException
866
870
return _startTrueToken ();
867
871
case '[' :
868
872
return _startArrayScope ();
869
- case ']' :
873
+ case INT_RBRACKET :
870
874
// Was that a trailing comma?
871
875
if ((_features & FEAT_MASK_TRAILING_COMMA ) != 0 ) {
872
876
return _closeArrayScope ();
873
877
}
874
878
break ;
875
879
case '{' :
876
880
return _startObjectScope ();
877
- case '}' :
881
+ case INT_RCURLY :
878
882
// Was that a trailing comma?
879
883
if ((_features & FEAT_MASK_TRAILING_COMMA ) != 0 ) {
880
884
return _closeObjectScope ();
@@ -888,7 +892,7 @@ private final JsonToken _startValueAfterComma(int ch) throws IOException
888
892
protected JsonToken _startUnexpectedValue (boolean leadingComma , int ch ) throws IOException
889
893
{
890
894
switch (ch ) {
891
- case ']' :
895
+ case INT_RBRACKET :
892
896
if (!_parsingContext .inArray ()) {
893
897
break ;
894
898
}
@@ -902,7 +906,7 @@ protected JsonToken _startUnexpectedValue(boolean leadingComma, int ch) throws I
902
906
return _valueComplete (JsonToken .VALUE_NULL );
903
907
}
904
908
// fall through
905
- case '}' :
909
+ case INT_RCURLY :
906
910
// Error: neither is valid at this point; valid closers have
907
911
// been handled earlier
908
912
break ;
@@ -2071,7 +2075,7 @@ private JsonToken _handleOddName(int ch) throws IOException
2071
2075
return _finishAposName (0 , 0 , 0 );
2072
2076
}
2073
2077
break ;
2074
- case ']' : // for better error reporting...
2078
+ case INT_RBRACKET : // for better error reporting...
2075
2079
return _closeArrayScope ();
2076
2080
}
2077
2081
// allow unquoted names if feature enabled:
0 commit comments