[jboss-svn-commits] JBL Code SVN: r16165 - in labs/jbossesb/trunk/product/rosetta/src/org/jboss: soa/esb/client and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 30 12:29:26 EDT 2007
Author: mark.little at jboss.com
Date: 2007-10-30 12:29:25 -0400 (Tue, 30 Oct 2007)
New Revision: 16165
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java
Log:
http://jira.jboss.com/jira/browse/JBESB-1268
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java 2007-10-30 15:15:25 UTC (rev 16164)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java 2007-10-30 16:29:25 UTC (rev 16165)
@@ -152,8 +152,8 @@
|| addr.startsWith("sftp://") || addr.startsWith("ftps://"))
return new FileCourier(new FileEpr(epr), pickUpOnly);
- throw new CourierException("Courier for "
- + epr.getClass().getSimpleName() + " not supported yet");
+ throw new MalformedEPRException("Courier for "
+ + epr.getClass().getSimpleName() + " not supported!");
}
/**
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java 2007-10-30 15:15:25 UTC (rev 16164)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java 2007-10-30 16:29:25 UTC (rev 16165)
@@ -254,15 +254,24 @@
EPR epr;
// Iterate over all the EPRs in the list until delivered
while ((epr = loadBalancer.chooseEPR(serviceClusterInfo)) != null) {
- replyMessage = eprInvoker.attemptDelivery(message, epr);
- if (replyMessage != null) {
- // We've delivered it, we're done!
- return replyMessage;
- } else {
- logger.info("Unresponsive EPR: " + epr+" for message: "+message.getHeader());
-
- serviceClusterInfo.removeDeadEPR(epr);
- }
+ try
+ {
+ replyMessage = eprInvoker.attemptDelivery(message, epr);
+ if (replyMessage != null) {
+ // We've delivered it, we're done!
+ return replyMessage;
+ } else {
+ logger.info("Unresponsive EPR: " + epr+" for message: "+message.getHeader());
+
+ serviceClusterInfo.removeDeadEPR(epr);
+ }
+ }
+ catch (MalformedEPRException ex) // so we can differentiate failure modes, since returning null is limiting
+ {
+ logger.info("Invalid EPR for service: ignoring for message: "+message.getHeader());
+
+ serviceClusterInfo.removeDeadEPR(epr);
+ }
}
}
@@ -387,7 +396,7 @@
* @return Returns the message (or a reply message if synchronous) if the message was delivered
* without error, otherwise null.
*/
- private Message attemptDelivery(Message message, EPR epr) throws FaultMessageException {
+ private Message attemptDelivery(Message message, EPR epr) throws FaultMessageException, MalformedEPRException {
TwoWayCourier courier = null;
// Get a courier for the EPR...
@@ -397,6 +406,8 @@
logger.debug("Courier lookup failed for EPR [" + epr + "] for Service [" + service + "] and Message ["+message.getHeader()+"].", e);
} catch (MalformedEPRException e) {
logger.warn("Badly formed EPR [" + epr + "] for Service [" + service + "] and Message ["+message.getHeader()+"]." + e.getMessage());
+
+ throw e;
} catch (Throwable t) {
logger.warn("Unexpected exception during Courier lookup for EPR [" + epr + "] for Service [" + service + "] and Message ["+message.getHeader()+"].", t);
}
@@ -442,6 +453,8 @@
} catch (MalformedEPRException e) {
// Hmmmm???... Can this really happen? The Courier has already been created. Haven't we already validated the EPR during the Courier lookup (above)??
logger.warn("Unexpected error. Badly formed EPR [" + epr + "] for Service [" + service + "]. But the EPR has already been validated!!");
+
+ throw e;
} catch (Throwable t) {
logger.warn("Unexpected exception during attempted message delivery over Courier for EPR [" + epr + "] for Service [" + service + "] and Message ["+message.getHeader()+"].", t);
} finally {
More information about the jboss-svn-commits
mailing list