3535/** Grizzly ASN1 reader implementation. */
3636final class ASN1BufferReader extends AbstractASN1Reader {
3737 private final class ChildSequenceLimiter implements SequenceLimiter {
38- private SequenceLimiter parent ;
38+ @ Override
39+ public String toString () {
40+ return "ChildSequenceLimiter [parent=" + parent + ", child=" + child + ", readLimit=" + readLimit
41+ + ", bytesRead=" + bytesRead + ", remaining()=" + remaining () + "]" ;
42+ }
43+
44+ private SequenceLimiter parent ;
3945 private ChildSequenceLimiter child ;
4046 private int readLimit ;
4147 private int bytesRead ;
@@ -55,7 +61,7 @@ public SequenceLimiter endSequence() throws IOException {
5561 parent .checkLimit (remaining ());
5662 if (remaining () > 0 ) {
5763 logger .debug (LocalizableMessage .raw (
58- "Ignoring %d unused trailing bytes in ASN.1 SEQUENCE" , remaining ()));
64+ "Ignoring %d unused trailing bytes in ASN.1 SEQUENCE: %s " , remaining (), toString ()));
5965 }
6066 for (int i = 0 ; i < remaining (); i ++) {
6167 buffer .get ();
@@ -81,11 +87,16 @@ public ChildSequenceLimiter startSequence(final int readLimit) {
8187 }
8288
8389 private final class RootSequenceLimiter implements SequenceLimiter {
84- private ChildSequenceLimiter child ;
90+ @ Override
91+ public String toString () {
92+ return "RootSequenceLimiter [remaining()=" + remaining () + "]" ;
93+ }
94+
95+ private ChildSequenceLimiter child ;
8596
8697 @ Override
8798 public void checkLimit (final int readSize ) throws IOException {
88- if (buffer . remaining () < readSize ) {
99+ if ( remaining () < readSize ) {
89100 final LocalizableMessage message = ERR_ASN1_TRUNCATED_LENGTH_BYTE .get ();
90101 throw DecodeException .fatalError (message );
91102 }
@@ -99,7 +110,7 @@ public ChildSequenceLimiter endSequence() throws DecodeException {
99110
100111 @ Override
101112 public int remaining () {
102- return buffer .remaining ();
113+ return buffer .hasRemaining () ? buffer . remaining () : 0 ;
103114 }
104115
105116 @ Override
0 commit comments