FHIR Chat · Validator throws Java error · implementers

Stream: implementers

Topic: Validator throws Java error


view this post on Zulip Mike Henderson (Aug 29 2018 at 16:04):

When I install the "official" validator and try to validate a sample resource, Java throws an error. Here are the details. Any ideas? Java version issue?

PS C:\Program Files\FHIR> ls

Directory: C:\Program Files\FHIR

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 8/25/2018 3:16 PM 15767 ccda-samp-disc-sum.json
-a---- 8/27/2018 4:59 PM 35528413 org.hl7.fhir.validator.jar
-a---- 8/29/2018 11:18 AM 3874 pat-ex.xml
-a---- 8/29/2018 9:11 AM 3176 pt-123-json.txt
-a---- 8/27/2018 4:59 PM 3798 readme.txt
-a---- 8/29/2018 11:13 AM 2057 vx-allergy-123.json
-a---- 8/29/2018 9:14 AM 5589 vxvista-pt-123.json

PS C:\Program Files\FHIR> java -jar org.hl7.fhir.validator.jar pat-ex.xml -version 3.0
.. connect to tx server @ http://tx.fhir.org/r4
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at org.hl7.fhir.utilities.TextFile.streamToString(TextFile.java:142)
at org.hl7.fhir.dstu3.formats.JsonParserBase.loadJson(JsonParserBase.java:159)
at org.hl7.fhir.dstu3.formats.JsonParserBase.parse(JsonParserBase.java:89)
at org.hl7.fhir.convertors.R3ToR4Loader.loadBundle(R3ToR4Loader.java:37)
at org.hl7.fhir.r4.context.SimpleWorkerContext.loadFromFileJson(SimpleWorkerContext.java:251)
at org.hl7.fhir.r4.context.SimpleWorkerContext.loadDefinitionItem(SimpleWorkerContext.java:199)
at org.hl7.fhir.r4.context.SimpleWorkerContext.fromDefinitions(SimpleWorkerContext.java:191)
at org.hl7.fhir.r4.validation.ValidationEngine.loadDefinitions(ValidationEngine.java:301)
at org.hl7.fhir.r4.validation.ValidationEngine.loadInitialDefinitions(ValidationEngine.java:263)
at org.hl7.fhir.r4.validation.ValidationEngine.<init>(ValidationEngine.java:288)
at org.hl7.fhir.r4.validation.Validator.main(Validator.java:337)
PS C:\Program Files\FHIR> java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) Client VM (build 25.181-b13, mixed mode)
PS C:\Program Files\FHIR>

Much obliged for any guidance...

view this post on Zulip Lloyd McKenzie (Aug 29 2018 at 16:07):

As the error says, you're running out of memory. You may need to experiment passing -Xmx parameter to specify the amount of memory.

view this post on Zulip Mike Henderson (Aug 29 2018 at 16:42):

I've specified -Xms and -Xmx values up to 9G (I have ~10G free)... no difference. Would the Java version matter?

PS C:\Program Files\FHIR> java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) Client VM (build 25.181-b13, mixed mode)

view this post on Zulip Lloyd McKenzie (Aug 29 2018 at 16:56):

Can you share your instance? I won't have a chance to dig into it today, but @Grahame Grieve might.

view this post on Zulip Mike Henderson (Aug 29 2018 at 17:02):

It seems to happen with any instance. I'm just using http://build.fhir.org//patient-example.xml, retrieved like this, as given in the validator documentation example:

wget http://build.fhir.org//patient-example.xml -O pat-ex.xml

Thanks!

view this post on Zulip Lloyd McKenzie (Aug 29 2018 at 17:04):

And by "official" validator, you mean the one from http://build.fhir.org?

view this post on Zulip Lloyd McKenzie (Aug 29 2018 at 17:04):

(The 'current' one)

view this post on Zulip Mike Henderson (Aug 29 2018 at 17:07):

Correct.

view this post on Zulip Mike Henderson (Aug 29 2018 at 17:38):

BTW, I'm following the examples at https://build.fhir.org/validation.html.
Also, when I try to validate against a remote resource, this ensues:
PS C:\Users\mhenderson\FHIR> java -jar org.hl7.fhir.validator.jar http://build.fhir.org///patient-example.html -profile
http://hl7.org/fhir/StructureDefinition/Patient
.. connect to tx server @ http://tx.fhir.org/r4
Exception in thread "main" org.hl7.fhir.exceptions.FHIRException: Unable to resolve the package 'hl7.fhir.core-3.5.0'
at org.hl7.fhir.utilities.cache.PackageCacheManager.resolvePackage(PackageCacheManager.java:491)
at org.hl7.fhir.r4.validation.ValidationEngine.resolvePackage(ValidationEngine.java:541)
at org.hl7.fhir.r4.validation.ValidationEngine.fetchByPackage(ValidationEngine.java:530)
at org.hl7.fhir.r4.validation.ValidationEngine.loadIgSource(ValidationEngine.java:390)
at org.hl7.fhir.r4.validation.ValidationEngine.loadDefinitions(ValidationEngine.java:298)
at org.hl7.fhir.r4.validation.ValidationEngine.loadInitialDefinitions(ValidationEngine.java:263)
at org.hl7.fhir.r4.validation.ValidationEngine.<init>(ValidationEngine.java:288)
at org.hl7.fhir.r4.validation.Validator.main(Validator.java:337)

view this post on Zulip Lloyd McKenzie (Aug 29 2018 at 17:45):

Ah. That's a Grahame issue. Looks like we need to add an extra step to the "increment version" process.

view this post on Zulip Grahame Grieve (Aug 30 2018 at 22:30):

memory: make sure you pass -Xmx parameter before the .jar on the command line

view this post on Zulip Grahame Grieve (Aug 30 2018 at 22:30):

committing a fix for the definitions now - sorry I missed that.

view this post on Zulip Mike Henderson (Aug 31 2018 at 12:57):

The right placement of the -Xmx parameter did the trick; thanks, Grahame and Lloyd!


Last updated: Apr 12 2022 at 19:14 UTC