[
https://issues.apache.org/jira/browse/NIFI-10862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joe Witt resolved NIFI-10862.
-----------------------------
Resolution: Fixed
> Tests in TestXMLReader use non-deterministic HashMap
> -----------------------------------------------------
>
> Key: NIFI-10862
> URL: https://issues.apache.org/jira/browse/NIFI-10862
> Project: Apache NiFi
> Issue Type: Bug
> Components: Extensions
> Environment: Apache Maven 3.6.0;
> openjdk version "1.8.0_342";
> OpenJDK Runtime Environment (build 1.8.0_342-8u342-b07-0ubuntu1~20.04-b07);
> OpenJDK 64-Bit Server VM (build 25.342-b07, mixed mode);
> Reporter: Sopan Phaltankar
> Assignee: Sopan Phaltankar
> Priority: Trivial
> Fix For: 1.19.0
>
> Attachments: org.apache.nifi.xml.TestXMLReader.txt
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> {code:java}
> 1. org.apache.nifi.xml.TestXMLReader.testAttributePrefix
> 2.
> org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameNotSetSubElementExists
> 3. org.apache.nifi.xml.TestXMLReader.testInferSchema
> 4.
> org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameSetSubElementExistsNoNameClash
> 5. org.apache.nifi.xml.TestXMLReader.testInferSchemaIgnoreAttributes
> 6. org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameNotSet
> 7. org.apache.nifi.xml.TestXMLReader.testContentField
> 8.
> org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameSetSubElementExistsNameClash{code}
> This is a flaky test, it can pass mvn test while but when run using the tool
> [NonDex|https://github.com/TestingResearchIllinois/NonDex], it fails. NonDex
> is a tool that will introduce non-determinism in certain java collections.
> The test shows below:
> {code:java}
> 1. org.apache.nifi.xml.TestXMLReader.testAttributePrefix
> [ERROR] TestXMLReader.testAttributePrefix:150 expected:
> <MapRecord[{COUNTRY=USA, ATTR_ID=P1, NAME=Cleve Butler, AGE=42}]> but was:
> <MapRecord[{AGE=42, ATTR_ID=P1, NAME=Cleve Butler, COUNTRY=USA}]>
> 2.
> org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameNotSetSubElementExists
> [ERROR]
> TestXMLReader.testInferSchemaContentFieldNameNotSetSubElementExists:239
> expected: <MapRecord[{field_with_attribute=MapRecord[{attr=attr_content,
> value=123}]}]> but was:
> <MapRecord[{field_with_attribute=MapRecord[{value=123, attr=attr_content}]}]>
> 3. org.apache.nifi.xml.TestXMLReader.testInferSchema
> [ERROR] TestXMLReader.testInferSchema:201 expected:
> <MapRecord[{software=MapRecord[{content_field=Apache NiFi, favorite=true}],
> num=123, name=John Doe}]> but was: <MapRecord[{name=John Doe, num=123,
> software=MapRecord[{content_field=Apache NiFi, favorite=true}]}]>
> 4.
> org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameSetSubElementExistsNoNameClash
> [ERROR]
> TestXMLReader.testInferSchemaContentFieldNameSetSubElementExistsNoNameClash:280
> expected: <MapRecord[{field_with_attribute=MapRecord[{content_field=content
> of field, attr=attr_content, value=123}]}]> but was:
> <MapRecord[{field_with_attribute=MapRecord[{attr=attr_content, value=123,
> content_field=content of field}]}]>
> 5. org.apache.nifi.xml.TestXMLReader.testInferSchemaIgnoreAttributes
> [ERROR] TestXMLReader.testInferSchemaIgnoreAttributes:299 expected:
> <MapRecord[{software=Apache NiFi, num=123, name=John Doe}]> but was:
> <MapRecord[{name=John Doe, software=Apache NiFi, num=123}]>
> 6. org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameNotSet
> [ERROR] TestXMLReader.testInferSchemaContentFieldNameNotSet:220 expected:
> <MapRecord[{software=MapRecord[{favorite=true}], num=123, name=John Doe}]>
> but was: <MapRecord[{name=John Doe, num=123,
> software=MapRecord[{favorite=true}]}]>
> 7. org.apache.nifi.xml.TestXMLReader.testContentField
> [ERROR] TestXMLReader.testContentField:177 expected: <MapRecord[{ID=P1,
> NAME=MapRecord[{CONTENT=Cleve Butler, ATTR=attr content, INNER=inner
> content}], AGE=42}]> but was: <MapRecord[{NAME=MapRecord[{CONTENT=Cleve
> Butler, ATTR=attr content, INNER=inner content}], ID=P1, AGE=42}]>
> 8.
> org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameSetSubElementExistsNameClash
> [ERROR]
> TestXMLReader.testInferSchemaContentFieldNameSetSubElementExistsNameClash:259
> expected: <MapRecord[{field_with_attribute=MapRecord[{attr=attr_content,
> value=content of field}]}]> but was:
> <MapRecord[{field_with_attribute=MapRecord[{value=content of field,
> attr=attr_content}]}]>{code}
> *Steps to reproduce the failure:*
> # Run the following command in nifi:
> # First, build the module:
> {noformat}
> mvn install -pl
> nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services
> -DskipTests -Drat.skip -am{noformat}
> # Then run the test using
> [NonDex|https://github.com/TestingResearchIllinois/NonDex]
> {noformat}
> 1. org.apache.nifi.xml.TestXMLReader.testAttributePrefix
> mvn -pl
> nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services
> edu.illinois:nondex-maven-plugin:1.1.2:nondex
> -Dtest=org.apache.nifi.xml.TestXMLReader#testAttributePrefix
> 2.
> org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameNotSetSubElementExists
> mvn -pl
> nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services
> edu.illinois:nondex-maven-plugin:1.1.2:nondex
> -Dtest=org.apache.nifi.xml.TestXMLReader#testInferSchemaContentFieldNameNotSetSubElementExists
> 3. org.apache.nifi.xml.TestXMLReader.testInferSchema
> mvn -pl
> nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services
> edu.illinois:nondex-maven-plugin:1.1.2:nondex
> -Dtest=org.apache.nifi.xml.TestXMLReader#testInferSchema
> 4.
> org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameSetSubElementExistsNoNameClash
> mvn -pl
> nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services
> edu.illinois:nondex-maven-plugin:1.1.2:nondex
> -Dtest=org.apache.nifi.xml.TestXMLReader#testInferSchemaContentFieldNameSetSubElementExistsNoNameClash
> 5. org.apache.nifi.xml.TestXMLReader.testInferSchemaIgnoreAttributes
> mvn -pl
> nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services
> edu.illinois:nondex-maven-plugin:1.1.2:nondex
> -Dtest=org.apache.nifi.xml.TestXMLReader#testInferSchemaIgnoreAttributes
> 6. org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameNotSet
> mvn -pl
> nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services
> edu.illinois:nondex-maven-plugin:1.1.2:nondex
> -Dtest=org.apache.nifi.xml.TestXMLReader#testInferSchemaContentFieldNameNotSet
> 7. org.apache.nifi.xml.TestXMLReader.testContentField
> mvn -pl
> nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services
> edu.illinois:nondex-maven-plugin:1.1.2:nondex
> -Dtest=org.apache.nifi.xml.TestXMLReader#testContentField
> 8.
> org.apache.nifi.xml.TestXMLReader.testInferSchemaContentFieldNameSetSubElementExistsNameClash
> mvn -pl
> nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services
> edu.illinois:nondex-maven-plugin:1.1.2:nondex
> -Dtest=org.apache.nifi.xml.TestXMLReader#testInferSchemaContentFieldNameSetSubElementExistsNameClash{noformat}
>
> The result will be saved under the module folder in .nondex
--
This message was sent by Atlassian Jira
(v8.20.10#820010)