[overlord-commits] Overlord SVN: r636 - in cdl/trunk: samples/jbossesb/brokerage/broker/stateful/src/main/resources/META-INF and 1 other directory.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Tue May 5 04:22:26 EDT 2009


Author: jeff.yuchang
Date: 2009-05-05 04:22:26 -0400 (Tue, 05 May 2009)
New Revision: 636

Modified:
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ConversationAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ReceiveMessageAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/RetrieveSessionAction.java
   cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SendMessageAction.java
   cdl/trunk/samples/jbossesb/brokerage/broker/stateful/src/main/resources/META-INF/jboss-esb.xml
Log:
Fix SendMessageAction issue bug.



Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ConversationAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ConversationAction.java	2009-05-04 16:07:35 UTC (rev 635)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ConversationAction.java	2009-05-05 08:22:26 UTC (rev 636)
@@ -57,11 +57,11 @@
 	
 	private ConfigTree config;
 	
-	private Set<ScheduleItem> scheduleItems = new HashSet<ScheduleItem>();
+	private Set<ScheduleItem> scheduleItems;
 	
-	protected boolean unscheduledServiceItem = false;
+	protected boolean hasUnscheduledService;
 	
-	protected boolean isCreateSessionAction = false;
+	protected boolean isCreateSessionAction;
 	
 	protected Session session;
 	
@@ -105,6 +105,9 @@
 	 * @throws Exception
 	 */
 	public final Message process(Message message) throws Exception {
+		scheduleItems = new HashSet<ScheduleItem>();
+		hasUnscheduledService = false;
+		isCreateSessionAction = false;
 		
 		hibernateSession = HibernateUtil.currentSession();
 		Transaction transaction = hibernateSession.beginTransaction();
@@ -113,7 +116,7 @@
 			if (session != null && isFirstOrLastConversationAction(message, true)) {
 				logger.debug("This is first conversation action of message: [" + message.getBody().get() + "].");
 				unschedule(session, message);
-				unscheduledServiceItem = true;
+				hasUnscheduledService = true;
 			}
 			
 			handle(message);
@@ -143,6 +146,7 @@
 			transaction.commit();
 		} catch (Exception e) {
 			transaction.rollback();
+			logger.error(e.getMessage(), e);
 			throw new Exception("Error in process message: " + e, e);
 		} finally {
 			HibernateUtil.closeSession();

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ReceiveMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/ReceiveMessageAction.java	2009-05-05 08:22:26 UTC (rev 636)
@@ -77,12 +77,14 @@
 		if (requiredMType.equals(mesgMType)) {
 			java.util.List<Identity> ids=getIdentities(message, serviceName);
 			
-			session=getSession(message, ids);
+			if (session == null){
+				session=getSession(message, ids);
+			}
 			session.assimulateIdentities(ids);
 			
 			logger.info("MESSAGE TYPE [ "+ mesgMType +" ] RECEIVED.");
 			
-			if (unscheduledServiceItem == false && isFirstOrLastConversationAction(message, true)) {
+			if (hasUnscheduledService == false && isFirstOrLastConversationAction(message, true)) {
 				String category=getConfig().getParent().getAttribute(ActionProperties.SERVICE_CATEGORY);
 				String name=getConfig().getParent().getAttribute(ActionProperties.SERVICE_NAME);
 				unscheduleService(session, category, name);

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/RetrieveSessionAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/RetrieveSessionAction.java	2009-05-04 16:07:35 UTC (rev 635)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/RetrieveSessionAction.java	2009-05-05 08:22:26 UTC (rev 636)
@@ -63,15 +63,21 @@
 	}
 	
 	public Message handle(Message message) throws Exception{
+		logger.debug("Entering the RetrieveSessionAction");
+		
 		String serviceDescriptionName = getConfig().getAttribute(ActionProperties.SERVICE_DESCRIPTION_NAME);	
 		List<Identity>	ids = getIdentities(message, serviceDescriptionName);
-			
-		session= getSession(message, ids);
 		
+		if (session == null) {
+			session= getSession(message, ids);
+		}
+		
 		String serviceName=getConfig().getParent().getAttribute(ActionProperties.SERVICE_NAME);
 		String serviceCategory=getConfig().getParent().getAttribute(ActionProperties.SERVICE_CATEGORY);
-		unscheduleService(session, serviceCategory, serviceName);
 		
+		if (!hasUnscheduledService) {
+			unscheduleService(session, serviceCategory, serviceName);
+		}
 		logger.debug("Finished retrieving session action.");
 		
 		return(message);

Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SendMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SendMessageAction.java	2009-05-04 16:07:35 UTC (rev 635)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/stateful/actions/SendMessageAction.java	2009-05-05 08:22:26 UTC (rev 636)
@@ -199,6 +199,8 @@
 	
 	@Override
 	protected void sendAsyncMessage(Message message) throws Exception {
+		super.sendAsyncMessage(message);
+		
 		if (serviceInvoker != null) {
 			serviceInvoker.deliverAsync(this.sendMessage);
 		} else if (courier != null) {

Modified: cdl/trunk/samples/jbossesb/brokerage/broker/stateful/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/stateful/src/main/resources/META-INF/jboss-esb.xml	2009-05-04 16:07:35 UTC (rev 635)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/stateful/src/main/resources/META-INF/jboss-esb.xml	2009-05-05 08:22:26 UTC (rev 636)
@@ -326,7 +326,8 @@
 			<actions mep="OneWay">
 				<action class="org.jboss.soa.overlord.jbossesb.stateful.actions.RetrieveSessionAction"
 							process="process" name="s10-1">
-					<property name="session" value="org.jboss.soa.overlord.samples.jbossesb.loan.broker.CompleteTransactionMain" />
+					<property name="session" value="org.jboss.soa.overlord.samples.jbossesb.loan.broker.BrokerMain" />
+					<property name="serviceDescriptionName" value="{http://www.jboss.org/overlord/loanBroker}Broker" />
 					<property name="identities" >
 						<identity type="primary" >
 							<token name="id" locator="//@id" />




More information about the overlord-commits mailing list