if(queueEntry.getDeliveryCount() != 0)
{
payload = payload.duplicate();
ValueHandler valueHandler = new ValueHandler(_typeRegistry);
Header oldHeader = null;
try
{
ByteBuffer encodedBuf = payload.duplicate();
Object value = valueHandler.parse(payload);
if(value instanceof Header)
{
oldHeader = (Header) value;
}
else
{
payload.position(0);
}
}
catch (AmqpErrorException e)
{
//TODO
throw new RuntimeException(e);
}
Header header = new Header();
if(oldHeader != null)
{
header.setDurable(oldHeader.getDurable());
header.setPriority(oldHeader.getPriority());
header.setTtl(oldHeader.getTtl());
}
header.setDeliveryCount(UnsignedInteger.valueOf(queueEntry.getDeliveryCount()));
_sectionEncoder.reset();
_sectionEncoder.encodeObject(header);
Binary encodedHeader = _sectionEncoder.getEncoding();
ByteBuffer oldPayload = payload;