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 >