Re: Dealing with Not Serializable classes in Java
Posted by
Dominik Wosiński on
URL: http://deprecated-apache-flink-user-mailing-list-archive.369.s1.nabble.com/Dealing-with-Not-Serializable-classes-in-Java-tp22576p22595.html
Hey ;)
I have received one response that was sent directly to my email and not to user group :
Hi Dominik,
I think you can put the unserializable fields into RichFunctions and initiate them in the `open` method, so the the fields won’t need to be serialized with the tasks.
Best,
Paul Lam
And my response about RichFunctions was meant for Paul :)
Pon., 27.08.2018, 10:38 użytkownik Chesnay Schepler <
[hidden email]> napisał:
You don't need RichFunctions for that,
you should be able to just do:
private static final ObjectMapper objectMapper =
new ObjectMapper().registerModule(new JavaTimeModule());
On 27.08.2018 10:28, Dominik Wosiński wrote:
Hey Paul,
Yeah that is possible, but I was asking in terms of
serialization schema. So I would really want to avoid
RichFunction :)
Best Regards,
Dominik.
pon., 27 sie 2018 o 10:23 Chesnay Schepler <
[hidden email]>
napisał(a):
The null
check in the method is the general-purpose way of solving
it.
If the ObjectMapper is thread-safe you could also
initialize it as a static field.
On 26.08.2018 17:58, Dominik Wosiński wrote:
Hey,
I was wondering how do You normally deal with fields
that contain references that are not serializable. Say,
we have a custom serialization schema in Java that needs
to serialize
LocalDateTime field with
ObjectMapper.
This requires registering specific module for
ObjectMapper and
this makes it not serializable (module contains some
references to classes that are not serializable).
Now, if You would initialize
ObjectMapper directly
in the field this will cause an exception when deploying
the job.
Normally I would do :
@Override
public byte[] serialize(Backup backupMessage) {
if(objectMapper == null) {
objectMapper = new ObjectMapper().registerModule(new JavaTimeModule());
}
...
}
But I was wondering whether do You have any
prettier option of doing this?
Thanks,
Dominik.