You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@avro.apache.org by "Ryan Skraba (Jira)" <ji...@apache.org> on 2022/09/12 18:08:00 UTC

[jira] [Commented] (AVRO-3590) Fix the problem that CodeFactory is null when specifying snappy format when java Client compresses data

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

Ryan Skraba commented on AVRO-3590:
-----------------------------------

Hello!  Can you help clarify what's happening in this change?  I think I'm missing something!

How is it possible that the static initializer making *{{SnappyCodec.INSTANCE}}* can see the snappy library and return an the non-null Option and SnappyCodec, but the static initializer in *{{CodecFactory}}* can't?  Is there some sort of ClassLoader oddness happening between the two?

If it's the case, it definitely should be fixed!  Is there a corresponding Flink Jira for example?

> Fix the problem that CodeFactory is null when specifying snappy format when java Client compresses data
> -------------------------------------------------------------------------------------------------------
>
>                 Key: AVRO-3590
>                 URL: https://issues.apache.org/jira/browse/AVRO-3590
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.10.0
>            Reporter: xingyuan cheng
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.10.0
>
>         Attachments: image-2022-07-27-16-10-17-970.png, image-2022-07-27-16-10-33-410.png, image-2022-07-27-16-10-42-262.png, image-2022-07-27-16-11-46-218.png
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> When flink-avro writes data in batches based on the avro format, the general user will specify snappy compression. However, in the avro-1.10.0 version, the Codec and CodeFactory are returned by directly applying for the object, so that the user cannot obtain it Information for SnappyCodec.
> I refer to the practice of ```NullCodec```, changing it to a global variable way will work fine
>  
> !image-2022-07-27-16-10-17-970.png!
>  
> Before repair:
> !image-2022-07-27-16-10-42-262.png!
>  
>  
> after Repair:
>  
> !image-2022-07-27-16-11-46-218.png!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)