Author: gatfora
Date: Wed Jan 24 03:03:36 2007
New Revision: 499354
URL: http://svn.apache.org/viewvc?view=rev&rev=499354
Log:
Fix NPE in SandeshaGlobalInHandler where Sequence not found
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java?view=diff&rev=499354&r1=499353&r2=499354
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
Wed Jan 24 03:03:36 2007
@@ -128,7 +128,7 @@
returnValue = InvocationResponse.ABORT; // the
msg has been
// dropped
- processDroppedMessage(rmMessageContext,
storageManager);
+
SequenceProcessor.sendAckIfNeeded(rmMessageContext, storageManager,true);
if (log.isDebugEnabled())
log.debug("Exit:
SandeshaGlobalInHandler::invoke, dropped "
+ returnValue);
@@ -142,6 +142,8 @@
}
} catch (Exception e) {
+ if (log.isDebugEnabled())
+ log.debug("Caught an exception", e);
// message should not be sent in a exception situation.
msgContext.pause();
returnValue = InvocationResponse.SUSPEND;
@@ -186,15 +188,15 @@
Sequence sequence = (Sequence)
rmMsgContext.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);
long msgNo =
sequence.getMessageNumber().getMessageNumber();
- RMDBean findBean = new RMDBean ();
-
findBean.setSequenceID(sequence.getIdentifier().getIdentifier());
-
- RMDBean rmdBean =
storageManager.getRMDBeanMgr().findUnique(findBean);
-
- RangeString serverCompletedMessages =
rmdBean.getServerCompletedMessages();
+ RMDBean rmdBean =
+
SandeshaUtil.getRMDBeanFromSequenceId(storageManager,
sequence.getIdentifier().getIdentifier());
- if
(serverCompletedMessages.isMessageNumberInRanges(msgNo))
- duplicate = true;
+ if (rmdBean != null) {
+ RangeString serverCompletedMessages =
rmdBean.getServerCompletedMessages();
+
+ if
(serverCompletedMessages.isMessageNumberInRanges(msgNo))
+ duplicate = true;
+ }
}
@@ -285,23 +287,6 @@
return false;
}
-
- private void processDroppedMessage(RMMsgContext rmMsgContext,
StorageManager storageManager)
- throws AxisFault {
- if (log.isDebugEnabled())
- log.debug("Enter:
SandeshaGlobalInHandler::processDroppedMessage");
-
- if (rmMsgContext.getMessageType() ==
Sandesha2Constants.MessageTypes.APPLICATION) {
-
- // Even though the duplicate message is dropped, hv to
send the ack
- // if needed.
- SequenceProcessor.sendAckIfNeeded(rmMsgContext,
storageManager,true);
-
- }
- if (log.isDebugEnabled())
- log.debug("Exit:
SandeshaGlobalInHandler::processDroppedMessage");
- }
-
private void doGlobalProcessing(RMMsgContext rmMsgCtx) throws
SandeshaException {
}
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java?view=diff&rev=499354&r1=499353&r2=499354
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
Wed Jan 24 03:03:36 2007
@@ -44,7 +44,6 @@
import org.apache.sandesha2.i18n.SandeshaMessageHelper;
import org.apache.sandesha2.i18n.SandeshaMessageKeys;
import org.apache.sandesha2.storage.StorageManager;
-import org.apache.sandesha2.storage.beanmanagers.RMDBeanMgr;
import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr;
import org.apache.sandesha2.storage.beans.RMDBean;
import org.apache.sandesha2.storage.beans.RMSBean;
@@ -230,15 +229,11 @@
MessageContext referenceMsg =
referenceRMMessage.getMessageContext();
- RMDBeanMgr rmdBeanMgr = storageManager.getRMDBeanMgr();
- RMDBean findBean = new RMDBean ();
- findBean.setSequenceID(sequenceId);
- RMDBean rmdBean = rmdBeanMgr.findUnique(findBean);
+ RMDBean rmdBean =
SandeshaUtil.getRMDBeanFromSequenceId(storageManager, sequenceId);
EndpointReference acksTo = new
EndpointReference(rmdBean.getAcksToEPR());
- String acksToStr = acksTo.getAddress();
- if (acksToStr == null)
+ if (acksTo.getAddress() == null)
throw new
SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.acksToStrNotSet));
AxisOperation ackOperation =
SpecSpecificConstants.getWSRMOperation(
@@ -409,6 +404,8 @@
}
public static void sendAckNow (RMMsgContext ackRMMsgContext) throws
AxisFault {
+ if (log.isDebugEnabled())
+ log.debug("Enter: AcknowledgementManager::sendAckNow");
MessageContext ackMsgContext =
ackRMMsgContext.getMessageContext();
ConfigurationContext configContext =
ackMsgContext.getConfigurationContext();
@@ -432,7 +429,7 @@
AxisEngine engine = new AxisEngine(configContext);
engine.send(ackMsgContext);
- }
-
-
+ if (log.isDebugEnabled())
+ log.debug("Exit: AcknowledgementManager::sendAckNow");
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]