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

ASF GitHub Bot commented on BEAM-626:
-------------------------------------

GitHub user lukecwik opened a pull request:

    https://github.com/apache/incubator-beam/pull/1246

    [BEAM-626] Changes in AvroCoder serialization so it can serialize in Kryo

    Be sure to do all of the following to help us incorporate your contribution
    quickly and easily:
    
     - [x] Make sure the PR title is formatted like:
       `[BEAM-<Jira issue #>] Description of pull request`
     - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable
           Travis-CI on your fork and ensure the whole test matrix passes).
     - [x] Replace `<Jira issue #>` in the title with the actual Jira issue
           number, if there is one.
     - [ ] If this contribution is large, please file an Apache
           [Individual Contributor License 
Agreement](https://www.apache.org/licenses/icla.txt).
    
    ---


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

    $ git pull https://github.com/lukecwik/incubator-beam fix941

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

    https://github.com/apache/incubator-beam/pull/1246.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 #1246
    
----
commit 1f770d400ca9e5506199783551c0780a1c46f77e
Author: Aviem Zur <aviem...@gmail.com>
Date:   2016-09-08T08:21:41Z

    Changes in AvroCoder serialization so it can serialize in Kryo

commit 3df987f76467c1e78ce3738a0f2c0df9cd94f82c
Author: Luke Cwik <lc...@google.com>
Date:   2016-10-31T18:38:45Z

    !fixup Swap to use Serializable ThreadLocal with empty data block instead 
of memoization.

commit 3358d3d6cc036cb06fa37c6c2547909586bf048f
Author: Luke Cwik <lc...@google.com>
Date:   2016-10-31T20:21:31Z

    fixup! Fix the memoization of the schema string to use 
readResolve/writeReplace with final fields for Java. Kryo ignores 
readResolve/writeReplace and serializes the Schema object directly.

commit f92c39f14b49556f8e67c22c408520af0c204cce
Author: Luke Cwik <lc...@google.com>
Date:   2016-10-31T20:24:49Z

    fixup! minor whitespace clean up.

commit a5f25e2e9edf9fe0c1fb59e594d5b450062ba77f
Author: Luke Cwik <lc...@google.com>
Date:   2016-10-31T20:36:14Z

    fixup! Add FB suppression on limitation of FB with Serializable objects 
containing writeReplace.

----


> AvroCoder not deserializing correctly in Kryo
> ---------------------------------------------
>
>                 Key: BEAM-626
>                 URL: https://issues.apache.org/jira/browse/BEAM-626
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-core
>            Reporter: Aviem Zur
>            Assignee: Aviem Zur
>            Priority: Minor
>
> Unlike with Java serialization, when deserializing AvroCoder using Kryo, the 
> resulting AvroCoder is missing all of its transient fields.
> The reason it works with Java serialization is because of the usage of 
> writeReplace and readResolve, which Kryo does not adhere to.
> In ProtoCoder for example there are also unserializable members, the way it 
> is solved there is lazy initializing these members via their getters, so they 
> are initialized in the deserialized object on first call to the member.
> It seems AvroCoder is the only class in Beam to use writeReplace convention.



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

Reply via email to