[ 
https://issues.apache.org/jira/browse/NIFI-4395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16174657#comment-16174657
 ] 

ASF GitHub Bot commented on NIFI-4395:
--------------------------------------

Github user yjhyjhyjh0 commented on the issue:

    https://github.com/apache/nifi/pull/2166
  
    I've solved this issue by re-cache column type if needed and pass local 
unit and instance test.
    
    The root cause of this issue is that originally disign didn't recognize 
that column type cache will be clean after instance reboot.
    This cause later unable to find column type cache with existing state value 
and throw unhandle  IllegalArgumentException. 
    Now if state value exist without corresponding column type cache, we will 
fetch and cache it.



> GenerateTableFetch can't fetch column type by state after 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
>            Assignee: 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 grab existing  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