improve match error (#6260)

* improve error message

* improve error message

* fix tests
This commit is contained in:
Ken Stevens 2024-08-31 20:09:56 -04:00 committed by GitHub
parent 161a89db0e
commit 1e2d8b123e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 12 additions and 8 deletions

View File

@ -91,7 +91,7 @@ ca.uhn.fhir.jpa.dao.BaseHapiFhirDao.incomingNoopInTransaction=Transaction contai
ca.uhn.fhir.jpa.dao.BaseHapiFhirDao.invalidMatchUrlInvalidResourceType=Invalid match URL "{0}" - Unknown resource type: "{1}"
ca.uhn.fhir.jpa.dao.BaseStorageDao.invalidMatchUrlNoMatches=Invalid match URL "{0}" - No resources match this search
ca.uhn.fhir.jpa.dao.BaseStorageDao.inlineMatchNotSupported=Inline match URLs are not supported on this server. Cannot process reference: "{0}"
ca.uhn.fhir.jpa.dao.BaseStorageDao.transactionOperationWithMultipleMatchFailure=Failed to {0} resource with match URL "{1}" because this search matched {2} resources
ca.uhn.fhir.jpa.dao.BaseStorageDao.transactionOperationWithMultipleMatchFailure=Failed to {0} {1} with match URL "{2}" because this search matched {3} resources
ca.uhn.fhir.jpa.dao.BaseStorageDao.deleteByUrlThresholdExceeded=Failed to DELETE resources with match URL "{0}" because the resolved number of resources: {1} exceeds the threshold of {2}
ca.uhn.fhir.jpa.dao.BaseStorageDao.transactionOperationWithIdNotMatchFailure=Failed to {0} resource with match URL "{1}" because the matching resource does not match the provided ID
ca.uhn.fhir.jpa.dao.BaseTransactionProcessor.multiplePartitionAccesses=Can not process transaction with {0} entries: Entries require access to multiple/conflicting partitions

View File

@ -420,6 +420,7 @@ public abstract class BaseHapiFhirResourceDao<T extends IBaseResource> extends B
BaseStorageDao.class,
"transactionOperationWithMultipleMatchFailure",
"CREATE",
myResourceName,
theMatchUrl,
match.size());
throw new PreconditionFailedException(Msg.code(958) + msg);
@ -861,6 +862,7 @@ public abstract class BaseHapiFhirResourceDao<T extends IBaseResource> extends B
BaseStorageDao.class,
"transactionOperationWithMultipleMatchFailure",
"DELETE",
myResourceName,
theUrl,
resourceIds.size()));
}
@ -2335,6 +2337,7 @@ public abstract class BaseHapiFhirResourceDao<T extends IBaseResource> extends B
BaseStorageDao.class,
"transactionOperationWithMultipleMatchFailure",
"UPDATE",
myResourceName,
theMatchUrl,
match.size());
throw new PreconditionFailedException(Msg.code(988) + msg);

View File

@ -761,7 +761,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
mySystemDao.transaction(mySrd, request);
fail("");
} catch (PreconditionFailedException e) {
assertThat(e.getMessage()).contains("resource with match URL \"Patient?");
assertThat(e.getMessage()).contains("Patient with match URL \"Patient?");
}
}

View File

@ -641,7 +641,7 @@ public class ResourceProviderDstu2Test extends BaseResourceProviderDstu2Test {
//@formatter:on
fail("");
} catch (PreconditionFailedException e) {
assertEquals("HTTP 412 Precondition Failed: " + Msg.code(962) + "Failed to DELETE resource with match URL \"Patient?identifier=testDeleteConditionalMultiple\" because this search matched 2 resources", e.getMessage());
assertEquals("HTTP 412 Precondition Failed: " + Msg.code(962) + "Failed to DELETE Patient with match URL \"Patient?identifier=testDeleteConditionalMultiple\" because this search matched 2 resources", e.getMessage());
}
// Not deleted yet..

View File

@ -1357,7 +1357,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
mySystemDao.transaction(mySrd, request);
fail("");
} catch (PreconditionFailedException e) {
assertThat(e.getMessage()).contains("resource with match URL \"Patient?");
assertThat(e.getMessage()).contains("Patient with match URL \"Patient?");
}
}

View File

@ -1083,7 +1083,7 @@ public class ResourceProviderDstu3Test extends BaseResourceProviderDstu3Test {
//@formatter:on
fail("");
} catch (PreconditionFailedException e) {
assertEquals("HTTP 412 Precondition Failed: " + Msg.code(962) + "Failed to DELETE resource with match URL \"Patient?identifier=testDeleteConditionalMultiple&_format=json\" because this search matched 2 resources", e.getMessage());
assertEquals("HTTP 412 Precondition Failed: " + Msg.code(962) + "Failed to DELETE Patient with match URL \"Patient?identifier=testDeleteConditionalMultiple&_format=json\" because this search matched 2 resources", e.getMessage());
}
// Not deleted yet..

View File

@ -2548,7 +2548,7 @@ public class FhirSystemDaoR4Test extends BaseJpaR4SystemTest {
mySystemDao.transaction(mySrd, request);
fail();
} catch (PreconditionFailedException e) {
assertThat(e.getMessage()).contains("resource with match URL \"Patient?");
assertThat(e.getMessage()).contains("Patient with match URL \"Patient?");
}
}

View File

@ -529,7 +529,7 @@ public class PatchProviderR4Test extends BaseResourceProviderR4Test {
assertEquals(412, response.getStatusLine().getStatusCode());
String responseString = IOUtils.toString(response.getEntity().getContent(), StandardCharsets.UTF_8);
assertThat(responseString).contains("<OperationOutcome");
assertThat(responseString).contains("Failed to PATCH resource with match URL &quot;Patient?active=true&quot; because this search matched 2 resources");
assertThat(responseString).contains("Failed to PATCH Patient with match URL &quot;Patient?active=true&quot; because this search matched 2 resources");
}
}

View File

@ -1724,7 +1724,7 @@ public class ResourceProviderR4Test extends BaseResourceProviderR4Test {
//@formatter:on
fail();
} catch (PreconditionFailedException e) {
assertEquals("HTTP 412 Precondition Failed: " + Msg.code(962) + "Failed to DELETE resource with match URL \"Patient?identifier=testDeleteConditionalMultiple\" because this search matched 2 resources", e.getMessage());
assertEquals("HTTP 412 Precondition Failed: " + Msg.code(962) + "Failed to DELETE Patient with match URL \"Patient?identifier=testDeleteConditionalMultiple\" because this search matched 2 resources", e.getMessage());
}
// Not deleted yet..

View File

@ -122,6 +122,7 @@ public abstract class BaseStorageResourceDao<T extends IBaseResource> extends Ba
BaseStorageDao.class,
"transactionOperationWithMultipleMatchFailure",
"PATCH",
getResourceName(),
theConditionalUrl,
match.size());
throw new PreconditionFailedException(Msg.code(972) + msg);