Top Description Fields Constructors Methods
com.mysql.cj.protocol.a

public Class DebugBufferingPacketReader

extends Object
implements MessageReader<NativePacketHeader, NativePacketPayload>
Class Inheritance
All Implemented Interfaces
com.mysql.cj.protocol.MessageReader
Imports
java.io.IOException, java.util.LinkedList, .Optional, com.mysql.cj.Messages, com.mysql.cj.conf.RuntimeProperty, com.mysql.cj.protocol.MessageReader, com.mysql.cj.util.StringUtils

A decorating MessageReader which put debugging info to a ring-buffer.

Field Summary

Modifier and TypeField and Description
private static final int
private String
private static final int
MAX_PACKET_DUMP_LENGTH

Max number of bytes to dump when tracing the protocol

private LinkedList<StringBuilder>
private RuntimeProperty<Integer>
private MessageReader<NativePacketHeader, NativePacketPayload>
private boolean

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public byte
getMessageSequence()

Overrides default com.mysql.cj.protocol.MessageReader.getMessageSequence.

Get last message sequence number, as it was stored by readHeader().

public NativePacketHeader
probeHeader()

Overrides default com.mysql.cj.protocol.MessageReader.probeHeader.

Read the next message header from server, possibly blocking indefinitely until the message is received, and cache it so that the next readHeader() return the same header.

public NativePacketPayload
probeMessage(Optional<NativePacketPayload>
Message object to reuse. May be ignored by implementation.
reuse
,
NativePacketHeader
MessageHeader instance
header
)

Overrides default com.mysql.cj.protocol.MessageReader.probeMessage.

Read message from server into to the given Message instance or into the new one if not present and cache it so that the next readMessage(Optional, MessageHeader) return the same message.

public NativePacketHeader
readHeader()

Implements com.mysql.cj.protocol.MessageReader.readHeader.

Read the next message header from server, possibly blocking indefinitely until the message is received.

private NativePacketHeader
readHeaderLocal(byte prevPacketSeq, NativePacketHeader hdr)

public NativePacketPayload
readMessage(Optional<NativePacketPayload>
Message object to reuse. May be ignored by implementation.
reuse
,
NativePacketHeader
MessageHeader instance
header
)

Implements com.mysql.cj.protocol.MessageReader.readMessage.

Read message from server into to the given Message instance or into the new one if not present.

public void
resetMessageSequence()

Overrides default com.mysql.cj.protocol.MessageReader.resetMessageSequence.

Set stored message sequence number to 0.

public MessageReader<NativePacketHeader, NativePacketPayload>
undecorate()

Overrides default com.mysql.cj.protocol.MessageReader.undecorate.

Return the previous MessageReader instance from the decorators chain or the current MessageReader if it is the first entry in a chain.

public MessageReader<NativePacketHeader, NativePacketPayload>
undecorateAll()

Overrides default com.mysql.cj.protocol.MessageReader.undecorateAll.

Return a MessageReader instance free of decorators.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

DEBUG_MSG_LENback to summary
private static final int DEBUG_MSG_LEN
lastHeaderPayloadback to summary
private String lastHeaderPayload
MAX_PACKET_DUMP_LENGTHback to summary
private static final int MAX_PACKET_DUMP_LENGTH

Max number of bytes to dump when tracing the protocol

packetDebugBufferback to summary
private LinkedList<StringBuilder> packetDebugBuffer
packetDebugBufferSizeback to summary
private RuntimeProperty<Integer> packetDebugBufferSize
packetReaderback to summary
private MessageReader<NativePacketHeader, NativePacketPayload> packetReader
packetSequenceResetback to summary
private boolean packetSequenceReset

Constructor Detail

DebugBufferingPacketReaderback to summary
public DebugBufferingPacketReader(MessageReader<NativePacketHeader, NativePacketPayload> packetReader, LinkedList<StringBuilder> packetDebugBuffer, RuntimeProperty<Integer> packetDebugBufferSize)

Method Detail

getMessageSequenceback to summary
public byte getMessageSequence()

Overrides default com.mysql.cj.protocol.MessageReader.getMessageSequence.

Doc from com.mysql.cj.protocol.MessageReader.getMessageSequence.

Get last message sequence number, as it was stored by readHeader().

Returns:byte

number

Annotations
@Override
probeHeaderback to summary
public NativePacketHeader probeHeader() throws IOException

Overrides default com.mysql.cj.protocol.MessageReader.probeHeader.

Doc from com.mysql.cj.protocol.MessageReader.probeHeader.

Read the next message header from server, possibly blocking indefinitely until the message is received, and cache it so that the next readHeader() return the same header.

Returns:NativePacketHeader

MessageHeader of the next message

Annotations
@Override
Exceptions
IOException:
if an error occurs
probeMessageback to summary
public NativePacketPayload probeMessage(Optional<NativePacketPayload> reuse, NativePacketHeader header) throws IOException

Overrides default com.mysql.cj.protocol.MessageReader.probeMessage.

Doc from com.mysql.cj.protocol.MessageReader.probeMessage.

Read message from server into to the given Message instance or into the new one if not present and cache it so that the next readMessage(Optional, MessageHeader) return the same message. For asynchronous channel it synchronously reads the next message in the stream, blocking until the message is read fully. Could throw CJCommunicationsException wrapping an IOException during read or parse

Parameters
reuse:Optional<NativePacketPayload>

Message object to reuse. May be ignored by implementation.

header:NativePacketHeader

MessageHeader instance

Returns:NativePacketPayload

Message instance

Annotations
@Override
Exceptions
IOException:
if an error occurs
readHeaderback to summary
public NativePacketHeader readHeader() throws IOException

Implements com.mysql.cj.protocol.MessageReader.readHeader.

Doc from com.mysql.cj.protocol.MessageReader.readHeader.

Read the next message header from server, possibly blocking indefinitely until the message is received.

Returns:NativePacketHeader

MessageHeader of the next message

Annotations
@Override
Exceptions
IOException:
if an error occurs
readHeaderLocalback to summary
private NativePacketHeader readHeaderLocal(byte prevPacketSeq, NativePacketHeader hdr) throws IOException
readMessageback to summary
public NativePacketPayload readMessage(Optional<NativePacketPayload> reuse, NativePacketHeader header) throws IOException

Implements com.mysql.cj.protocol.MessageReader.readMessage.

Doc from com.mysql.cj.protocol.MessageReader.readMessage.

Read message from server into to the given Message instance or into the new one if not present. For asynchronous channel it synchronously reads the next message in the stream, blocking until the message is read fully. Could throw CJCommunicationsException wrapping an IOException during read or parse

Parameters
reuse:Optional<NativePacketPayload>

Message object to reuse. May be ignored by implementation.

header:NativePacketHeader

MessageHeader instance

Returns:NativePacketPayload

Message instance

Annotations
@Override
Exceptions
IOException:
if an error occurs
resetMessageSequenceback to summary
public void resetMessageSequence()

Overrides default com.mysql.cj.protocol.MessageReader.resetMessageSequence.

Doc from com.mysql.cj.protocol.MessageReader.resetMessageSequence.

Set stored message sequence number to 0.

Annotations
@Override
undecorateback to summary
public MessageReader<NativePacketHeader, NativePacketPayload> undecorate()

Overrides default com.mysql.cj.protocol.MessageReader.undecorate.

Doc from com.mysql.cj.protocol.MessageReader.undecorate.

Return the previous MessageReader instance from the decorators chain or the current MessageReader if it is the first entry in a chain.

Returns:MessageReader<NativePacketHeader, NativePacketPayload>

MessageReader

Annotations
@Override
undecorateAllback to summary
public MessageReader<NativePacketHeader, NativePacketPayload> undecorateAll()

Overrides default com.mysql.cj.protocol.MessageReader.undecorateAll.

Doc from com.mysql.cj.protocol.MessageReader.undecorateAll.

Return a MessageReader instance free of decorators.

Returns:MessageReader<NativePacketHeader, NativePacketPayload>

MessageReader

Annotations
@Override