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]

Reply via email to