Author: davsclaus
Date: Sat Mar 23 08:39:29 2013
New Revision: 1460119
URL: http://svn.apache.org/r1460119
Log:
Avro producer should initialize its resources in doStart
Modified:
camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroProducer.java
Modified:
camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroProducer.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroProducer.java?rev=1460119&r1=1460118&r2=1460119&view=diff
==============================================================================
---
camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroProducer.java
(original)
+++
camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroProducer.java
Sat Mar 23 08:39:29 2013
@@ -41,23 +41,14 @@ public abstract class AvroProducer exten
public boolean process(final Exchange exchange, final AsyncCallback
callback) {
Object request = exchange.getIn().getBody();
- if (transceiver == null) {
- try {
- transceiver = createTransceiver();
- requestor = new AvroRequestor(getEndpoint().getProtocol(),
transceiver);
- } catch (Exception e) {
- exchange.setException(e);
- callback.done(true);
- return true;
- }
- }
-
try {
requestor.request(exchange.getIn().getHeader(AvroConstants.AVRO_MESSAGE_NAME,
String.class), wrapObjectToArray(request), new Callback<Object>() {
@Override
public void handleResult(Object result) {
// got result from avro, so set it on the exchange and
invoke the callback
try {
+ // propagate headers
+
exchange.getOut().setHeaders(exchange.getIn().getHeaders());
exchange.getOut().setBody(result);
} finally {
callback.done(false);
@@ -97,6 +88,8 @@ public abstract class AvroProducer exten
@Override
protected void doStart() throws Exception {
super.doStart();
+ transceiver = createTransceiver();
+ requestor = new AvroRequestor(getEndpoint().getProtocol(),
transceiver);
}
@Override
@@ -105,6 +98,7 @@ public abstract class AvroProducer exten
if (transceiver != null) {
transceiver.close();
}
+ requestor = null;
}
@Override