assert !originalMessage.hasRemaining();
if (restore) {
originalByteBufferArray.restore();
}
originalByteBufferArray.recycle();
if (transformationResult != null) { // transformation error case
disposeBuffers(currentTargetBuffer, targetBuffer);
return transformationResult;