activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Frank Gynnild (JIRA)" <>
Subject [jira] [Created] (AMQNET-324) Add inner exceptions to the NMSException called "Error creating transport"
Date Fri, 01 Apr 2011 09:13:05 GMT
Add inner exceptions to the NMSException called "Error creating transport"

                 Key: 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:
                factory = NewInstance(scheme.ToLower());
				throw new NMSConnectionException("Error creating transport.");

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:

Type[] types = assembly.GetTypes();

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:

View raw message