FHIR Chat · org.hl7.fhir.validator.jar vs validator_cli.jar · implementers

Stream: implementers

Topic: org.hl7.fhir.validator.jar vs validator_cli.jar


view this post on Zulip David Gutknecht (Aug 06 2020 at 06:34):

Hello,

http://hl7.org/fhir/validator/ include two links.

But in confluence there is also a link to download the latest version of the validator that is different
https://github.com/hapifhir/org.hl7.fhir.core/releases/latest/download/validator_cli.jar it gives you validator_cli.jar

And It strange because I can validate this json mni-patientOverview-bundle-example1b.json with org.hl7.fhir.validator.jar
using command line java -Duser.language=en -jar org.hl7.fhir.validator.jar mni-patientOverview-bundle-example1.json -version 4.0 -ig https://mednet.swiss/fhir

But when I use validator_cli.jar with the same command line it returns me a Nullpointer exception,
below the stack trace:

fhir
FHIR Validation tool Version 5.0.18 (Git# 18cf563e7875). Built 2020-08-03T21:07:57.905Z (57 hours old)
Detected Java version: 10.0.2 from C:\Program Files\Java\jre-10.0.2 on amd64 (64bit). 2026MB available
Arguments: mni-patientOverview-bundle-example1.json -version 4.0 -ig https://mednet.swiss/fhir
Directories: Current = C:\Users\david.gutknecht.NOVCOM\Documents\Projects\mednet\interface-documentation\FHIR\ImplementationGuide, Package Cache = C:\Users\david.gutknecht.NOVCOM\.fhir\packages
.. FHIR Version 4.0, definitions from hl7.fhir.r4.core#4.0.1
.. connect to tx server @ http://tx.fhir.org
(v4.0.1)

  • .. load IG from https://mednet.swiss/fhir
  • .. load IG from ch.fhir.ig.ch-core#1.0.0
  • .. load IG from ch.fhir.ig.ch-epr-term#current
  • .. load IG from ch.fhir.ig.ch-epr-term#2.0.3
  • .. load IG from ch.fhir.ig.ch-emed#0.1.0
  • .. load IG from ch.fhir.ig.ch-core#current
    .. validate [mni-patientOverview-bundle-example1.json]
    Terminology server: Check for supported code systems for http://loinc.org
    Validation Infrastructure fail validating mni-patientOverview-bundle-example1.json: null
    Exception in thread "main" org.hl7.fhir.exceptions.FHIRException: java.lang.NullPointerException
    at org.hl7.fhir.validation.ValidationEngine.validate(ValidationEngine.java:1263)
    at org.hl7.fhir.validation.cli.services.ValidationService.validateSources(ValidationService.java:73)
    at org.hl7.fhir.validation.Validator.main(Validator.java:208)
    Caused by: java.lang.NullPointerException
    at org.hl7.fhir.utilities.cache.BasePackageCacheManager.getPackageId(BasePackageCacheManager.java:138)
    at org.hl7.fhir.utilities.cache.BasePackageCacheManager.getPackageId(BasePackageCacheManager.java:121)
    at org.hl7.fhir.utilities.cache.FilesystemPackageCacheManager.getPackageId(FilesystemPackageCacheManager.java:534)
    at org.hl7.fhir.validation.cli.services.StandAloneValidatorFetcher.resolveURL(StandAloneValidatorFetcher.java:65)
    at org.hl7.fhir.validation.ValidationEngine.resolveURL(ValidationEngine.java:1882)
    at org.hl7.fhir.validation.instance.InstanceValidator.checkPrimitive(InstanceValidator.java:1864)
    at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4003)
    at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
    at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4130)
    at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
    at org.hl7.fhir.validation.instance.InstanceValidator.startInner(InstanceValidator.java:3610)
    at org.hl7.fhir.validation.instance.InstanceValidator.start(InstanceValidator.java:3497)
    at org.hl7.fhir.validation.instance.InstanceValidator.validateResource(InstanceValidator.java:4595)
    at org.hl7.fhir.validation.instance.InstanceValidator.checkReference(InstanceValidator.java:2422)
    at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4024)
    at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
    at org.hl7.fhir.validation.instance.InstanceValidator.startInner(InstanceValidator.java:3610)
    at org.hl7.fhir.validation.instance.InstanceValidator.start(InstanceValidator.java:3521)
    at org.hl7.fhir.validation.instance.InstanceValidator.validateResource(InstanceValidator.java:4595)
    at org.hl7.fhir.validation.instance.InstanceValidator.validateContains(InstanceValidator.java:3767)
    at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4038)
    at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
    at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4055)
    at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
    at org.hl7.fhir.validation.instance.InstanceValidator.startInner(InstanceValidator.java:3610)
    at org.hl7.fhir.validation.instance.InstanceValidator.start(InstanceValidator.java:3497)
    at org.hl7.fhir.validation.instance.InstanceValidator.validateResource(InstanceValidator.java:4595)
    at org.hl7.fhir.validation.instance.InstanceValidator.validate(InstanceValidator.java:685)
    at org.hl7.fhir.validation.instance.InstanceValidator.validate(InstanceValidator.java:538)
    at org.hl7.fhir.validation.ValidationEngine.validate(ValidationEngine.java:1352)
    at org.hl7.fhir.validation.ValidationEngine.validate(ValidationEngine.java:1256)
    ... 2 more

Any idea ?

view this post on Zulip David Gutknecht (Aug 06 2020 at 06:39):

Maybe I found a part of the answer:
validator_cli.jar return : FHIR Validation tool Version 5.0.18 (Git# 18cf563e7875). Built 2020-08-03T21:07:57.905Z (57 hours old)
org.hl7.fhir.validator.jar returns : FHIR Validation tool Version 5.0.7-SNAPSHOT (Git# 6bc790d98b04). Built 2020-06-07T08:35:37.25+10:00 (60 days old)

view this post on Zulip Oliver Egger (Aug 06 2020 at 06:42):

the newer one linked from confluence is the latest one (validator_cli.jar)

view this post on Zulip Oliver Egger (Aug 06 2020 at 06:43):

can you refer to your ig locally? I assume the validator does not know hot resolve your ig https://mednet.swiss/fhir locally

view this post on Zulip David Gutknecht (Aug 06 2020 at 06:43):

This would mean that validator_cli generates some nullpointer exception

view this post on Zulip Oliver Egger (Aug 06 2020 at 06:46):

yes it looks like it cannot resolve a fhir ig package

view this post on Zulip David Gutknecht (Aug 06 2020 at 06:49):

https://mednet.swiss/fhir is valid, and works with the older version of the validator
I just tryed with following command line :
java -Duser.language=en -jar validator_cli.jar mni-patientOverview-bundle-example1.json -version 4.0 -ig output/
Same result

Validation Infrastructure fail validating mni-patientOverview-bundle-example1.json: null
Exception in thread "main" org.hl7.fhir.exceptions.FHIRException: java.lang.NullPointerException
at org.hl7.fhir.validation.ValidationEngine.validate(ValidationEngine.java:1263)
at org.hl7.fhir.validation.cli.services.ValidationService.validateSources(ValidationService.java:73)
at org.hl7.fhir.validation.Validator.main(Validator.java:208)
Caused by: java.lang.NullPointerException
at org.hl7.fhir.utilities.cache.BasePackageCacheManager.getPackageId(BasePackageCacheManager.java:138)
at org.hl7.fhir.utilities.cache.BasePackageCacheManager.getPackageId(BasePackageCacheManager.java:121)
at org.hl7.fhir.utilities.cache.FilesystemPackageCacheManager.getPackageId(FilesystemPackageCacheManager.java:534)
at org.hl7.fhir.validation.cli.services.StandAloneValidatorFetcher.resolveURL(StandAloneValidatorFetcher.java:65)
at org.hl7.fhir.validation.ValidationEngine.resolveURL(ValidationEngine.java:1882)
at org.hl7.fhir.validation.instance.InstanceValidator.checkPrimitive(InstanceValidator.java:1864)

view this post on Zulip Grahame Grieve (Aug 06 2020 at 07:38):

already fixed that - next release

view this post on Zulip David Gutknecht (Aug 06 2020 at 08:04):

Nice ! Thanks !!


Last updated: Apr 12 2022 at 19:14 UTC