You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2017/04/12 19:56:28 UTC
[09/11] camel git commit: Review fix. Do try .. catch of Exceptions
in the producer
Review fix. Do try .. catch of Exceptions in the producer
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/b1f7ea62
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b1f7ea62
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b1f7ea62
Branch: refs/heads/master
Commit: b1f7ea623da2748537d6349ebbea4ed3f220a31a
Parents: 3bc8d1b
Author: Preben Asmussen <pr...@gmail.com>
Authored: Wed Apr 12 17:25:22 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Apr 12 21:56:07 2017 +0200
----------------------------------------------------------------------
.../camel/component/pubnub/PubNubProducer.java | 83 ++++++++++----------
1 file changed, 43 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/b1f7ea62/components/camel-pubnub/src/main/java/org/apache/camel/component/pubnub/PubNubProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-pubnub/src/main/java/org/apache/camel/component/pubnub/PubNubProducer.java b/components/camel-pubnub/src/main/java/org/apache/camel/component/pubnub/PubNubProducer.java
index 4e688d4..bb20e1b 100644
--- a/components/camel-pubnub/src/main/java/org/apache/camel/component/pubnub/PubNubProducer.java
+++ b/components/camel-pubnub/src/main/java/org/apache/camel/component/pubnub/PubNubProducer.java
@@ -20,6 +20,7 @@ import java.util.Arrays;
import com.pubnub.api.PubNubException;
import com.pubnub.api.callbacks.PNCallback;
+import com.pubnub.api.models.consumer.PNErrorData;
import com.pubnub.api.models.consumer.PNPublishResult;
import com.pubnub.api.models.consumer.PNStatus;
import com.pubnub.api.models.consumer.history.PNHistoryResult;
@@ -56,43 +57,41 @@ public class PubNubProducer extends DefaultAsyncProducer {
Operation operation = getOperation(exchange);
LOG.debug("Executing {} operation", operation);
-
- switch (operation) {
- case PUBLISH: {
- doPublish(exchange, callback);
- break;
- }
- case FIRE: {
- doFire(exchange, callback);
- break;
- }
- case GETHISTORY: {
- doGetHistory(exchange, callback);
- break;
- }
- case GETSTATE: {
- doGetState(exchange, callback);
- break;
- }
- case HERENOW: {
- doHereNow(exchange, callback);
- break;
- }
- case SETSTATE: {
- doSetState(exchange, callback);
- break;
- }
- case WHERENOW: {
- doWhereNow(exchange, callback);
- break;
- }
- default:
- throw new UnsupportedOperationException(operation.toString());
- }
- if (exchange.getException() != null) {
- if (exchange.getException() instanceof PubNubException) {
- LOG.error("Exception from PubNub : {}", exchange.getException(PubNubException.class).getPubnubError().getMessage());
+ try {
+ switch (operation) {
+ case PUBLISH: {
+ doPublish(exchange, callback);
+ break;
+ }
+ case FIRE: {
+ doFire(exchange, callback);
+ break;
}
+ case GETHISTORY: {
+ doGetHistory(exchange, callback);
+ break;
+ }
+ case GETSTATE: {
+ doGetState(exchange, callback);
+ break;
+ }
+ case HERENOW: {
+ doHereNow(exchange, callback);
+ break;
+ }
+ case SETSTATE: {
+ doSetState(exchange, callback);
+ break;
+ }
+ case WHERENOW: {
+ doWhereNow(exchange, callback);
+ break;
+ }
+ default:
+ throw new UnsupportedOperationException(operation.toString());
+ }
+ } catch (Exception e) {
+ exchange.setException(e);
callback.done(true);
return true;
}
@@ -103,8 +102,7 @@ public class PubNubProducer extends DefaultAsyncProducer {
private void doPublish(Exchange exchange, AsyncCallback callback) {
Object body = exchange.getIn().getBody();
if (ObjectHelper.isEmpty(body)) {
- exchange.setException(new CamelException("Can not publish empty message"));
- callback.done(true);
+ throw new RuntimeException("Can not publish empty message");
}
LOG.debug("Sending message [{}] to channel [{}]", body, getChannel(exchange));
endpoint.getPubnub()
@@ -222,9 +220,14 @@ public class PubNubProducer extends DefaultAsyncProducer {
private void processMessage(Exchange exchange, AsyncCallback callback, PNStatus status, Object body) {
if (status.isError()) {
- exchange.setException(status.getErrorData().getThrowable());
+ PNErrorData errorData = status.getErrorData();
callback.done(false);
- return;
+ exchange.setException(errorData.getThrowable());
+ if (errorData != null && errorData.getThrowable() instanceof PubNubException) {
+ PubNubException pubNubException = (PubNubException) errorData.getThrowable();
+ throw new RuntimeException(pubNubException.getPubnubError().getMessage(), errorData.getThrowable());
+ }
+ throw new RuntimeException(status.getErrorData().getThrowable());
}
if (exchange.getPattern().isOutCapable()) {
exchange.getOut().copyFrom(exchange.getIn());