You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Flink Jira Bot (Jira)" <ji...@apache.org> on 2022/04/09 22:39:00 UTC

[jira] [Updated] (FLINK-15424) Make all AppendingState#add respect the java doc

     [ https://issues.apache.org/jira/browse/FLINK-15424?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Flink Jira Bot updated FLINK-15424:
-----------------------------------
    Labels: auto-deprioritized-major auto-unassigned pull-request-available stale-minor  (was: auto-deprioritized-major auto-unassigned pull-request-available)

I am the [Flink Jira Bot|https://github.com/apache/flink-jira-bot/] and I help the community manage its development. I see this issues has been marked as Minor but is unassigned and neither itself nor its Sub-Tasks have been updated for 180 days. I have gone ahead and marked it "stale-minor". If this ticket is still Minor, please either assign yourself or give an update. Afterwards, please remove the label or in 7 days the issue will be deprioritized.


> Make all AppendingState#add respect the java doc
> ------------------------------------------------
>
>                 Key: FLINK-15424
>                 URL: https://issues.apache.org/jira/browse/FLINK-15424
>             Project: Flink
>          Issue Type: Bug
>          Components: API / DataStream, Runtime / State Backends
>    Affects Versions: 1.8.3, 1.9.1
>            Reporter: Congxian Qiu
>            Priority: Minor
>              Labels: auto-deprioritized-major, auto-unassigned, pull-request-available, stale-minor
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, We have a java doc in {{[AppendingState#add|https://github.com/apache/flink/blob/52fdee1d0c7af24d25c51caa073e29f11b07210b/flink-core/src/main/java/org/apache/flink/api/common/state/AppendingState.java#L63]}}
> {code:java}
> <p> If null is passed in, the state value will remain unchanged.{code}
> but currently, the implementation did not respect this, take {{HeapReducingState}} as an example, we'll clear the state if the passed parameter is null
> {code:java}
> @Override	
> public void add(V value) throws IOException {
>     if (value == null) {			
>         clear();			
>         return;		
>     }
>     try {			
>         stateTable.transform(currentNamespace, value, reduceTransformation);		            } catch (Exception e) {			
>         throw new IOException("Exception while applying ReduceFunction in reducing state", e);		
>     }	
> }
> {code}
> But in {{RocksDBReducingState}}  we would not clear the state, and put the null value into state if serializer can serialize null.
> {code:java}
> @Override
> public void add(V value) throws Exception {
>    byte[] key = getKeyBytes();
>    V oldValue = getInternal(key);
>    V newValue = oldValue == null ? value : reduceFunction.reduce(oldValue, value);
>    updateInternal(key, newValue);
> }
> {code}
> this issue wants to make all {{Appending}}State respect the javadoc of {{AppendingState}}, and return directly if the passed in parameter is null.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)