I think you overrode the open method with the wrong signature. The right
signature would be "open(Configuration cfg) {...}". You probably overlooked
this because you missed the "@Override" annotation.

On Fri, Jul 22, 2016 at 4:49 PM, Yassin Marzouki <yassmar...@gmail.com>
wrote:

> Hi everyone,
>
> I want to convert a stream of json strings to POJOs using Jackson, so I
> did the following:
>
> .map(new RichMapFunction<String, Request>() {
>
>     private ObjectMapper objectMapper;
>
>         public void open() {
>             objectMapper = new ObjectMapper();
>         }
>
>         @Override
>              public Request map(String value) throws Exception {
>                  return objectMapper.readValue(value, Request.class);
>         }
> })
>
> But this code gave me a NullPointerException because the objectMapper was
> not initialized successfully.
>
> 1. Isn't the open() method supposed to be called before map() and
> initialize objectMapper?
> 2. I figured out that initializing objectMapper before the open() method
> resolves the problem, and that it works also with a simple MapFunction. In
> that case, is there an advantage for using a RichMapFunction?
>
> Best,
> Yassine
>

Reply via email to