nastra opened a new pull request, #12930:
URL: https://github.com/apache/iceberg/pull/12930

   https://github.com/apache/iceberg/pull/12882 went in right in between voting 
on 1.9.0 happened, which means that the API breakage wasn't detected as a 
breakage when it was merged. After upgrading RevAPI to compare against 1.9.0, 
the API breakage around Map -> SerializableMap was flagged. 
   The underlying issue is that Immutables will always create an unmodifiable 
Map (which isn't configurable and is generally what you want) when the API 
definition is `Map`, which Kryo can't deal with, since Kryo adds back elements 
to the collection after deserialization. There is some hope that Kryo will 
eventually be able to deal with unmodifiable collections without having to use 
a separate kryo-serializers lib 
(https://github.com/EsotericSoftware/kryo/pull/1154) but we're not there yet 
and maybe the better option would have been to not make `StorageCredential` use 
Immutables in the first place due to Kryo.
   
   This PR adds the generated `ImmutableStorageCredential` class to the 
codebase and creates a `SerializableMap` instead of an unmodifiable one in 
order to work with Kryo and also to avoid the API breakage


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to