Deon Huang created NIFI-4395:
--------------------------------

             Summary: GnerateTableFetch can't fetch column type by state 
through instance reboot
                 Key: NIFI-4395
                 URL: https://issues.apache.org/jira/browse/NIFI-4395
             Project: Apache NiFi
          Issue Type: Bug
    Affects Versions: 1.3.0
            Reporter: Deon Huang
             Fix For: 1.4.0
         Attachments: GenerateTableFetch_Exception.png

The problem can easily be reproduce.
Once GenerateTableFetch store state and encounter NiFi instance reboot.
(Dynamic naming table by expression language)
The exception will occur.

The error in source code is list below.
```
if (type == null) {
    // This shouldn't happen as we are populating columnTypeMap when the 
processor is scheduled or when the first maximum is observed
    throw new IllegalArgumentException("No column type found for: " + colName);
  }
```

When this situation happened. The FlowFile will also be grab and can't release 
or observed.
Processor can't existing grab column type from columnTypeMap through instance 
reboot.
Hence will inevidible get this exception, rollback FlowFile and never success.

QueryDatabaseTable processor will not encounter this exception due to it 
setup(context) every time,
While GenerateTableFetch will not pass the condition and thus try to fetch 
column type from 0 length columnTypeMap.

```
if (!isDynamicTableName && !isDynamicMaxValues) {
  super.setup(context);
  }
```

I can take the issue if it is recognize as bug.The problem can easily be 
reproduce.
Once GenerateTableFetch store state and encounter NiFi instance reboot.
(Dynamic naming table by expression language)
The exception will occur.

The error in source code is list below.
```
if (type == null) {
    // This shouldn't happen as we are populating columnTypeMap when the 
processor is scheduled or when the first maximum is observed
    throw new IllegalArgumentException("No column type found for: " + colName);
  }
```

When this situation happened. The FlowFile will also be grab and can't release 
or observed.
Processor can't existing grab column type from columnTypeMap through instance 
reboot.
Hence will inevidible get this exception, rollback FlowFile and never success.

QueryDatabaseTable processor will not encounter this exception due to it 
setup(context) every time,
While GenerateTableFetch will not pass the condition and thus try to fetch 
column type from 0 length columnTypeMap.

```
if (!isDynamicTableName && !isDynamicMaxValues) {
  super.setup(context);
  }
```

I can take the issue if it is recognize as bug.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to