Btw I logged a ticket about this https://issues.apache.org/jira/browse/CAMEL-5693
On Fri, Oct 5, 2012 at 1:15 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Thu, Oct 4, 2012 at 9:27 PM, Christian Müller > <christian.muel...@gmail.com> wrote: >> @Claus: Could this be related to the doTry()/doCatch() issue you are >> investigating at present? Or is the exception, which is thrown in the >> doCatch() clause, wrapped into another exception? >> >> public void onAcceptDeliverSm(DeliverSm deliverSm) throws >> ProcessRequestException { >> LOG.debug("Received a deliverSm {}", deliverSm); >> >> try { >> Exchange exchange = >> endpoint.createOnAcceptDeliverSmExchange(deliverSm); >> >> LOG.trace("processing the new smpp exchange..."); >> processor.process(exchange); >> LOG.trace("processed the new smpp exchange"); >> } catch (Exception e) { >> exceptionHandler.handleException(e); >> if (e instanceof ProcessRequestException) { >> throw (ProcessRequestException) e; >> } >> } >> } > > The code above seems wrong. > > Is the idea to propagate back the exception by throwing the > ProcessRequestException which is in the method signature? > > Then it should be something like > > try { > .. process > } catch (Exception e) { > // notice this is unlikely to happen as the routing engine deals > with the exceptions normally > // but we have it as a fail-safe just in case > exchange.setException(e); > } > > if (exchange.getException() != null) { > // okay the processing failed > throw new ProcessRequestException("Error processing message", > exchange.getException()); > } > > > > > > > >> >> Best, >> Christian >> >> On Wed, Oct 3, 2012 at 10:29 PM, chudak <meadand...@gmail.com> wrote: >> >>> I'm following the SMPP documentation and trying to setup a consumer route. >>> I >>> have my route talking to the Logica simulator and am trying to configure >>> the >>> exception handling as discussed in the documentation. It seems that none of >>> the ways I've tried to configure the route are working correctly. >>> >>> My current routebuilder looks like this: >>> >>> from(inboundSmppUri) >>> .doTry() >>> .to(inboundTargetUri) >>> .doCatch(NullPointerException.class) >>> .throwException(new ProcessRequestException("update of sms state >>> failed", 100)) >>> .doCatch(Throwable.class) >>> .throwException(new ProcessRequestException("update of sms state >>> failed", 100)) >>> .end(); >>> >>> Where SMPP uri looks like this: >>> >>> smpp://pavel@localhost >>> :1717?password=wpsd&enquireLinkTimer=5000&transactionTimer=5000&systemType=consumer >>> >>> And the target URI looks like this: >>> >>> activemqnontx:queue:inbound-sms >>> >>> I have a broken transaction configuration on my jms configuration so the >>> message processing is failing: >>> >>> 2012-10-03 13:09:59,934 DEBUG [pool-1-thread-1] >>> [AbstractSessionContext.java:82] Activity notified >>> 2012-10-03 13:09:59,937 DEBUG [pool-1-thread-1] >>> [MessageReceiverListenerImpl.java:65] Received a deliverSm PDUHeader(40, >>> 00000005, 00000000, 15) >>> 2012-10-03 13:09:59,960 DEBUG [pool-1-thread-1] [SendProcessor.java:114] >>> >>>> Endpoint[activemqnontx://queue:sms-inbound] Exchange[SmppMessage: >>> PDUHeader(40, 00000005, 00000000, 15)] >>> 2012-10-03 13:09:59,970 INFO [pool-1-thread-1] >>> [SingleConnectionFactory.java:291] Established shared JMS Connection: >>> com.atomikos.jms.JtaQueueConnection@ccd09b >>> 2012-10-03 13:09:59,978 DEBUG [pool-1-thread-1] [JmsTemplate.java:464] >>> Executing callback on JMS Session: com.atomikos.jms.JtaQueueSession@1f613c >>> 2012-10-03 13:10:00,026 DEBUG [pool-1-thread-1] [JmsConfiguration.java:266] >>> Sending JMS message to: queue://sms-inbound with message: >>> ActiveMQTextMessage {commandId = 0, responseRequired = false, messageId = >>> null, originalDestination = null, originalTransactionId = null, producerId >>> = >>> null, destination = null, transactionId = null, expiration = 0, timestamp = >>> 0, arrival = 0, brokerInTime = 0, brokerOutTime = 0, correlationId = null, >>> replyTo = null, persistent = true, type = null, priority = 0, groupID = >>> null, groupSequence = 0, targetConsumerId = null, compressed = false, >>> userID >>> = null, content = null, marshalledProperties = null, dataStructure = null, >>> redeliveryCounter = 0, size = 0, properties = {CamelSmppSequenceNumber=15, >>> breadcrumbId=ID-chudak-laptop2-59053-1349294879289-0-2, >>> CamelSmppCommandId=5, CamelSmppMessageType=DeliverSm}, readOnlyProperties = >>> false, readOnlyBody = false, droppable = false, text = 2314234} >>> 2012-10-03 13:10:00,030 DEBUG [pool-1-thread-1] [TryProcessor.java:361] The >>> exception is handled: true for the exception: >>> org.springframework.jms.UncategorizedJmsException caused by: Uncategorized >>> exception occured during JMS processing; nested exception is >>> javax.jms.JMSException: JTA transaction required for JtaMessageProducer >>> 2012-10-03 13:10:00,032 DEBUG [pool-1-thread-1] [SMPPSession.java:499] >>> deliver_sm_resp with seq_number 15 has been sent >>> >>> However, the response being sent to the simulator shows no errors: >>> >>> > 01:10:00 [pavel] client response: (deliver_resp: (pdu: 17 80000005 0 15) >>> > ) >>> >>> Does anyone know what I have to do to get this exception propagated up to >>> the JSMPP library so it returns an error to the SMSC? This is not working >>> as >>> advertised... >>> >>> >>> >>> >>> >>> -- >>> View this message in context: >>> http://camel.465427.n5.nabble.com/Problem-with-SMPP-Consumer-error-handling-tp5720516.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >> >> >> >> -- > > > > -- > Claus Ibsen > ----------------- > Red Hat, Inc. > FuseSource is now part of Red Hat > Email: cib...@redhat.com > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen -- Claus Ibsen ----------------- Red Hat, Inc. FuseSource is now part of Red Hat Email: cib...@redhat.com Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen