Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-5623

[C++ Messaging Client - amqp1.0] throws qpid::Exception instead of qpid::types::Exception

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.27
    • 0.27
    • C++ Client
    • None
    • Windows .NET binding

    Description

      Running various client invalid URL tests gets different results on amqp 0-10 vs 1.0.

      Both versions get into Url::parse and throw Url::Invalid();

      Under 0-10 (which works as expected) has

      void ConnectionImpl::open()
      {
          qpid::sys::AbsTime start = qpid::sys::now();
          qpid::sys::ScopedLock<qpid::sys::Semaphore> l(semaphore);
          try {
              if (!connection.isOpen()) connect(start);
          }
          catch (const types::Exception&) { throw; }
          catch (const qpid::Exception& e) { throw messaging::ConnectionError(e.what()); }
      }
      

      where the Url throw is caught as a qpid::Exception and rethrown as a messaging::ConnectionError.

      Under amqp1.0 the Url::Invalid bleeds up to the .NET client interface and is not handled correctly.

      Maybe there are two things to fix:

      1. Make the amqp1.0 client send messaging:: exceptions only.
      2. Beef up the .NET binding to catch various other exceptions and relay them into the .NET client when possible.

      As is the .NET clients see an exception of InteropServices::SEHUnhandledException which offers no hint of what went wrong.

      Attachments

        Activity

          People

            chug Charles E. Rolke
            chug Charles E. Rolke
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: