You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "John E Fortin (Jira)" <ji...@apache.org> on 2019/10/28 15:17:00 UTC

[jira] [Updated] (NIFI-6795) Fix bug in CouchbaseMapCacheClient.java which prevents new Couchbase Object from being created

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

John E Fortin updated NIFI-6795:
--------------------------------
    Priority: Major  (was: Minor)

> Fix bug in CouchbaseMapCacheClient.java which prevents new Couchbase Object from being created
> ----------------------------------------------------------------------------------------------
>
>                 Key: NIFI-6795
>                 URL: https://issues.apache.org/jira/browse/NIFI-6795
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>            Reporter: John E Fortin
>            Priority: Major
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> The function below has a bug: 
> {code:java}
> @Override
>  public <K, V> boolean replace(AtomicCacheEntry<K, V, Long> entry, Serializer<K> keySerializer, Serializer<V> valueSerializer) throws IOException {
>  final Long revision = entry.getRevision().orElse(0L);
>  final String docId = toDocumentId(entry.getKey(), keySerializer);
>  final Document doc = toDocument(docId, entry.getValue(), valueSerializer, revision);
>  try {
>  if (revision < 0) {
>  // If the document does not exist yet, try to create one.
>  try {
>  bucket.insert(doc);
>  return true;
>  } catch (DocumentAlreadyExistsException e) {
>  return false;
>  }{code}
> {code:java}
> final Long revision = entry.getRevision().orElse(0L);{code}
> should be
> {code:java}
> final Long revision = entry.getRevision().orElse(-1L);{code}
> otherwise a new document never gets created in the check
> {code:java}
> if (revision < 0) {
>  // If the document does not exist yet, try to create one.
>  try {
>  bucket.insert(doc);
>  return true;
>  } catch (DocumentAlreadyExistsException e) {
>  return false;
>  }{code}
> I have tested the code change locally and it works properly...
>  
> --John
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)