I apologize for the omission, haven't realized the issue Gordon spotted 
(thanks!).

Commit reverted already (by r1602832), I will post a review for proper patch.

Pavel


----- Original Message -----
> From: "Gordon Sim" <[email protected]>
> To: [email protected], "Pavel Moravec" <[email protected]>
> Sent: Monday, June 16, 2014 11:08:51 AM
> Subject: Breaking change in python client (was Re: svn commit: r1602820 - in 
> /qpid/trunk/qpid/python/qpid/messaging:
> driver.py endpoints.py)
> 
> On 06/16/2014 09:09 AM, [email protected] wrote:
> > Author: pmoravec
> > Date: Mon Jun 16 08:09:42 2014
> > New Revision: 1602820
> >
> > URL: http://svn.apache.org/r1602820
> > Log:
> > QPID-5823: Python client should create a node with name starting '\#'
> >
> > Modified:
> >      qpid/trunk/qpid/python/qpid/messaging/driver.py
> >      qpid/trunk/qpid/python/qpid/messaging/endpoints.py
> >
> 
> This change breaks the behaviour of the oython client. Previously the
> application could retrieve the name of the source after the expansion of
> the '#' for use in the reply_to. With this change, that no longer works.
> I think we need to revert and look for a different fix.
> 
> > Modified: qpid/trunk/qpid/python/qpid/messaging/driver.py
> > URL:
> > http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/messaging/driver.py?rev=1602820&r1=1602819&r2=1602820&view=diff
> > ==============================================================================
> > --- qpid/trunk/qpid/python/qpid/messaging/driver.py (original)
> > +++ qpid/trunk/qpid/python/qpid/messaging/driver.py Mon Jun 16 08:09:42
> > 2014
> > @@ -34,6 +34,7 @@ from qpid.selector import Selector
> >   from qpid.util import URL, default,get_client_properties_with_defaults
> >   from qpid.validator import And, Context, List, Map, Types, Values
> >   from threading import Condition, Thread
> > +from qpid.datatypes import uuid4
> >
> >   log = getLogger("qpid.messaging")
> >   rawlog = getLogger("qpid.messaging.io.raw")
> > @@ -941,6 +942,16 @@ class Engine:
> >           # XXX: subject
> >           if lnk.options is None:
> >             lnk.options = {}
> > +        # if address starts with '#', create auxiliary queue with name
> > preceded by uuid
> > +        if addr.startswith("#") and 'create' not in lnk.options:
> > +          lnk.name = str(uuid4()) + lnk.name
> > +          lnk.options['create'] = "always"
> > +          if 'node' not in lnk.options:
> > +            lnk.options['node'] = {}
> > +          if 'x-declare' not in lnk.options['node']:
> > +            lnk.options['node']['x-declare'] = {}
> > +          lnk.options['node']['x-declare']['auto-delete'] = "True"
> > +          lnk.options['node']['x-declare']['exclusive'] = "True"
> >         except address.LexError, e:
> >           return MalformedAddress(text=str(e))
> >         except address.ParseError, e:
> >
> > Modified: qpid/trunk/qpid/python/qpid/messaging/endpoints.py
> > URL:
> > http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/messaging/endpoints.py?rev=1602820&r1=1602819&r2=1602820&view=diff
> > ==============================================================================
> > --- qpid/trunk/qpid/python/qpid/messaging/endpoints.py (original)
> > +++ qpid/trunk/qpid/python/qpid/messaging/endpoints.py Mon Jun 16 08:09:42
> > 2014
> > @@ -596,7 +596,6 @@ class Session(Endpoint):
> >       @rtype: Sender
> >       @return: a new Sender for the specified target
> >       """
> > -    target = _mangle(target)
> >       sender = Sender(self, self.next_sender_id, target, options)
> >       self.next_sender_id += 1
> >       self.senders.append(sender)
> > @@ -620,7 +619,6 @@ class Session(Endpoint):
> >       @rtype: Receiver
> >       @return: a new Receiver for the specified source
> >       """
> > -    source = _mangle(source)
> >       receiver = Receiver(self, self.next_receiver_id, source, options)
> >       self.next_receiver_id += 1
> >       self.receivers.append(receiver)
> > @@ -766,12 +764,6 @@ class Session(Endpoint):
> >       finally:
> >         self.connection._remove_session(self)
> >
> > -def _mangle(addr):
> > -  if addr and addr.startswith("#"):
> > -    return str(uuid4()) + addr
> > -  else:
> > -    return addr
> > -
> >   class Sender(Endpoint):
> >
> >     """
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to