This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch sandbox/camel-3.x
in repository https://gitbox.apache.org/repos/asf/camel.git

commit bb4504d67f9ddcdd7a5670531e9ed74cb34cdf81
Author: Jan <jbou...@redhat.com>
AuthorDate: Fri Nov 16 09:14:20 2018 +0100

    [CAMEL-12942] Fix dropbox put operation
---
 .../component/dropbox/core/DropboxAPIFacade.java   | 24 +++++++++++-----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git 
a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/core/DropboxAPIFacade.java
 
b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/core/DropboxAPIFacade.java
index 1b43179..d6e3c7b 100644
--- 
a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/core/DropboxAPIFacade.java
+++ 
b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/core/DropboxAPIFacade.java
@@ -92,31 +92,31 @@ public final class DropboxAPIFacade {
         // in case the remote path is not specified, the remotePath = localPath
         String dropboxPath = remotePath == null ? localPath : remotePath;
 
-        UploadUploader entry;
+        boolean isPresent = true;
         try {
-            entry = client.files().upload(dropboxPath);
+            client.files().getMetadata(dropboxPath);
         } catch (DbxException e) {
-            throw new DropboxException(dropboxPath + " does not exist or 
cannot obtain metadata", e);
+            isPresent = false;
         }
 
         if (localPath != null) {
-            return putFile(localPath, mode, dropboxPath, entry);
+            return putFile(localPath, mode, dropboxPath, isPresent);
         } else {
-            return putBody(exchange, mode, dropboxPath, entry);
+            return putBody(exchange, mode, dropboxPath, isPresent);
         }
     }
 
-    private DropboxFileUploadResult putFile(String localPath, 
DropboxUploadMode mode, String dropboxPath, UploadUploader entry) throws 
DropboxException {
+    private DropboxFileUploadResult putFile(String localPath, 
DropboxUploadMode mode, String dropboxPath, boolean isPresent) throws 
DropboxException {
         File fileLocalPath = new File(localPath);
         // verify uploading of a single file
         if (fileLocalPath.isFile()) {
             // check if dropbox file exists
-            if (entry != null && !DropboxUploadMode.force.equals(mode)) {
-                throw new DropboxException(dropboxPath + " exists on dropbox 
and is not a file!");
+            if (isPresent && !DropboxUploadMode.force.equals(mode)) {
+                throw new DropboxException(dropboxPath + " exists on dropbox. 
Use force upload mode to override");
             }
             // in case the entry not exists on dropbox check if the filename
             // should be appended
-            if (entry == null) {
+            if (!isPresent) {
                 if 
(dropboxPath.endsWith(DropboxConstants.DROPBOX_FILE_SEPARATOR)) {
                     dropboxPath = dropboxPath + fileLocalPath.getName();
                 }
@@ -139,7 +139,7 @@ public final class DropboxAPIFacade {
             // verify uploading of a list of files inside a dir
             LOG.debug("Uploading a dir...");
             // check if dropbox folder exists
-            if (entry != null && !DropboxUploadMode.force.equals(mode)) {
+            if (isPresent && !DropboxUploadMode.force.equals(mode)) {
                 throw new DropboxException(dropboxPath + " exists on dropbox 
and is not a folder!");
             }
             if 
(!dropboxPath.endsWith(DropboxConstants.DROPBOX_FILE_SEPARATOR)) {
@@ -181,7 +181,7 @@ public final class DropboxAPIFacade {
         }
     }
 
-    private DropboxFileUploadResult putBody(Exchange exchange, 
DropboxUploadMode mode, String dropboxPath, UploadUploader entry) throws 
DropboxException {
+    private DropboxFileUploadResult putBody(Exchange exchange, 
DropboxUploadMode mode, String dropboxPath, boolean isPresent) throws 
DropboxException {
         String name = exchange.getIn().getHeader(HEADER_PUT_FILE_NAME, 
String.class);
         if (name == null) {
             // fallback to use CamelFileName
@@ -194,7 +194,7 @@ public final class DropboxAPIFacade {
 
         // in case the entry not exists on dropbox check if the filename should
         // be appended
-        if (entry == null) {
+        if (!isPresent) {
             if (dropboxPath.endsWith(DropboxConstants.DROPBOX_FILE_SEPARATOR)) 
{
                 dropboxPath = dropboxPath + name;
             }

Reply via email to