function addMessages(aMessages, sInstancePath, sContextUrl) {
			bHasMessages = true;
			if (aMessages && aMessages.length) {
				that.checkSharedRequest();
				mPathToODataMessages[sInstancePath] = aMessages;
				aMessages.forEach(function (oMessage) {
					oMessage.longtextUrl
						&&= _Helper.makeAbsolute(oMessage.longtextUrl, sContextUrl);
				});
			}
		}
Processes the response from the server. All arrays are annotated by their length, influenced
by the annotations "@odata.count" and "@odata.nextLink". Recursively calculates the key
predicates for all entities in the result. Collects and reports OData messages via
{@link sap.ui.model.odata.v4.lib._Requestor#reportStateMessages}.

@param {any} oRoot An OData response, arrays or simple values are wrapped into an object as
  property "value"
@param {object} mTypeForMetaPath A map from absolute meta path to entity type (as delivered
  by {@link #fetchTypes})
@param {string} [sRootMetaPath=this.sMetaPath] The absolute meta path for <code>oRoot</code>
@param {string} [sRootPath=""] Path to <code>oRoot</code>, relative to the cache; used to
  compute the target property of messages
@param {number} [iStart]
  The index in the collection where "oRoot.value" needs to be inserted or undefined if
  "oRoot" references a single entity.
@param {boolean} [bKeepReportedMessagesPath]
  Whether <code>this.sReportedMessagesPath</code> should be kept unchanged
@throws {Error}
  If the cache is shared and OData messages would be reported

@private