[
https://issues.apache.org/jira/browse/GEODE-7416?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Charlie Black resolved GEODE-7416.
----------------------------------
Resolution: Invalid
This sounds like it is working as designed. The put is checked against the
memory of the actor that is doing the put. In the case of a client doing the
put that has a proxy region `create` will always work since there is no data.
If the client is caching proxy it may or may not return the right answer since
the "key" that was doing the put could be in the system from another actor in
the distributed system.
If you are looking for something more strict putIfAbsent() will check and see
if a key exists in the system and only do the put if there isn't a key there
already.
I am going to close this ticket as the system is working as intended. If you
would like to change behavior lets work with the community and open a proposal
for change on the dev list.
> region.create(k, v) doesn't throw EntryExistsException for PROXY region
> -----------------------------------------------------------------------
>
> Key: GEODE-7416
> URL: https://issues.apache.org/jira/browse/GEODE-7416
> Project: Geode
> Issue Type: Bug
> Components: client/server
> Reporter: Heng Yan
> Priority: Major
>
> When an entry exists in the cache server, region.create(k, v) from client
> doesn't throw EntryExistsException if client region is *PROXY*. It updates
> the existing value instead of throwing exception. If the client region is
> *CACHING_PROXY*, it works as expected.
> Testing environment:
> Client: Geode 1.6
> Server: Geode 1.7
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)