Seems promising: # ./send.py -a amqp://localhost hi LINK ERROR (amqp:invalid-field) target address not set # ./send.py -a amqp://localhost/ hi LINK ERROR (amqp:invalid-field) target address not set
Thanks, Zhigang On Fri, Jan 25, 2013 at 11:08 AM, Hiram Chirino <[email protected]>wrote: > Ok, I've just committed the changes I wanted to make. If you try a fresh > build of ActiveMQ, your client should report a nice error message if you > use those URLs you were trying before. > > > On Fri, Jan 25, 2013 at 9:52 AM, Hiram Chirino <[email protected] > >wrote: > > > It's going to send to a queue named nothing, as in the empty string, aka > > "". > > Which I think is a bad thing. I'm going to update the code to also make > > that be an error condition. > > > > > > On Fri, Jan 25, 2013 at 9:45 AM, Zhigang Wang <[email protected]> wrote: > > > >> Then maybe this should be fixed in the proton-c library. I will take a > >> look > >> and talk to them. Anyway, this behavior to strange to end user. > >> > >> Also, if I use amqp://zhigang1/, which queue it sends to? > >> > >> Thanks, > >> > >> Zhigang > >> > >> > >> On Fri, Jan 25, 2013 at 9:41 AM, Hiram Chirino <[email protected] > >> >wrote: > >> > >> > I think the difference is that your client is setting the address to > >> null > >> > in one case and in the other the address the empty string. Should > >> ActiveMQ > >> > treat null address as empty string address. Should empty string > address > >> > even be supported? That basically creates a queue who's name is the > >> empty > >> > string. Imagine the management nightmare of listing a queue who's > name > >> is > >> > the empty string. > >> > > >> > I'm leaning towards treating the empty string address as a error too. > >> > > >> > > >> > On Fri, Jan 25, 2013 at 9:36 AM, Zhigang Wang <[email protected]> > wrote: > >> > > >> > > Thanks for the tip. > >> > > > >> > > But see this test: > >> > > > >> > > [zhigang@zhigang proton]$ ./send.py -a amqp://zhigang1 hi > >> > > ERROR amqp:connection:framing-error connection aborted > >> > > [0x1141200:0] ERROR[-2] connection aborted > >> > > CONNECTION ERROR connection aborted > >> > > [zhigang@zhigang proton]$ ./send.py -a amqp://zhigang1/ hi > >> > > > >> > > It seems ActiveMQ currently can handle amqp://zhigang1/, but > >> > > not amqp://zhigang1 > >> > > > >> > > I think we should fix this. > >> > > > >> > > Thanks, > >> > > > >> > > Zhigang > >> > > > >> > > > >> > > On Fri, Jan 25, 2013 at 9:15 AM, Hiram Chirino < > >> [email protected] > >> > > >wrote: > >> > > > >> > > > That error occurred because the destination address was not set. > If > >> > you > >> > > > use a amqp url of > >> > > > 'amqp://zhigang1/myqueue' then it should work. I'll try to update > >> the > >> > > code > >> > > > to handle this error condition more gracefully and provide a > better > >> > error > >> > > > message. > >> > > > > >> > > > > >> > > > On Fri, Jan 25, 2013 at 9:01 AM, Zhigang Wang <[email protected]> > >> > wrote: > >> > > > > >> > > > > Paste it again (send.py): > >> > > > > > >> > > > > Run it: ./send.py hi > >> > > > > > >> > > > > > >> > > > > #!/usr/bin/env python > >> > > > > > >> > > > > import optparse > >> > > > > import proton > >> > > > > import sys > >> > > > > > >> > > > > > >> > > > > def main(): > >> > > > > parser = optparse.OptionParser('%prog [OPTS] MESSAGE') > >> > > > > parser.add_option('-a', '--address', > >> default='amqp://zhigang1', > >> > > > > help='adress: > >> > > > > [amqp[s]://][user[:password]@]domain[/[name]]') > >> > > > > parser.add_option('-s', '--subject', default='foo.bar', > >> > > > > help='subject') > >> > > > > opts, args = parser.parse_args() > >> > > > > if not args: > >> > > > > parser.print_help() > >> > > > > sys.exit(1) > >> > > > > > >> > > > > messenger = proton.Messenger() > >> > > > > messenger.start() > >> > > > > msg = proton.Message() > >> > > > > msg.address = opts.address > >> > > > > msg.subject = opts.subject > >> > > > > content = ' '.join(args) > >> > > > > msg.body = unicode(content) > >> > > > > messenger.put(msg) > >> > > > > messenger.send() > >> > > > > messenger.stop() > >> > > > > > >> > > > > > >> > > > > if __name__ == '__main__': > >> > > > > main() > >> > > > > > >> > > > > > >> > > > > On Fri, Jan 25, 2013 at 8:10 AM, Hiram Chirino < > >> > [email protected] > >> > > > > >wrote: > >> > > > > > >> > > > > > Hi Zhigang, > >> > > > > > > >> > > > > > Do you have the a script that can reproduce that error? > >> > > > > > > >> > > > > > > >> > > > > > On Thu, Jan 24, 2013 at 4:18 PM, Zhigang Wang < > [email protected] > >> > > >> > > > wrote: > >> > > > > > > >> > > > > > > It seem worse now for today's snapshot: > >> > > > > > > > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | > >> > > > > > > org.apache.activemq.transport.amqp.AmqpProtocolException: > >> Could > >> > not > >> > > > > > process > >> > > > > > > AMQP commands > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.transport.amqp.AmqpProtocolConverter.onFrame(AmqpProtocolConverter.java:245) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.transport.amqp.AmqpProtocolConverter.onAMQPData(AmqpProtocolConverter.java:151) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.transport.amqp.AmqpTransportFilter.onCommand(AmqpTransportFilter.java:94) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > >> > > > >> > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > java.lang.Thread.run(Unknown Source) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | Caused by: > >> > > > > > > java.lang.NullPointerException > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.command.ActiveMQDestination.createDestination(ActiveMQDestination.java:93) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.transport.amqp.AmqpProtocolConverter.createDestination(AmqpProtocolConverter.java:636) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.transport.amqp.AmqpProtocolConverter.onReceiverOpen(AmqpProtocolConverter.java:601) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.transport.amqp.AmqpProtocolConverter.onLinkOpen(AmqpProtocolConverter.java:380) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | at > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > org.apache.activemq.transport.amqp.AmqpProtocolConverter.onFrame(AmqpProtocolConverter.java:207) > >> > > > > > > INFO | jvm 1 | 2013/01/24 16:14:13 | ... 6 more > >> > > > > > > > >> > > > > > > Please have a look. > >> > > > > > > > >> > > > > > > Thanks, > >> > > > > > > > >> > > > > > > Zhigang > >> > > > > > > > >> > > > > > > > >> > > > > > > On Wed, Jan 23, 2013 at 12:40 PM, Zhigang Wang < > >> [email protected] > >> > > > >> > > > > wrote: > >> > > > > > > > >> > > > > > > > Thank you for your quick fix. I will test it later. > >> > > > > > > > > >> > > > > > > > Zhigang > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > On Wed, Jan 23, 2013 at 11:38 AM, Hiram Chirino < > >> > > > > > [email protected] > >> > > > > > > >wrote: > >> > > > > > > > > >> > > > > > > >> Yep. your script looks good. I found a problem /w how > the > >> > AMQP > >> > > > impl > >> > > > > > was > >> > > > > > > >> handling the socket disconnect. I've now committed a fix > >> for > >> > > > that. > >> > > > > > If > >> > > > > > > >> you > >> > > > > > > >> try a fresh build those messages should go away. Thanks > >> for > >> > the > >> > > > > > report! > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> On Wed, Jan 23, 2013 at 9:21 AM, Zhigang Wang < > >> > [email protected] > >> > > > > >> > > > > > wrote: > >> > > > > > > >> > >> > > > > > > >> > Here it is: > >> > > > > > > >> > > >> > > > > > > >> > #!/usr/bin/env python > >> > > > > > > >> > > >> > > > > > > >> > > >> > > > > > > >> -- > >> > > > > > > >> > >> > > > > > > >> ** > >> > > > > > > >> > >> > > > > > > >> *Hiram Chirino* > >> > > > > > > >> > >> > > > > > > >> *Engineering | Red Hat, Inc.* > >> > > > > > > >> > >> > > > > > > >> *[email protected] <[email protected]> | > >> fusesource.com | > >> > > > > > > redhat.com* > >> > > > > > > >> > >> > > > > > > >> *skype: hiramchirino | twitter: @hiramchirino< > >> > > > > > > >> http://twitter.com/hiramchirino> > >> > > > > > > >> * > >> > > > > > > >> > >> > > > > > > >> *blog: Hiram Chirino's Bit Mojo < > >> > http://hiramchirino.com/blog/ > >> > > >* > >> > > > > > > >> > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > -- > >> > > > > > > >> > > > > > ** > >> > > > > > > >> > > > > > *Hiram Chirino* > >> > > > > > > >> > > > > > *Engineering | Red Hat, Inc.* > >> > > > > > > >> > > > > > *[email protected] <[email protected]> | fusesource.com | > >> > > > redhat.com > >> > > > > * > >> > > > > > > >> > > > > > *skype: hiramchirino | twitter: @hiramchirino< > >> > > > > > http://twitter.com/hiramchirino> > >> > > > > > * > >> > > > > > > >> > > > > > *blog: Hiram Chirino's Bit Mojo < > http://hiramchirino.com/blog/ > >> >* > >> > > > > > > >> > > > > > >> > > > > >> > > > > >> > > > > >> > > > -- > >> > > > > >> > > > ** > >> > > > > >> > > > *Hiram Chirino* > >> > > > > >> > > > *Engineering | Red Hat, Inc.* > >> > > > > >> > > > *[email protected] <[email protected]> | fusesource.com | > >> > redhat.com > >> > > * > >> > > > > >> > > > *skype: hiramchirino | twitter: @hiramchirino< > >> > > > http://twitter.com/hiramchirino> > >> > > > * > >> > > > > >> > > > *blog: Hiram Chirino's Bit Mojo <http://hiramchirino.com/blog/>* > >> > > > > >> > > > >> > > >> > > >> > > >> > -- > >> > > >> > ** > >> > > >> > *Hiram Chirino* > >> > > >> > *Engineering | Red Hat, Inc.* > >> > > >> > *[email protected] <[email protected]> | fusesource.com | > >> redhat.com* > >> > > >> > *skype: hiramchirino | twitter: @hiramchirino< > >> > http://twitter.com/hiramchirino> > >> > * > >> > > >> > *blog: Hiram Chirino's Bit Mojo <http://hiramchirino.com/blog/>* > >> > > >> > > > > > > > > -- > > > > ** > > > > *Hiram Chirino* > > > > *Engineering | Red Hat, Inc.* > > > > *[email protected] <[email protected]> | fusesource.com | redhat.com > * > > > > *skype: hiramchirino | twitter: @hiramchirino< > http://twitter.com/hiramchirino> > > * > > > > *blog: Hiram Chirino's Bit Mojo <http://hiramchirino.com/blog/>* > > > > > > > -- > > ** > > *Hiram Chirino* > > *Engineering | Red Hat, Inc.* > > *[email protected] <[email protected]> | fusesource.com | redhat.com* > > *skype: hiramchirino | twitter: @hiramchirino< > http://twitter.com/hiramchirino> > * > > *blog: Hiram Chirino's Bit Mojo <http://hiramchirino.com/blog/>* >
