Add inner exceptions to the NMSException called "Error creating transport"
--------------------------------------------------------------------------

                 Key: AMQNET-324
                 URL: https://issues.apache.org/jira/browse/AMQNET-324
             Project: ActiveMQ .Net
          Issue Type: Improvement
          Components: NMS
    Affects Versions: 1.5.0
            Reporter: Frank Gynnild
            Assignee: Jim Gomes


The latest 1.5.0 version of Apache.NMS.ActiveMQ uses reflection to find 
connection factories.
However, when there are System.Reflection.ReflectionTypeLoadException (Unable 
to load one or more of the requested types.)
being thrown, these exceptions and InnerExceptions are not being encaspulated 
and rethrown, so they are kind of difficult to spot.
This can happen if the dll get ILMerged into another assembly, and there are 
some issues with this exception.

In TransportFactory.cs:
{code}
                        try
                        {
                factory = NewInstance(scheme.ToLower());
                        }
                        catch(NMSConnectionException)
                        {
                                throw;
                        }
                        catch
                        {
                                throw new NMSConnectionException("Error 
creating transport.");
                        }
{code}

The NMSConnectionException("Error creating transport.") doesn't tell you the 
glory details.

In FactoryFinder.cs, inside the method called private Type 
SearchAssembly(Assembly assembly, string factoryId) you have this:

{code}
Type[] types = assembly.GetTypes();
{code}

This code can throw ReflectionTypeLoadException and it can have multiple 
InnerException that will tell you why it is unable to get
the types. It would be awesome if this exception can be propagated up to the 
NMSConnectionException as an InnerException.

That way we can trace the real problem much easier.


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to