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

ASF GitHub Bot commented on FLINK-2690:
---------------------------------------

GitHub user tillrohrmann opened a pull request:

    https://github.com/apache/flink/pull/1141

    [FLINK-2690] [api-breaking] [scala api] [java api] Allows CsvInputFormat to 
use derived Pojos

    This PR adds support for the `CsvInputFormat` to use derived Pojos. In 
order to also find pojo fields defined in a parent class, one has to traverse 
the type hierarchy. This is done by the function `findAllFields`.
    
    While working on the `CsvInputFormat`, I noticed that the 
`ScalaCsvInputFormat` shared almost all code with the `CsvInputFormat`. In 
order to reduce duplicated code, both input formats now extend the 
`CommonCsvInputFormat` which contains the shared code.
    


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/tillrohrmann/flink fixCsvInputFormatPojo

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/1141.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1141
    
----
commit bf2e2c40f340ccfe31256744380345287c9e6f9e
Author: Till Rohrmann <trohrm...@apache.org>
Date:   2015-09-17T13:28:25Z

    [FLINK-2690] [api-breaking] [scala api] [java api] Adds functionality to 
the CsvInputFormat to find fields defined in a super class of a Pojo. Refactors 
CsvInputFormat to share code between this format and ScalaCsvInputFormat.

----


> CsvInputFormat cannot find the field of derived POJO class
> ----------------------------------------------------------
>
>                 Key: FLINK-2690
>                 URL: https://issues.apache.org/jira/browse/FLINK-2690
>             Project: Flink
>          Issue Type: Bug
>          Components: Java API, Scala API
>    Affects Versions: 0.10
>            Reporter: Chiwan Park
>            Assignee: Till Rohrmann
>
> A user reports {{CsvInputFormat}} cannot find the field of derived POJO 
> class. 
> (http://mail-archives.apache.org/mod_mbox/flink-user/201509.mbox/%3ccaj54yvi6cbldn7cypey+xe8a5a_j1-6tnx1wm1eb63gvnqd...@mail.gmail.com%3e)
> The reason of the bug is that {{CsvInputFormat}} uses {{getDeclaredField}} 
> method without scanning base classes to find the field. When 
> {{CsvInputFormat}} was wrote, {{TypeInformation}} cannot be serialized. So we 
> needed to initialize {{TypeInformation}} in {{open}} method manually. Some 
> mistakes in initializing cause this bug.
> After FLINK-2637 is merged, we can serialize {{TypeInformation}} and don't 
> need to create field objects in {{CsvInputFormat}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to