fix bug (#5843)
This commit is contained in:
parent
6e5c6fa33c
commit
e3cc83a694
|
@ -609,34 +609,35 @@ public abstract class BaseParser implements IParser {
|
|||
private boolean isStripVersionsFromReferences(
|
||||
CompositeChildElement theCompositeChildElement, IBaseResource theResource) {
|
||||
|
||||
Set<String> autoVersionReferencesAtPathExtensions =
|
||||
MetaUtil.getAutoVersionReferencesAtPath(theResource.getMeta(), myContext.getResourceType(theResource));
|
||||
if (theResource != null) {
|
||||
Set<String> autoVersionReferencesAtPathExtensions = MetaUtil.getAutoVersionReferencesAtPath(
|
||||
theResource.getMeta(), myContext.getResourceType(theResource));
|
||||
|
||||
if (!autoVersionReferencesAtPathExtensions.isEmpty()
|
||||
&& theCompositeChildElement.anyPathMatches(autoVersionReferencesAtPathExtensions)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Boolean stripVersionsFromReferences = myStripVersionsFromReferences;
|
||||
if (stripVersionsFromReferences != null) {
|
||||
return stripVersionsFromReferences;
|
||||
}
|
||||
|
||||
if (myContext.getParserOptions().isStripVersionsFromReferences() == false) {
|
||||
if (!myContext.getParserOptions().isStripVersionsFromReferences()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Set<String> dontStripVersionsFromReferencesAtPaths = myDontStripVersionsFromReferencesAtPaths;
|
||||
if (dontStripVersionsFromReferencesAtPaths != null) {
|
||||
if (dontStripVersionsFromReferencesAtPaths.isEmpty() == false
|
||||
if (dontStripVersionsFromReferencesAtPaths != null
|
||||
&& !dontStripVersionsFromReferencesAtPaths.isEmpty()
|
||||
&& theCompositeChildElement.anyPathMatches(dontStripVersionsFromReferencesAtPaths)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
dontStripVersionsFromReferencesAtPaths =
|
||||
myContext.getParserOptions().getDontStripVersionsFromReferencesAtPaths();
|
||||
return dontStripVersionsFromReferencesAtPaths.isEmpty() != false
|
||||
return dontStripVersionsFromReferencesAtPaths.isEmpty()
|
||||
|| !theCompositeChildElement.anyPathMatches(dontStripVersionsFromReferencesAtPaths);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
type: fix
|
||||
issue: 5842
|
||||
title: "Fixed a bug where an NPE was being thrown when trying to serialize a FHIR fragment (e.g., backboneElement
|
||||
, compound datatype) to a string representation if the fragment contains a `Reference`."
|
|
@ -1168,6 +1168,18 @@ public class JsonParserR4Test extends BaseTest {
|
|||
assertEquals(expected, actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeToString_CompoundTypeWithReference() {
|
||||
Identifier identifier = new Identifier();
|
||||
identifier.setSystem("http://system.org");
|
||||
identifier.setValue("123");
|
||||
Reference reference = new Reference("Organization/1");
|
||||
identifier.setAssigner(reference);
|
||||
String expected = "{\"system\":\"http://system.org\",\"value\":\"123\",\"assigner\":{\"reference\":\"Organization/1\"}}";
|
||||
String actual = ourCtx.newJsonParser().encodeToString(identifier);
|
||||
assertEquals(expected, actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeToString_Resource() {
|
||||
Patient p = new Patient();
|
||||
|
|
Loading…
Reference in New Issue