Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions eng/pipelines/templates/variables/globals.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
variables:
DefaultOptions: '--batch-mode --fail-at-end --settings eng/settings.xml'
LoggingOptions: '-Dorg.slf4j.simpleLogger.defaultLogLevel=error -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
MemoryOptions: '-Xmx3072m'
#Agent.Source.Git.ShallowFetchDepth: 1
skipComponentGovernanceDetection: true
EmulatorMsiUrl: 'https://acpedaily1.blob.core.windows.net/emulator/azure-cosmos-emulator.msi'
DefaultOptions: '--batch-mode --fail-at-end --settings eng/settings.xml'
LoggingOptions: '-Dorg.slf4j.simpleLogger.defaultLogLevel=error -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
MemoryOptions: '-Xmx3072m'
#Agent.Source.Git.ShallowFetchDepth: 1
skipComponentGovernanceDetection: true
EmulatorMsiUrl: 'https://aka.ms/cosmosdb-emulator'
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,11 @@ CosmosStoredProcedureResponse mapStoredProcedureResponseAndBlock(Mono<CosmosAsyn
* @return the cosmos sync stored procedure response
*/
CosmosStoredProcedureResponse convertResponse(CosmosAsyncStoredProcedureResponse response) {
return new CosmosStoredProcedureResponse(response, getStoredProcedure(response.getStoredProcedure().id()));
if (response.getStoredProcedure() != null) {
return new CosmosStoredProcedureResponse(response, getStoredProcedure(response.getStoredProcedure().id()));
} else {
return new CosmosStoredProcedureResponse(response, null);
}
}

/**
Expand Down Expand Up @@ -282,8 +286,12 @@ CosmosUserDefinedFunctionResponse mapUDFResponseAndBlock(Mono<CosmosAsyncUserDef
* @return the cosmos sync user defined function response
*/
CosmosUserDefinedFunctionResponse convertResponse(CosmosAsyncUserDefinedFunctionResponse response) {
return new CosmosUserDefinedFunctionResponse(response,
if (response.getUserDefinedFunction() != null) {
return new CosmosUserDefinedFunctionResponse(response,
getUserDefinedFunction(response.getUserDefinedFunction().getId()));
} else {
return new CosmosUserDefinedFunctionResponse(response, null);
}
}

//Trigger
Expand Down Expand Up @@ -318,8 +326,12 @@ CosmosTriggerResponse mapTriggerResponseAndBlock(Mono<CosmosAsyncTriggerResponse
* @return the cosmos sync trigger response
*/
CosmosTriggerResponse convertResponse(CosmosAsyncTriggerResponse response) {
return new CosmosTriggerResponse(response,
if (response.getTrigger() != null) {
return new CosmosTriggerResponse(response,
getTrigger(response.getTrigger().getId()));
} else {
return new CosmosTriggerResponse(response, null);
}
}

private <T> Iterator<FeedResponse<T>> getFeedIterator(Flux<FeedResponse<T>> itemFlux) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ public Builder<T> allPagesSatisfy(FeedResponseValidator<T> pageValidator) {
public void validate(List<FeedResponse<T>> feedList) {

for(FeedResponse<T> fp: feedList) {
pageValidator.validate(fp);
pageValidator.validate(fp);
}
}
});
Expand All @@ -191,15 +191,15 @@ public void validate(List<FeedResponse<CosmosItemProperties>> feedList) {
if (value instanceof Double) {

Double d = result.getDouble("_aggregate");
assertThat(d).isEqualTo(value);
assertThat(d).isEqualTo(value);
} else if (value instanceof Integer) {

Integer d = result.getInt("_aggregate");
assertThat(d).isEqualTo(value);
assertThat(d).isEqualTo(value);
} else if (value instanceof String) {

String d = result.getString("_aggregate");
assertThat(d).isEqualTo(value);
assertThat(d).isEqualTo(value);
} else if (value instanceof Document){

assertThat(result.toString()).isEqualTo(value.toString());
Expand Down Expand Up @@ -276,11 +276,11 @@ public void validate(List<FeedResponse<T>> feedList) {
if (shouldHaveMetrics) {
QueryMetrics queryMetrics = BridgeInternal.createQueryMetricsFromCollection(BridgeInternal.queryMetricsFromFeedResponse(feedPage).values());
assertThat(queryMetrics.getIndexHitDocumentCount()).isGreaterThanOrEqualTo(0);
assertThat(queryMetrics.getRetrievedDocumentSize()).isGreaterThan(0);
assertThat(queryMetrics.getRetrievedDocumentSize()).isGreaterThanOrEqualTo(0);
assertThat(queryMetrics.getTotalQueryExecutionTime().compareTo(Duration.ZERO)).isGreaterThan(0);
assertThat(queryMetrics.getOutputDocumentCount()).isGreaterThan(0);
assertThat(queryMetrics.getRetrievedDocumentCount()).isGreaterThan(0);
assertThat(queryMetrics.getDocumentLoadTime().compareTo(Duration.ZERO)).isGreaterThan(0);
assertThat(queryMetrics.getRetrievedDocumentCount()).isGreaterThanOrEqualTo(0);
assertThat(queryMetrics.getDocumentLoadTime().compareTo(Duration.ZERO)).isGreaterThanOrEqualTo(0);
assertThat(queryMetrics.getDocumentWriteTime().compareTo(Duration.ZERO)).isGreaterThanOrEqualTo(0);
assertThat(queryMetrics.getVMExecutionTime().compareTo(Duration.ZERO)).isGreaterThan(0);
assertThat(queryMetrics.getQueryPreparationTimes().getLogicalPlanBuildTime().compareTo(Duration.ZERO)).isGreaterThan(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,31 +95,32 @@ public void conflictResolutionPolicyCRUD() {
// 1. CUSTOM with valid sprocLink
// 2. CUSTOM with null sprocLink, should default to empty string
// 3. CUSTOM with empty sprocLink, should default to empty string
testConflictResolutionPolicyRequiringPath(ConflictResolutionMode.CUSTOM,
new String[] { "randomSprocName", null, "" }, new String[] { "randomSprocName", "", "" });
testConflictResolutionPolicyRequiringPath(ConflictResolutionMode.CUSTOM, new String[] { "dbs/mydb/colls" +
"/mycoll/sprocs/randomSprocName", null, "" }, new String[] { "dbs/mydb/colls/mycoll/sprocs" +
"/randomSprocName", "", "" });
}

private void testConflictResolutionPolicyRequiringPath(ConflictResolutionMode conflictResolutionMode,
String[] paths, String[] expectedPaths) {
for (int i = 0; i < paths.length; i++) {
for (int i = 0; i < paths.length; i++) {
CosmosContainerProperties collectionSettings = new CosmosContainerProperties(UUID.randomUUID().toString(), partitionKeyDef);

if (conflictResolutionMode == ConflictResolutionMode.LAST_WRITER_WINS) {
collectionSettings.setConflictResolutionPolicy(ConflictResolutionPolicy.createLastWriterWinsPolicy(paths[i]));
} else {
collectionSettings.setConflictResolutionPolicy(ConflictResolutionPolicy.createCustomPolicy(paths[i]));
}
collectionSettings = database.createContainer(collectionSettings, new CosmosContainerRequestOptions()).block().getProperties();
assertThat(collectionSettings.getConflictResolutionPolicy().getMode()).isEqualTo(conflictResolutionMode);

if (conflictResolutionMode == ConflictResolutionMode.LAST_WRITER_WINS) {
assertThat(collectionSettings.getConflictResolutionPolicy().getConflictResolutionPath()).isEqualTo(expectedPaths[i]);
} else {
assertThat(collectionSettings.getConflictResolutionPolicy().getConflictResolutionProcedure()).isEqualTo(expectedPaths[i]);
}
}
}

@Test(groups = "multi-master", timeOut = TIMEOUT)
public void invalidConflictResolutionPolicy_LastWriterWinsWithStoredProc() throws Exception {
CosmosContainerProperties collection = new CosmosContainerProperties(UUID.randomUUID().toString(), partitionKeyDef);
Expand Down