Skip to content

Commit 5454035

Browse files
authored
CSHARP-5151: Coverity analysis defect 102658: Dereference after null check. (#1363)
1 parent dd47c25 commit 5454035

File tree

2 files changed

+0
-340
lines changed

2 files changed

+0
-340
lines changed

src/MongoDB.Driver.Core/Core/Operations/BulkUnmixedWriteOperationEmulatorBase.cs

Lines changed: 0 additions & 219 deletions
This file was deleted.

src/MongoDB.Driver.Core/Core/Operations/BulkWriteBatchResult.cs

Lines changed: 0 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -133,91 +133,6 @@ public static BulkWriteBatchResult Create(
133133
indexMap);
134134
}
135135

136-
public static BulkWriteBatchResult Create(
137-
WriteRequest request,
138-
WriteConcernResult writeConcernResult,
139-
MongoWriteConcernException writeConcernException,
140-
IndexMap indexMap)
141-
{
142-
var processedRequests = new[] { request };
143-
var unprocessedRequests = __noWriteRequests;
144-
BsonValue upsertId = null;
145-
var documentsAffected = 0L;
146-
147-
if (writeConcernResult != null)
148-
{
149-
upsertId = writeConcernResult.Upserted;
150-
documentsAffected = writeConcernResult.DocumentsAffected;
151-
var updateRequest = request as UpdateRequest;
152-
153-
if (upsertId == null &&
154-
documentsAffected == 1 &&
155-
updateRequest != null &&
156-
updateRequest.IsUpsert &&
157-
!writeConcernResult.UpdatedExisting)
158-
{
159-
// Get the _id field first from the Update document
160-
// and then from the Query document.
161-
upsertId =
162-
updateRequest.Update.ToBsonDocument().GetValue("_id", null) ??
163-
updateRequest.Filter.ToBsonDocument().GetValue("_id", null);
164-
}
165-
}
166-
167-
var upserts = (upsertId == null) ? __noUpserts : new[] { new BulkWriteOperationUpsert(0, upsertId) };
168-
var writeErrors = __noWriteErrors;
169-
BulkWriteConcernError writeConcernError = null;
170-
171-
if (writeConcernException != null)
172-
{
173-
var getLastErrorResponse = writeConcernResult.Response;
174-
if (IsGetLasterrorResponseAWriteConcernError(getLastErrorResponse))
175-
{
176-
writeConcernError = CreateWriteConcernErrorFromGetLastErrorResponse(getLastErrorResponse);
177-
}
178-
else
179-
{
180-
writeErrors = new[] { CreateWriteErrorFromGetLastErrorResponse(getLastErrorResponse) };
181-
}
182-
}
183-
184-
if (request.RequestType == WriteRequestType.Insert && writeErrors.Count == 0)
185-
{
186-
documentsAffected = 1; // note: DocumentsAffected is 0 for inserts
187-
}
188-
189-
var matchedCount = 0L;
190-
var deletedCount = 0L;
191-
var insertedCount = 0L;
192-
long? modifiedCount = 0L;
193-
switch (request.RequestType)
194-
{
195-
case WriteRequestType.Delete:
196-
deletedCount = documentsAffected;
197-
break;
198-
case WriteRequestType.Insert:
199-
insertedCount = documentsAffected;
200-
break;
201-
case WriteRequestType.Update:
202-
matchedCount = documentsAffected - upserts.Count();
203-
modifiedCount = null; // getLasterror does not report this value
204-
break;
205-
}
206-
207-
return new BulkWriteBatchResult(
208-
1, // batchCount
209-
processedRequests,
210-
unprocessedRequests,
211-
matchedCount,
212-
deletedCount,
213-
insertedCount,
214-
modifiedCount,
215-
upserts,
216-
writeErrors,
217-
writeConcernError,
218-
indexMap);
219-
}
220-
221136
private static IReadOnlyList<WriteRequest> CreateProcessedRequests(IReadOnlyList<WriteRequest> requests, IReadOnlyList<BulkWriteOperationError> writeErrors, bool isOrdered)
222137
{
223138
if (!isOrdered || writeErrors.Count == 0)
@@ -281,38 +196,6 @@ private static BulkWriteConcernError CreateWriteConcernError(
281196
return null;
282197
}
283198

284-
private static BulkWriteConcernError CreateWriteConcernErrorFromGetLastErrorResponse(BsonDocument getLastErrorResponse)
285-
{
286-
var code = getLastErrorResponse.GetValue("code", 64).ToInt32(); // default = WriteConcernFailed
287-
var codeName = (string)getLastErrorResponse.GetValue("codeName", null);
288-
289-
string message = null;
290-
BsonValue value;
291-
if (getLastErrorResponse.TryGetValue("err", out value) && value.BsonType == BsonType.String)
292-
{
293-
message = value.AsString;
294-
}
295-
else if (getLastErrorResponse.TryGetValue("jnote", out value) && value.BsonType == BsonType.String)
296-
{
297-
message = value.AsString;
298-
}
299-
else if (getLastErrorResponse.TryGetValue("wnote", out value) && value.BsonType == BsonType.String)
300-
{
301-
message = value.AsString;
302-
}
303-
304-
var details = new BsonDocument(getLastErrorResponse.Where(e => !new[] { "ok", "code", "err" }.Contains(e.Name)));
305-
306-
return new BulkWriteConcernError(code, codeName, message, details);
307-
}
308-
309-
private static BulkWriteOperationError CreateWriteErrorFromGetLastErrorResponse(BsonDocument getLastErrorResponse)
310-
{
311-
var code = getLastErrorResponse.GetValue("code", 8).ToInt32(); // default = UnknownError
312-
var message = (string)getLastErrorResponse.GetValue("err", null);
313-
return new BulkWriteOperationError(0, code, message, null);
314-
}
315-
316199
private static IReadOnlyList<BulkWriteOperationError> CreateWriteErrors(BsonDocument writeCommandResponse)
317200
{
318201
var writeErrors = new List<BulkWriteOperationError>();
@@ -333,10 +216,6 @@ private static IReadOnlyList<BulkWriteOperationError> CreateWriteErrors(BsonDocu
333216
return writeErrors;
334217
}
335218

336-
private static bool IsGetLasterrorResponseAWriteConcernError(BsonDocument getLastErrorResponse)
337-
{
338-
return new[] { "wtimeout", "jnote", "wnote" }.Any(n => getLastErrorResponse.Contains(n));
339-
}
340219
#endregion
341220

342221
// fields

0 commit comments

Comments
 (0)