History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: IDEADEV-22913
Type: Usability Problem Usability Problem
Status: Open Open
Priority: Major Major
Assignee: Maxim Shafirov
Reporter: Andrew Perepelytsya
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
IDEA: Development

Data flow algorithm is too lazy and bails out on a simple block

Created: 27 Oct 07 01:57   Updated: 06 Nov 08 23:06
Component/s: Code Analysis. Inspection
Fix Version/s: Undefined

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown

Build: 7,364
Severity: Medium


 Description  « Hide
The following method is underlined with grey, with a message that data flow algorithm gave up.
protected void disposeReceivers()
    {
        if (receivers != null)
        {
            logger.debug("Disposing Receivers");

            for (Iterator iterator = receivers.values().iterator(); iterator.hasNext();)
            {
                UMOMessageReceiver receiver = (UMOMessageReceiver) iterator.next();

                try
                {
                    this.destroyReceiver(receiver, receiver.getEndpoint());
                }
                catch (Throwable e)
                {
                    logger.error("Failed to destroy receiver: " + receiver, e);
                }
            }

            receivers.clear();
            logger.debug("Receivers Disposed");
        }
    }

Full source code is available at http://dev.mulesource.com/docs/site/1.4.4-SNAPSHOT/xref/org/mule/providers/AbstractConnector.html



 All   Comments   Work Log   Change History      Sort Order:
Maxim Shafirov - 31 Oct 07 18:44
In fact, it's presence of catch(Throwable) that makes DFA give up. RuntimeException may be thrown at any point in the code making number of conditional throws/doesn't throw decision just huge. We'll think what can be done here.