@@ -94,9 +94,9 @@ public SmileParser constructParser(int factoryFeatures,
94
94
ByteQuadsCanonicalizer can = rootByteSymbols .makeChild (factoryFeatures );
95
95
// We just need a single byte, really, to know if it starts with header
96
96
int end = _inputEnd ;
97
- if (_inputPtr < end && _in != null ) {
98
- int count = _in .read (_inputBuffer , end , _inputBuffer .length - end );
99
- if (count > 0 ) {
97
+ if (( _inputPtr < end ) && ( _in != null ) ) {
98
+ int count = _in .read (_inputBuffer , end , _inputBuffer .length - end );
99
+ if (count > 0 ) {
100
100
_inputEnd += count ;
101
101
}
102
102
}
@@ -105,23 +105,23 @@ public SmileParser constructParser(int factoryFeatures,
105
105
codec , can ,
106
106
_in , _inputBuffer , _inputPtr , _inputEnd , _bufferRecyclable );
107
107
boolean hadSig = false ;
108
- if (_inputPtr < _inputEnd ) { // only false for empty doc
109
- if (_inputBuffer [_inputPtr ] == SmileConstants .HEADER_BYTE_1 ) {
110
- // need to ensure it gets properly handled so caller won't see the signature
111
- hadSig = p .handleSignature (true , true );
112
- }
113
- } else {
114
- /* 11-Oct-2012, tatu: Actually, let's allow empty documents even if
115
- * header signature would otherwise be needed. This is useful for
116
- * JAX-RS provider, empty PUT/POST payloads.
117
- */
108
+
109
+ if (_inputPtr >= _inputEnd ) { // only the case for empty doc
110
+ // 11-Oct-2012, tatu: Actually, let's allow empty documents even if
111
+ // header signature would otherwise be needed. This is useful for
112
+ // JAX-RS provider, empty PUT/POST payloads.
118
113
return p ;
119
114
}
115
+ final byte firstByte = _inputBuffer [_inputPtr ];
116
+ if (firstByte == SmileConstants .HEADER_BYTE_1 ) {
117
+ // need to ensure it gets properly handled so caller won't see the signature
118
+ hadSig = p .handleSignature (true , true );
119
+ }
120
+
120
121
if (!hadSig && SmileParser .Feature .REQUIRE_HEADER .enabledIn (smileFeatures )) {
121
122
// Ok, first, let's see if it looks like plain JSON...
122
123
String msg ;
123
124
124
- byte firstByte = (_inputPtr < _inputEnd ) ? _inputBuffer [_inputPtr ] : 0 ;
125
125
if (firstByte == '{' || firstByte == '[' ) {
126
126
msg = "Input does not start with Smile format header (first byte = 0x"
127
127
+Integer .toHexString (firstByte & 0xFF )+") -- rather, it starts with '" +((char ) firstByte )
0 commit comments