DoClose can be called before datawriter is set. By calling dataWriter.Disposed() a null reference exception is triggered.
Recommend a null check before disposing and setting it to null:
if (dataWriter != null)
{
dataWriter.Dispose();
dataWriter = null;
}
Line 265