[jira] [Commented] (CAMEL-12176) Camel-Dropbox /search and /get are not working
[ https://issues.apache.org/jira/browse/CAMEL-12176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16350410#comment-16350410 ] Claus Ibsen commented on CAMEL-12176: - Kamil, ah thanks. If you want to try you are welcome to provide this code in a github PR [http://camel.apache.org/contributing] If not then we can also fix it ourselves, but its a good way to learn how to contribute to Apache Camel if you want to try. > Camel-Dropbox /search and /get are not working > -- > > Key: CAMEL-12176 > URL: https://issues.apache.org/jira/browse/CAMEL-12176 > Project: Camel > Issue Type: Bug > Components: camel-dropbox >Affects Versions: 2.20.1 >Reporter: Kamil >Assignee: Claus Ibsen >Priority: Major > Fix For: 2.20.3, 2.21.0 > > > First of all, > [documentation|https://github.com/apache/camel/blob/master/components/camel-dropbox/src/main/docs/dropbox-component.adoc] > states that "query" property in "search" operation is not mandatory, but: > {code:java} > from("direct:dropboxSearch").to("dropbox://search?remotePath=/={{dropbox.key}}"){code} > throws: > {code:java} > java.lang.IllegalArgumentException: Required value for 'query' is null > at com.dropbox.core.v2.files.SearchArg.(SearchArg.java:59) > ~[dropbox-core-sdk-3.0.4.jar:na] > at com.dropbox.core.v2.files.SearchArg.(SearchArg.java:93) > ~[dropbox-core-sdk-3.0.4.jar:na] > at > com.dropbox.core.v2.files.DbxUserFilesRequests.search(DbxUserFilesRequests.java:2416) > ~[dropbox-core-sdk-3.0.4.jar:na] > at > org.apache.camel.component.dropbox.core.DropboxAPIFacade.search(DropboxAPIFacade.java:270) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at > org.apache.camel.component.dropbox.integration.producer.DropboxSearchProducer.process(DropboxSearchProducer.java:43) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at > org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) > ~[camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148) > ~[camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548) > ~[camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:138) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:101) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:370) > [camel-core-2.20.1.jar:2.20.1]{code} > On the other hand, when I put query=* like this: > {code:java} > from("direct:dropboxSearch").to("dropbox://search?remotePath=/=*={{dropbox.key}}"){code} > it throws: > {code:java} > org.apache.camel.component.dropbox.util.DropboxException: / does not exist or > can't obtain metadata > at > org.apache.camel.component.dropbox.core.DropboxAPIFacade.search(DropboxAPIFacade.java:283) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at > org.apache.camel.component.dropbox.integration.producer.DropboxSearchProducer.process(DropboxSearchProducer.java:43) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at >
[jira] [Commented] (CAMEL-12176) Camel-Dropbox /search and /get are not working
[ https://issues.apache.org/jira/browse/CAMEL-12176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16350343#comment-16350343 ] Kamil commented on CAMEL-12176: --- [~davsclaus], what I learnt from using pure dropbox API is that indeed, you can not use "/", but you can access "root" using empty string "". Therefore I'm using this simple method just before I pass path to Dropbox: {code:java} private String cleanPath(final String path) { return "/".equals(path) ? StringUtils.EMPTY : path; //dropbox workaround } {code} I think it would be much better to use this approach instead of force users to wonder "how the heck I can access root folder" > Camel-Dropbox /search and /get are not working > -- > > Key: CAMEL-12176 > URL: https://issues.apache.org/jira/browse/CAMEL-12176 > Project: Camel > Issue Type: Bug > Components: camel-dropbox >Affects Versions: 2.20.1 >Reporter: Kamil >Assignee: Claus Ibsen >Priority: Major > Fix For: 2.20.3, 2.21.0 > > > First of all, > [documentation|https://github.com/apache/camel/blob/master/components/camel-dropbox/src/main/docs/dropbox-component.adoc] > states that "query" property in "search" operation is not mandatory, but: > {code:java} > from("direct:dropboxSearch").to("dropbox://search?remotePath=/={{dropbox.key}}"){code} > throws: > {code:java} > java.lang.IllegalArgumentException: Required value for 'query' is null > at com.dropbox.core.v2.files.SearchArg.(SearchArg.java:59) > ~[dropbox-core-sdk-3.0.4.jar:na] > at com.dropbox.core.v2.files.SearchArg.(SearchArg.java:93) > ~[dropbox-core-sdk-3.0.4.jar:na] > at > com.dropbox.core.v2.files.DbxUserFilesRequests.search(DbxUserFilesRequests.java:2416) > ~[dropbox-core-sdk-3.0.4.jar:na] > at > org.apache.camel.component.dropbox.core.DropboxAPIFacade.search(DropboxAPIFacade.java:270) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at > org.apache.camel.component.dropbox.integration.producer.DropboxSearchProducer.process(DropboxSearchProducer.java:43) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at > org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) > ~[camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148) > ~[camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548) > ~[camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:138) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:101) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:370) > [camel-core-2.20.1.jar:2.20.1]{code} > On the other hand, when I put query=* like this: > {code:java} > from("direct:dropboxSearch").to("dropbox://search?remotePath=/=*={{dropbox.key}}"){code} > it throws: > {code:java} > org.apache.camel.component.dropbox.util.DropboxException: / does not exist or > can't obtain metadata > at > org.apache.camel.component.dropbox.core.DropboxAPIFacade.search(DropboxAPIFacade.java:283) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at >
[jira] [Commented] (CAMEL-12176) Camel-Dropbox /search and /get are not working
[ https://issues.apache.org/jira/browse/CAMEL-12176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16350083#comment-16350083 ] Claus Ibsen commented on CAMEL-12176: - Maybe you cannot use the root path for remotePath. I have added the caused exception in the stacktrace in the future so you can see the error from dropbox itself. The doc has been fixed also. > Camel-Dropbox /search and /get are not working > -- > > Key: CAMEL-12176 > URL: https://issues.apache.org/jira/browse/CAMEL-12176 > Project: Camel > Issue Type: Bug > Components: camel-dropbox >Affects Versions: 2.20.1 >Reporter: Kamil >Priority: Major > Fix For: 2.20.3, 2.21.0 > > > First of all, > [documentation|https://github.com/apache/camel/blob/master/components/camel-dropbox/src/main/docs/dropbox-component.adoc] > states that "query" property in "search" operation is not mandatory, but: > {code:java} > from("direct:dropboxSearch").to("dropbox://search?remotePath=/={{dropbox.key}}"){code} > throws: > {code:java} > java.lang.IllegalArgumentException: Required value for 'query' is null > at com.dropbox.core.v2.files.SearchArg.(SearchArg.java:59) > ~[dropbox-core-sdk-3.0.4.jar:na] > at com.dropbox.core.v2.files.SearchArg.(SearchArg.java:93) > ~[dropbox-core-sdk-3.0.4.jar:na] > at > com.dropbox.core.v2.files.DbxUserFilesRequests.search(DbxUserFilesRequests.java:2416) > ~[dropbox-core-sdk-3.0.4.jar:na] > at > org.apache.camel.component.dropbox.core.DropboxAPIFacade.search(DropboxAPIFacade.java:270) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at > org.apache.camel.component.dropbox.integration.producer.DropboxSearchProducer.process(DropboxSearchProducer.java:43) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at > org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) > ~[camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148) > ~[camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548) > ~[camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:138) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.processor.Pipeline.process(Pipeline.java:101) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506) > [camel-core-2.20.1.jar:2.20.1] > at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161) > [camel-core-2.20.1.jar:2.20.1] > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:370) > [camel-core-2.20.1.jar:2.20.1]{code} > On the other hand, when I put query=* like this: > {code:java} > from("direct:dropboxSearch").to("dropbox://search?remotePath=/=*={{dropbox.key}}"){code} > it throws: > {code:java} > org.apache.camel.component.dropbox.util.DropboxException: / does not exist or > can't obtain metadata > at > org.apache.camel.component.dropbox.core.DropboxAPIFacade.search(DropboxAPIFacade.java:283) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at > org.apache.camel.component.dropbox.integration.producer.DropboxSearchProducer.process(DropboxSearchProducer.java:43) > ~[camel-dropbox-2.20.1.jar:2.20.1] > at > org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) > ~[camel-core-2.20.1.jar:2.20.1] > at