[ https://issues.apache.org/jira/browse/IGNITE-21793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pavel Tupitsyn updated IGNITE-21793: ------------------------------------ Description: # *getOrDefault* accepts nullables after IGNITE-20524, but its semantics is to ensure null safety. It should not accept or nulls (*getNullable* methods exist to deal with nulls) # *getNullable* family of methods throws exceptions from tuple-based views (*ClientKeyValueBinaryView*, *KeyValueBinaryViewImpl*), but it should work same as equivalent getters to ensure view equivalence. # *getAndReplaceAsync* has nullable key and value, but actual implementations (client and embedded) disallow nulls. # *getNullableAndPut* throws *MarshallerException* when value is null, unlike *getAndPut* which correctly throws *NullPointerException* was: # *getOrDefault* accepts nullables after IGNITE-20524, but its semantics is to ensure null safety. It should not accept or nulls (*getNullable* methods exist to deal with nulls) # *getNullable* family of methods throws exceptions from tuple-based views (*ClientKeyValueBinaryView*, *KeyValueBinaryViewImpl*), but it should work same as equivalent getters to ensure view equivalence. # *getAndReplaceAsync* has nullable key and value, but actual implementations (client and embedded) disallow nulls. > Fix inconsistencies in table view APIs > -------------------------------------- > > Key: IGNITE-21793 > URL: https://issues.apache.org/jira/browse/IGNITE-21793 > Project: Ignite > Issue Type: Improvement > Affects Versions: 3.0 > Reporter: Alexey Scherbakov > Assignee: Pavel Tupitsyn > Priority: Major > Labels: ignite-3 > Fix For: 3.0 > > > # *getOrDefault* accepts nullables after IGNITE-20524, but its semantics is > to ensure null safety. It should not accept or nulls (*getNullable* methods > exist to deal with nulls) > # *getNullable* family of methods throws exceptions from tuple-based views > (*ClientKeyValueBinaryView*, *KeyValueBinaryViewImpl*), but it should work > same as equivalent getters to ensure view equivalence. > # *getAndReplaceAsync* has nullable key and value, but actual implementations > (client and embedded) disallow nulls. > # *getNullableAndPut* throws *MarshallerException* when value is null, unlike > *getAndPut* which correctly throws *NullPointerException* -- This message was sent by Atlassian Jira (v8.20.10#820010)