public override Stream OpenForDirectUpdate(Stream stream) {
Stream result;
if ((stream==null)||!stream.CanWrite) {
result=new MemoryStream();
if (stream!=null) {
stream.Position=0;
StreamUtils.Copy(stream, result, new byte[4096]);
stream.Dispose();
}
} else {
result=stream;
}
return result;
}