Sequence unknown faults not generated for application messages
--------------------------------------------------------------
Key: SANDESHA2-12
URL: http://issues.apache.org/jira/browse/SANDESHA2-12
Project: Apache Sandesha2
Type: Bug
Reporter: Andrew Gatford
Priority: Minor
Application messages sent to a sequence which is unknown do not generate
Sequence unknown faults.
The error encountered is an exception
org.apache.sandesha2.SandeshaException: Error- The sequence does not exist
at
org.apache.sandesha2.msgprocessors.ApplicationMsgProcessor.processInMessage(ApplicationMsgProcessor.java:270)
at
org.apache.sandesha2.handlers.SandeshaInHandler.invoke(SandeshaInHandler.java:122)
at org.apache.axis2.engine.Phase.invoke(Phase.java:380)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:514)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:483)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)
at
org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:238)
at
org.apache.axis2.transport.http.server.DefaultHttpServiceProcessor.doService(DefaultHttpServiceProcessor.java:177)
at
org.apache.http.protocol.HttpService.handleRequest(HttpService.java:123)
at
org.apache.axis2.transport.http.server.DefaultHttpServiceProcessor.run(DefaultHttpServiceProcessor.java:236)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:797)
The exception is thrown because of a bug inside
FaultManager.checkForUnknownSequence
boolean validSequence = true;
....................................
else {
NextMsgBeanMgr mgr = storageManager.getNextMsgBeanMgr();
SOAPEnvelope envelope = messageContext.getEnvelope();
Collection coll = mgr.retrieveAll();
Iterator it = coll.iterator();
boolean contains = false;
while (it.hasNext()) {
NextMsgBean nextMsgBean = (NextMsgBean) it.next();
String tempId = nextMsgBean.getSequenceID();
if (tempId.equals(sequenceID)) {
contains = true;
break;
}
}
if (contains)
validSequence = true;
}
As valid sequence is initialized to true it is never set to false if a
NextMsgBean is not found.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]