NCEAS / metadig-engine

MetaDig Engine: multi-dialect metadata assessment engine
7 stars 5 forks source link

java.lang.NullPointerException when running a check #32

Closed amoeba closed 8 years ago

amoeba commented 8 years ago

I am able to get an NPE when I run this (apparently) malformed, single-check suite:

<?xml version="1.0" encoding="UTF-8"?>

<suite>
    <id>test-lter-suite.1.1</id>
    <name>mdqengine provisional test suite for LTER</name>

  <check>
        <id>check-entity.1.1</id>
        <name>entityNameLength</name>
        <description>Length of entity name is less than 100 characters.</description>
        <environment>python</environment>
        <dialect>
            <name>eml</name>
            <xpath>boolean(/*[local-name() = 'eml'])</xpath>
        </dialect>
        <type>metadata</type>
        <level>INFO</level>
        <selector>
            <name>entityNames</name>
            <xpath>/eml/dataset/dataTable/entityName</xpath>
    </selector>
        <code><![CDATA[
def call():
    mdq_result = {}
      ]]></code>
    </check>
</suite>

Here's my output:

$ mvn exec:java -Dexec.mainClass="edu.ucsb.nceas.mdqengine.MDQEngine" -Dexec.args="$SUITE $DOC"
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building mdqengine 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ mdqengine ---
^[[Ajava.lang.NullPointerException
    at edu.ucsb.nceas.mdqengine.dispatch.Dispatcher.dispatch(Dispatcher.java:96)
    at edu.ucsb.nceas.mdqengine.processor.XMLDialect.runCheck(XMLDialect.java:175)
    at edu.ucsb.nceas.mdqengine.MDQEngine.runSuite(MDQEngine.java:118)
    at edu.ucsb.nceas.mdqengine.MDQEngine.main(MDQEngine.java:152)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
    at java.lang.Thread.run(Thread.java:745)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.131 s
[INFO] Finished at: 2016-08-10T11:46:00-08:00
[INFO] Final Memory: 40M/444M
[INFO] ------------------------------------------------------------------------

I haven't looked into why this is yet.

leinfelder commented 8 years ago

I believe this is fixed now.