You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Xinyu Wu (Jira)" <ji...@apache.org> on 2022/04/25 17:21:00 UTC

[jira] [Created] (NIFI-9964) TestLookupRecord#testAddFieldsToExistingRecordRouteToSuccess failing due to indeterminate map ordering

Xinyu Wu created NIFI-9964:
------------------------------

             Summary: TestLookupRecord#testAddFieldsToExistingRecordRouteToSuccess failing due to indeterminate map ordering
                 Key: NIFI-9964
                 URL: https://issues.apache.org/jira/browse/NIFI-9964
             Project: Apache NiFi
          Issue Type: Bug
            Reporter: Xinyu Wu


The test `org.apache.nifi.processors.standard.TestLookupRecord#testAddFieldsToExistingRecordRouteToSuccess` can fail based on the order of iteration in `HashMap`. 
In line 437 to 441:
```
        final List<RecordField> fields = new ArrayList<>();
        fields.add(new RecordField("favorite", RecordFieldType.STRING.getDataType(), false));
        fields.add(new RecordField("least", RecordFieldType.STRING.getDataType(), true));
        final RecordSchema schema = new SimpleRecordSchema(fields);
        final Record sports = new MapRecord(schema, new HashMap<>());
```
It creates two ```RecordField``` ```favorite``` and ```least``` and adds them into ```Record``` ```sports```. Since ```sports``` is created by a HashMap, the order of ```favorite``` and ```least``` are indeterminate in ```sports```. Therefore, in the actual ```MockFlowFile``` content, the order of "soccer" and "basketball" is also indeterminate.
I found the issue using [NonDex](https://github.com/TestingResearchIllinois/NonDex):
```
mvn install -DskipTests -pl nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors -am
mvn -pl nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors edu.illinois:nondex-maven-plugin:1.1.2:nondex -Dtest=org.apache.nifi.processors.standard.TestLookupRecord#testAddFieldsToExistingRecordRouteToSuccess
```
The proposed fix changes the assertion to endure the indeterminacy.




--
This message was sent by Atlassian Jira
(v8.20.7#820007)