You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Jinli Liang (JIRA)" <ji...@apache.org> on 2017/03/06 05:26:32 UTC

[jira] [Updated] (NIFI-3556) ValidateCsv - String index out of range when parsing schema

     [ https://issues.apache.org/jira/browse/NIFI-3556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jinli Liang updated NIFI-3556:
------------------------------
    Description: 
Throwing "String index out of range" error using a csv schema like "Optional(ParseInt),Null,Optional(ParseDouble),Null".

Tested on nifi-1.1.0-RC2 - 5536f690a81418955442d52687695f65f0a44cd0

Can work around by changing Null to Null()
{noformat}
Optional(ParseInt),Null(),Optional(ParseDouble),Null()
{noformat}

Can be re-produced with 
{noformat}
    @Test
    public void testSchemaEndsWithNull() {
        final TestRunner runner = TestRunners.newTestRunner(new ValidateCsv());
        runner.setProperty(ValidateCsv.DELIMITER_CHARACTER, ",");
        runner.setProperty(ValidateCsv.END_OF_LINE_CHARACTER, "\n");
        runner.setProperty(ValidateCsv.QUOTE_CHARACTER, "\"");
        runner.setProperty(ValidateCsv.HEADER, "true");

        runner.setProperty(ValidateCsv.SCHEMA, "Optional(ParseInt),Null,Optional(ParseDouble),Null");

        runner.enqueue("id,str,flt,dbk\n1,asdf,1.01,asdfasdf\n1,asdf,1.01,asdfasdf\n1,asdf,1.01,asdfasdf\n1,asdf,1.01,asdfasdf");
        runner.run();
        runner.assertAllFlowFilesTransferred(ValidateCsv.REL_VALID, 1);

        runner.enqueue("id,str,flt,dbk\n1,asdf,1.01,asdfasdf,asdf,asdf,asdf,asdf,asdf");
        runner.run();
        runner.assertTransferCount(ValidateCsv.REL_INVALID, 1);
    }
{noformat}

{noformat}
/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/java -ea -Djava.awt.headless=true -Xmx1G -Djava.net.preferIPv4Stack=true -Didea.launcher.port=7535 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/junit/lib/junit-rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/tools.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/target/test-classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/target/classes:/Users/jinli/DataRepublic/nifi/nifi-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-processor-utilities/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-flowfile-packager/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/target/classes:/Users/jinli/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar:/Users/jinli/.m2/repository/com/sun/jersey/jersey-client/1.19/jersey-client-1.19.jar:/Users/jinli/.m2/repository/com/sun/jersey/jersey-core/1.19/jersey-core-1.19.jar:/Users/jinli/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar:/Users/jinli/.m2/repository/com/sun/jersey/jersey-server/1.19/jersey-server-1.19.jar:/Users/jinli/.m2/repository/commons-net/commons-net/3.3/commons-net-3.3.jar:/Users/jinli/.m2/repository/org/apache/commons/commons-compress/1.11/commons-compress-1.11.jar:/Users/jinli/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar:/Users/jinli/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.55/bcprov-jdk15on-1.55.jar:/Users/jinli/.m2/repository/org/bouncycastle/bcpg-jdk15on/1.55/bcpg-jdk15on-1.55.jar:/Users/jinli/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.55/bcpkix-jdk15on-1.55.jar:/Users/jinli/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-security-utils/target/classes:/Users/jinli/.m2/repository/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar:/Users/jinli/.m2/repository/com/jcraft/jzlib/1.1.3/jzlib-1.1.3.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-server/9.3.9.v20160517/jetty-server-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-http/9.3.9.v20160517/jetty-http-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-util/9.3.9.v20160517/jetty-util-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-io/9.3.9.v20160517/jetty-io-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-servlet/9.3.9.v20160517/jetty-servlet-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-security/9.3.9.v20160517/jetty-security-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/apache/httpcomponents/httpclient/4.4.1/httpclient-4.4.1.jar:/Users/jinli/.m2/repository/org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1.jar:/Users/jinli/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/jinli/.m2/repository/javax/mail/mail/1.4.7/mail-1.4.7.jar:/Users/jinli/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jinli/.m2/repository/com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar:/Users/jinli/.m2/repository/org/tukaani/xz/1.5/xz-1.5.jar:/Users/jinli/.m2/repository/net/sf/saxon/Saxon-HE/9.6.0-5/Saxon-HE-9.6.0-5.jar:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-socket-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-logging-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-properties/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/target/classes:/Users/jinli/.m2/repository/joda-time/joda-time/2.8.2/joda-time-2.8.2.jar:/Users/jinli/.m2/repository/javax/jms/javax.jms-api/2.0.1/javax.jms-api-2.0.1.jar:/Users/jinli/.m2/repository/org/apache/activemq/activemq-client/5.12.1/activemq-client-5.12.1.jar:/Users/jinli/.m2/repository/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar:/Users/jinli/.m2/repository/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1.1/geronimo-jms_1.1_spec-1.1.1.jar:/Users/jinli/.m2/repository/org/fusesource/hawtbuf/hawtbuf/1.11/hawtbuf-1.11.jar:/Users/jinli/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee-management_1.1_spec/1.0.1/geronimo-j2ee-management_1.1_spec-1.0.1.jar:/Users/jinli/.m2/repository/com/jayway/jsonpath/json-path/2.0.0/json-path-2.0.0.jar:/Users/jinli/.m2/repository/net/minidev/json-smart/2.1.1/json-smart-2.1.1.jar:/Users/jinli/.m2/repository/net/minidev/asm/1.0.2/asm-1.0.2.jar:/Users/jinli/.m2/repository/asm/asm/3.3.1/asm-3.3.1.jar:/Users/jinli/.m2/repository/org/apache/tika/tika-core/1.14/tika-core-1.14.jar:/Users/jinli/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.6.1/jackson-databind-2.6.1.jar:/Users/jinli/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.6.0/jackson-annotations-2.6.0.jar:/Users/jinli/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.6.1/jackson-core-2.6.1.jar:/Users/jinli/.m2/repository/org/apache/avro/avro/1.7.7/avro-1.7.7.jar:/Users/jinli/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar:/Users/jinli/.m2/repository/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/target/classes:/Users/jinli/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar:/Users/jinli/.m2/repository/com/squareup/okhttp/okhttp/2.7.1/okhttp-2.7.1.jar:/Users/jinli/.m2/repository/com/squareup/okio/okio/1.6.0/okio-1.6.0.jar:/Users/jinli/.m2/repository/com/burgstaller/okhttp-digest/0.6/okhttp-digest-0.6.jar:/Users/jinli/.m2/repository/de/svenkubiak/jBcrypt/0.4.1/jBcrypt-0.4.1.jar:/Users/jinli/.m2/repository/com/google/guava/guava/18.0/guava-18.0.jar:/Users/jinli/DataRepublic/nifi/nifi-mock/target/classes:/Users/jinli/DataRepublic/nifi/nifi-framework-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-expression-language/target/classes:/Users/jinli/.m2/repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-data-provenance-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/target/classes:/Users/jinli/.m2/repository/org/apache/activemq/activemq-broker/5.12.1/activemq-broker-5.12.1.jar:/Users/jinli/.m2/repository/org/apache/activemq/activemq-openwire-legacy/5.12.1/activemq-openwire-legacy-5.12.1.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/target/classes:/Users/jinli/.m2/repository/org/apache/derby/derby/10.11.1.1/derby-10.11.1.1.jar:/Users/jinli/.m2/repository/org/xerial/snappy/snappy-java/1.1.2/snappy-java-1.1.2.jar:/Users/jinli/.m2/repository/com/h2database/h2/1.4.187/h2-1.4.187.jar:/Users/jinli/.m2/repository/com/bazaarvoice/jolt/jolt-core/0.0.21/jolt-core-0.0.21.jar:/Users/jinli/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/jinli/.m2/repository/com/bazaarvoice/jolt/json-utils/0.0.21/json-utils-0.0.21.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-utils/target/classes:/Users/jinli/.m2/repository/net/sf/supercsv/super-csv/2.4.0/super-csv-2.4.0.jar:/Users/jinli/.m2/repository/com/fluenda/ParCEFone/1.2.0/ParCEFone-1.2.0.jar:/Users/jinli/.m2/repository/org/hibernate/hibernate-validator/5.2.4.Final/hibernate-validator-5.2.4.Final.jar:/Users/jinli/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar:/Users/jinli/.m2/repository/org/jboss/logging/jboss-logging/3.2.1.Final/jboss-logging-3.2.1.Final.jar:/Users/jinli/.m2/repository/com/fasterxml/classmate/1.1.0/classmate-1.1.0.jar:/Users/jinli/.m2/repository/javax/el/javax.el-api/3.0.0/javax.el-api-3.0.0.jar:/Users/jinli/.m2/repository/com/martiansoftware/macnificent/0.2.0/macnificent-0.2.0.jar:/Users/jinli/.m2/repository/junit/junit/4.12/junit-4.12.jar:/Users/jinli/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/Users/jinli/.m2/repository/org/mockito/mockito-core/1.10.19/mockito-core-1.10.19.jar:/Users/jinli/.m2/repository/org/objenesis/objenesis/2.1/objenesis-2.1.jar:/Users/jinli/.m2/repository/org/slf4j/slf4j-simple/1.7.12/slf4j-simple-1.7.12.jar:/Users/jinli/.m2/repository/org/codehaus/groovy/groovy-all/2.4.5/groovy-all-2.4.5.jar" com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 org.apache.nifi.processors.standard.TestValidateCsv,testSchemaEndsWithNull

java.lang.AssertionError: Processor has 1 validation failures:
'validate-csv-schema' validated against 'Optional(ParseInt),Null,Optional(ParseDouble),Null' is invalid because Error while parsing the schema: String index out of range: 5


	at org.junit.Assert.fail(Assert.java:88)
	at org.apache.nifi.util.MockProcessContext.assertValid(MockProcessContext.java:251)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:161)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:152)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:147)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:142)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:137)
	at org.apache.nifi.processors.standard.TestValidateCsv.testSchemaEndsWithNull(TestValidateCsv.java:133)
	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:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
	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:498)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)


Process finished with exit code 255
{noformat}

  was:
Throwing "String index out of range" error using a csv schema like "Optional(ParseInt),Null,Optional(ParseDouble),Null".

Tested on nifi-1.1.0-RC2 - 5536f690a81418955442d52687695f65f0a44cd0

Can be re-produced with 
{noformat}
    @Test
    public void testSchemaEndsWithNull() {
        final TestRunner runner = TestRunners.newTestRunner(new ValidateCsv());
        runner.setProperty(ValidateCsv.DELIMITER_CHARACTER, ",");
        runner.setProperty(ValidateCsv.END_OF_LINE_CHARACTER, "\n");
        runner.setProperty(ValidateCsv.QUOTE_CHARACTER, "\"");
        runner.setProperty(ValidateCsv.HEADER, "true");

        runner.setProperty(ValidateCsv.SCHEMA, "Optional(ParseInt),Null,Optional(ParseDouble),Null");

        runner.enqueue("id,str,flt,dbk\n1,asdf,1.01,asdfasdf\n1,asdf,1.01,asdfasdf\n1,asdf,1.01,asdfasdf\n1,asdf,1.01,asdfasdf");
        runner.run();
        runner.assertAllFlowFilesTransferred(ValidateCsv.REL_VALID, 1);

        runner.enqueue("id,str,flt,dbk\n1,asdf,1.01,asdfasdf,asdf,asdf,asdf,asdf,asdf");
        runner.run();
        runner.assertTransferCount(ValidateCsv.REL_INVALID, 1);
    }
{noformat}

{noformat}
/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/java -ea -Djava.awt.headless=true -Xmx1G -Djava.net.preferIPv4Stack=true -Didea.launcher.port=7535 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/junit/lib/junit-rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/tools.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/target/test-classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/target/classes:/Users/jinli/DataRepublic/nifi/nifi-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-processor-utilities/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-flowfile-packager/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/target/classes:/Users/jinli/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar:/Users/jinli/.m2/repository/com/sun/jersey/jersey-client/1.19/jersey-client-1.19.jar:/Users/jinli/.m2/repository/com/sun/jersey/jersey-core/1.19/jersey-core-1.19.jar:/Users/jinli/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar:/Users/jinli/.m2/repository/com/sun/jersey/jersey-server/1.19/jersey-server-1.19.jar:/Users/jinli/.m2/repository/commons-net/commons-net/3.3/commons-net-3.3.jar:/Users/jinli/.m2/repository/org/apache/commons/commons-compress/1.11/commons-compress-1.11.jar:/Users/jinli/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar:/Users/jinli/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.55/bcprov-jdk15on-1.55.jar:/Users/jinli/.m2/repository/org/bouncycastle/bcpg-jdk15on/1.55/bcpg-jdk15on-1.55.jar:/Users/jinli/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.55/bcpkix-jdk15on-1.55.jar:/Users/jinli/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-security-utils/target/classes:/Users/jinli/.m2/repository/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar:/Users/jinli/.m2/repository/com/jcraft/jzlib/1.1.3/jzlib-1.1.3.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-server/9.3.9.v20160517/jetty-server-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-http/9.3.9.v20160517/jetty-http-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-util/9.3.9.v20160517/jetty-util-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-io/9.3.9.v20160517/jetty-io-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-servlet/9.3.9.v20160517/jetty-servlet-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-security/9.3.9.v20160517/jetty-security-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/apache/httpcomponents/httpclient/4.4.1/httpclient-4.4.1.jar:/Users/jinli/.m2/repository/org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1.jar:/Users/jinli/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/jinli/.m2/repository/javax/mail/mail/1.4.7/mail-1.4.7.jar:/Users/jinli/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jinli/.m2/repository/com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar:/Users/jinli/.m2/repository/org/tukaani/xz/1.5/xz-1.5.jar:/Users/jinli/.m2/repository/net/sf/saxon/Saxon-HE/9.6.0-5/Saxon-HE-9.6.0-5.jar:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-socket-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-logging-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-properties/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/target/classes:/Users/jinli/.m2/repository/joda-time/joda-time/2.8.2/joda-time-2.8.2.jar:/Users/jinli/.m2/repository/javax/jms/javax.jms-api/2.0.1/javax.jms-api-2.0.1.jar:/Users/jinli/.m2/repository/org/apache/activemq/activemq-client/5.12.1/activemq-client-5.12.1.jar:/Users/jinli/.m2/repository/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar:/Users/jinli/.m2/repository/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1.1/geronimo-jms_1.1_spec-1.1.1.jar:/Users/jinli/.m2/repository/org/fusesource/hawtbuf/hawtbuf/1.11/hawtbuf-1.11.jar:/Users/jinli/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee-management_1.1_spec/1.0.1/geronimo-j2ee-management_1.1_spec-1.0.1.jar:/Users/jinli/.m2/repository/com/jayway/jsonpath/json-path/2.0.0/json-path-2.0.0.jar:/Users/jinli/.m2/repository/net/minidev/json-smart/2.1.1/json-smart-2.1.1.jar:/Users/jinli/.m2/repository/net/minidev/asm/1.0.2/asm-1.0.2.jar:/Users/jinli/.m2/repository/asm/asm/3.3.1/asm-3.3.1.jar:/Users/jinli/.m2/repository/org/apache/tika/tika-core/1.14/tika-core-1.14.jar:/Users/jinli/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.6.1/jackson-databind-2.6.1.jar:/Users/jinli/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.6.0/jackson-annotations-2.6.0.jar:/Users/jinli/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.6.1/jackson-core-2.6.1.jar:/Users/jinli/.m2/repository/org/apache/avro/avro/1.7.7/avro-1.7.7.jar:/Users/jinli/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar:/Users/jinli/.m2/repository/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/target/classes:/Users/jinli/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar:/Users/jinli/.m2/repository/com/squareup/okhttp/okhttp/2.7.1/okhttp-2.7.1.jar:/Users/jinli/.m2/repository/com/squareup/okio/okio/1.6.0/okio-1.6.0.jar:/Users/jinli/.m2/repository/com/burgstaller/okhttp-digest/0.6/okhttp-digest-0.6.jar:/Users/jinli/.m2/repository/de/svenkubiak/jBcrypt/0.4.1/jBcrypt-0.4.1.jar:/Users/jinli/.m2/repository/com/google/guava/guava/18.0/guava-18.0.jar:/Users/jinli/DataRepublic/nifi/nifi-mock/target/classes:/Users/jinli/DataRepublic/nifi/nifi-framework-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-expression-language/target/classes:/Users/jinli/.m2/repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-data-provenance-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/target/classes:/Users/jinli/.m2/repository/org/apache/activemq/activemq-broker/5.12.1/activemq-broker-5.12.1.jar:/Users/jinli/.m2/repository/org/apache/activemq/activemq-openwire-legacy/5.12.1/activemq-openwire-legacy-5.12.1.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/target/classes:/Users/jinli/.m2/repository/org/apache/derby/derby/10.11.1.1/derby-10.11.1.1.jar:/Users/jinli/.m2/repository/org/xerial/snappy/snappy-java/1.1.2/snappy-java-1.1.2.jar:/Users/jinli/.m2/repository/com/h2database/h2/1.4.187/h2-1.4.187.jar:/Users/jinli/.m2/repository/com/bazaarvoice/jolt/jolt-core/0.0.21/jolt-core-0.0.21.jar:/Users/jinli/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/jinli/.m2/repository/com/bazaarvoice/jolt/json-utils/0.0.21/json-utils-0.0.21.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-utils/target/classes:/Users/jinli/.m2/repository/net/sf/supercsv/super-csv/2.4.0/super-csv-2.4.0.jar:/Users/jinli/.m2/repository/com/fluenda/ParCEFone/1.2.0/ParCEFone-1.2.0.jar:/Users/jinli/.m2/repository/org/hibernate/hibernate-validator/5.2.4.Final/hibernate-validator-5.2.4.Final.jar:/Users/jinli/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar:/Users/jinli/.m2/repository/org/jboss/logging/jboss-logging/3.2.1.Final/jboss-logging-3.2.1.Final.jar:/Users/jinli/.m2/repository/com/fasterxml/classmate/1.1.0/classmate-1.1.0.jar:/Users/jinli/.m2/repository/javax/el/javax.el-api/3.0.0/javax.el-api-3.0.0.jar:/Users/jinli/.m2/repository/com/martiansoftware/macnificent/0.2.0/macnificent-0.2.0.jar:/Users/jinli/.m2/repository/junit/junit/4.12/junit-4.12.jar:/Users/jinli/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/Users/jinli/.m2/repository/org/mockito/mockito-core/1.10.19/mockito-core-1.10.19.jar:/Users/jinli/.m2/repository/org/objenesis/objenesis/2.1/objenesis-2.1.jar:/Users/jinli/.m2/repository/org/slf4j/slf4j-simple/1.7.12/slf4j-simple-1.7.12.jar:/Users/jinli/.m2/repository/org/codehaus/groovy/groovy-all/2.4.5/groovy-all-2.4.5.jar" com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 org.apache.nifi.processors.standard.TestValidateCsv,testSchemaEndsWithNull

java.lang.AssertionError: Processor has 1 validation failures:
'validate-csv-schema' validated against 'Optional(ParseInt),Null,Optional(ParseDouble),Null' is invalid because Error while parsing the schema: String index out of range: 5


	at org.junit.Assert.fail(Assert.java:88)
	at org.apache.nifi.util.MockProcessContext.assertValid(MockProcessContext.java:251)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:161)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:152)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:147)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:142)
	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:137)
	at org.apache.nifi.processors.standard.TestValidateCsv.testSchemaEndsWithNull(TestValidateCsv.java:133)
	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:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
	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:498)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)


Process finished with exit code 255
{noformat}


> ValidateCsv - String index out of range when parsing schema 
> ------------------------------------------------------------
>
>                 Key: NIFI-3556
>                 URL: https://issues.apache.org/jira/browse/NIFI-3556
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>    Affects Versions: 1.1.0
>            Reporter: Jinli Liang
>
> Throwing "String index out of range" error using a csv schema like "Optional(ParseInt),Null,Optional(ParseDouble),Null".
> Tested on nifi-1.1.0-RC2 - 5536f690a81418955442d52687695f65f0a44cd0
> Can work around by changing Null to Null()
> {noformat}
> Optional(ParseInt),Null(),Optional(ParseDouble),Null()
> {noformat}
> Can be re-produced with 
> {noformat}
>     @Test
>     public void testSchemaEndsWithNull() {
>         final TestRunner runner = TestRunners.newTestRunner(new ValidateCsv());
>         runner.setProperty(ValidateCsv.DELIMITER_CHARACTER, ",");
>         runner.setProperty(ValidateCsv.END_OF_LINE_CHARACTER, "\n");
>         runner.setProperty(ValidateCsv.QUOTE_CHARACTER, "\"");
>         runner.setProperty(ValidateCsv.HEADER, "true");
>         runner.setProperty(ValidateCsv.SCHEMA, "Optional(ParseInt),Null,Optional(ParseDouble),Null");
>         runner.enqueue("id,str,flt,dbk\n1,asdf,1.01,asdfasdf\n1,asdf,1.01,asdfasdf\n1,asdf,1.01,asdfasdf\n1,asdf,1.01,asdfasdf");
>         runner.run();
>         runner.assertAllFlowFilesTransferred(ValidateCsv.REL_VALID, 1);
>         runner.enqueue("id,str,flt,dbk\n1,asdf,1.01,asdfasdf,asdf,asdf,asdf,asdf,asdf");
>         runner.run();
>         runner.assertTransferCount(ValidateCsv.REL_INVALID, 1);
>     }
> {noformat}
> {noformat}
> /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/java -ea -Djava.awt.headless=true -Xmx1G -Djava.net.preferIPv4Stack=true -Didea.launcher.port=7535 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/junit/lib/junit-rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/lib/tools.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/target/test-classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/target/classes:/Users/jinli/DataRepublic/nifi/nifi-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-processor-utilities/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-flowfile-packager/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/target/classes:/Users/jinli/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar:/Users/jinli/.m2/repository/com/sun/jersey/jersey-client/1.19/jersey-client-1.19.jar:/Users/jinli/.m2/repository/com/sun/jersey/jersey-core/1.19/jersey-core-1.19.jar:/Users/jinli/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar:/Users/jinli/.m2/repository/com/sun/jersey/jersey-server/1.19/jersey-server-1.19.jar:/Users/jinli/.m2/repository/commons-net/commons-net/3.3/commons-net-3.3.jar:/Users/jinli/.m2/repository/org/apache/commons/commons-compress/1.11/commons-compress-1.11.jar:/Users/jinli/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar:/Users/jinli/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.55/bcprov-jdk15on-1.55.jar:/Users/jinli/.m2/repository/org/bouncycastle/bcpg-jdk15on/1.55/bcpg-jdk15on-1.55.jar:/Users/jinli/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.55/bcpkix-jdk15on-1.55.jar:/Users/jinli/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-security-utils/target/classes:/Users/jinli/.m2/repository/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar:/Users/jinli/.m2/repository/com/jcraft/jzlib/1.1.3/jzlib-1.1.3.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-server/9.3.9.v20160517/jetty-server-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-http/9.3.9.v20160517/jetty-http-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-util/9.3.9.v20160517/jetty-util-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-io/9.3.9.v20160517/jetty-io-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-servlet/9.3.9.v20160517/jetty-servlet-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/eclipse/jetty/jetty-security/9.3.9.v20160517/jetty-security-9.3.9.v20160517.jar:/Users/jinli/.m2/repository/org/apache/httpcomponents/httpclient/4.4.1/httpclient-4.4.1.jar:/Users/jinli/.m2/repository/org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1.jar:/Users/jinli/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/jinli/.m2/repository/javax/mail/mail/1.4.7/mail-1.4.7.jar:/Users/jinli/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jinli/.m2/repository/com/github/jponge/lzma-java/1.3/lzma-java-1.3.jar:/Users/jinli/.m2/repository/org/tukaani/xz/1.5/xz-1.5.jar:/Users/jinli/.m2/repository/net/sf/saxon/Saxon-HE/9.6.0-5/Saxon-HE-9.6.0-5.jar:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-socket-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-logging-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-properties/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/target/classes:/Users/jinli/.m2/repository/joda-time/joda-time/2.8.2/joda-time-2.8.2.jar:/Users/jinli/.m2/repository/javax/jms/javax.jms-api/2.0.1/javax.jms-api-2.0.1.jar:/Users/jinli/.m2/repository/org/apache/activemq/activemq-client/5.12.1/activemq-client-5.12.1.jar:/Users/jinli/.m2/repository/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar:/Users/jinli/.m2/repository/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1.1/geronimo-jms_1.1_spec-1.1.1.jar:/Users/jinli/.m2/repository/org/fusesource/hawtbuf/hawtbuf/1.11/hawtbuf-1.11.jar:/Users/jinli/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee-management_1.1_spec/1.0.1/geronimo-j2ee-management_1.1_spec-1.0.1.jar:/Users/jinli/.m2/repository/com/jayway/jsonpath/json-path/2.0.0/json-path-2.0.0.jar:/Users/jinli/.m2/repository/net/minidev/json-smart/2.1.1/json-smart-2.1.1.jar:/Users/jinli/.m2/repository/net/minidev/asm/1.0.2/asm-1.0.2.jar:/Users/jinli/.m2/repository/asm/asm/3.3.1/asm-3.3.1.jar:/Users/jinli/.m2/repository/org/apache/tika/tika-core/1.14/tika-core-1.14.jar:/Users/jinli/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.6.1/jackson-databind-2.6.1.jar:/Users/jinli/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.6.0/jackson-annotations-2.6.0.jar:/Users/jinli/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.6.1/jackson-core-2.6.1.jar:/Users/jinli/.m2/repository/org/apache/avro/avro/1.7.7/avro-1.7.7.jar:/Users/jinli/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar:/Users/jinli/.m2/repository/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/target/classes:/Users/jinli/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar:/Users/jinli/.m2/repository/com/squareup/okhttp/okhttp/2.7.1/okhttp-2.7.1.jar:/Users/jinli/.m2/repository/com/squareup/okio/okio/1.6.0/okio-1.6.0.jar:/Users/jinli/.m2/repository/com/burgstaller/okhttp-digest/0.6/okhttp-digest-0.6.jar:/Users/jinli/.m2/repository/de/svenkubiak/jBcrypt/0.4.1/jBcrypt-0.4.1.jar:/Users/jinli/.m2/repository/com/google/guava/guava/18.0/guava-18.0.jar:/Users/jinli/DataRepublic/nifi/nifi-mock/target/classes:/Users/jinli/DataRepublic/nifi/nifi-framework-api/target/classes:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-expression-language/target/classes:/Users/jinli/.m2/repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar:/Users/jinli/DataRepublic/nifi/nifi-commons/nifi-data-provenance-utils/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/target/classes:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/target/classes:/Users/jinli/.m2/repository/org/apache/activemq/activemq-broker/5.12.1/activemq-broker-5.12.1.jar:/Users/jinli/.m2/repository/org/apache/activemq/activemq-openwire-legacy/5.12.1/activemq-openwire-legacy-5.12.1.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/target/classes:/Users/jinli/.m2/repository/org/apache/derby/derby/10.11.1.1/derby-10.11.1.1.jar:/Users/jinli/.m2/repository/org/xerial/snappy/snappy-java/1.1.2/snappy-java-1.1.2.jar:/Users/jinli/.m2/repository/com/h2database/h2/1.4.187/h2-1.4.187.jar:/Users/jinli/.m2/repository/com/bazaarvoice/jolt/jolt-core/0.0.21/jolt-core-0.0.21.jar:/Users/jinli/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/jinli/.m2/repository/com/bazaarvoice/jolt/json-utils/0.0.21/json-utils-0.0.21.jar:/Users/jinli/DataRepublic/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-utils/target/classes:/Users/jinli/.m2/repository/net/sf/supercsv/super-csv/2.4.0/super-csv-2.4.0.jar:/Users/jinli/.m2/repository/com/fluenda/ParCEFone/1.2.0/ParCEFone-1.2.0.jar:/Users/jinli/.m2/repository/org/hibernate/hibernate-validator/5.2.4.Final/hibernate-validator-5.2.4.Final.jar:/Users/jinli/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar:/Users/jinli/.m2/repository/org/jboss/logging/jboss-logging/3.2.1.Final/jboss-logging-3.2.1.Final.jar:/Users/jinli/.m2/repository/com/fasterxml/classmate/1.1.0/classmate-1.1.0.jar:/Users/jinli/.m2/repository/javax/el/javax.el-api/3.0.0/javax.el-api-3.0.0.jar:/Users/jinli/.m2/repository/com/martiansoftware/macnificent/0.2.0/macnificent-0.2.0.jar:/Users/jinli/.m2/repository/junit/junit/4.12/junit-4.12.jar:/Users/jinli/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/Users/jinli/.m2/repository/org/mockito/mockito-core/1.10.19/mockito-core-1.10.19.jar:/Users/jinli/.m2/repository/org/objenesis/objenesis/2.1/objenesis-2.1.jar:/Users/jinli/.m2/repository/org/slf4j/slf4j-simple/1.7.12/slf4j-simple-1.7.12.jar:/Users/jinli/.m2/repository/org/codehaus/groovy/groovy-all/2.4.5/groovy-all-2.4.5.jar" com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 org.apache.nifi.processors.standard.TestValidateCsv,testSchemaEndsWithNull
> java.lang.AssertionError: Processor has 1 validation failures:
> 'validate-csv-schema' validated against 'Optional(ParseInt),Null,Optional(ParseDouble),Null' is invalid because Error while parsing the schema: String index out of range: 5
> 	at org.junit.Assert.fail(Assert.java:88)
> 	at org.apache.nifi.util.MockProcessContext.assertValid(MockProcessContext.java:251)
> 	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:161)
> 	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:152)
> 	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:147)
> 	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:142)
> 	at org.apache.nifi.util.StandardProcessorTestRunner.run(StandardProcessorTestRunner.java:137)
> 	at org.apache.nifi.processors.standard.TestValidateCsv.testSchemaEndsWithNull(TestValidateCsv.java:133)
> 	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:498)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
> 	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
> 	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> 	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:498)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
> Process finished with exit code 255
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)