You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2013/07/12 21:15:48 UTC

[jira] [Commented] (QPID-4834) Ruby client examples incorrectly handles '--connection-options' option

    [ https://issues.apache.org/jira/browse/QPID-4834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13707271#comment-13707271 ] 

ASF subversion and git services commented on QPID-4834:
-------------------------------------------------------

Commit 1502660 from [~mcpierce]
[ https://svn.apache.org/r1502660 ]

QPID-4834: Fixed how Ruby spout example processes connection options

The argument comes in as a string. It is now processed, the keys and
values extracted and put into a proper Hash that is then passed to the
Qpid::Messaging::Connection object.
                
> Ruby client examples incorrectly handles '--connection-options' option
> ----------------------------------------------------------------------
>
>                 Key: QPID-4834
>                 URL: https://issues.apache.org/jira/browse/QPID-4834
>             Project: Qpid
>          Issue Type: Bug
>          Components: Ruby Client
>    Affects Versions: 0.20
>            Reporter: Petr Matousek
>            Assignee: Darryl L. Pierce
>            Priority: Minor
>
> The 'connection-options' option is incorrectly handled as a string in the example clients, should be handled as a list.
> # ruby spout.rb --connection-options "{reconnect:True}" "q;{create:always}"
> 2013-05-10 04:49:01 [Client] warning Exception received from broker:
> not-found: not-found: Queue not found: {reconnect:True} (/builddir/build/BUILD/qpid-0.22/cpp/src/qpid/broker/SessionAdapter.cpp:693)
> [caused by 2 \x08:\x01]
> ./../lib/qpid_messaging/session.rb:63:in `createSender': Queue
> {reconnect:True} does not exist (MessagingError)
>     from ./../lib/qpid_messaging/session.rb:63:in `create_sender'
>     from spout.rb:106
> 2013-05-10 04:49:01 [Client] warning Connection
> [127.0.0.1:56869-127.0.0.1:5672] closed
> The 'nil' in the option parser looked weird to me, so I did the
> following change to make the option work:
> # vim spout.rb
> -  opts.on(nil, "--connection-options VALUE",
> +  opts.on("--connection-options VALUE",
> Following change results in another error, the connection's
> convert_options method expects list not a string:
> # ruby spout.rb --connection-options "{reconnect:True}" "q;{create:always}"
> ./../lib/qpid_messaging/connection.rb:149:in `convert_options':
> undefined method `each_pair' for "{reconnect:True}":String
> (NoMethodError)
>     from ./../lib/qpid_messaging/connection.rb:67:in `initialize'
>     from spout.rb:103:in `new'
>     from spout.rb:103
> I used the following code to fix the issue, which was sufficient for
> my needs (there would be probably a better solution, I guess):
> -    options[:connection_options] = conopts
> +    options[:connection_options] = {}
> +    conopts = conopts.gsub /^\{(.*)\}$/, '\1'
> +    conopts.split(",").each do |x|
> +       key,val = x.split(':')
> +       options[:connection_options][key]= val
> Packages used:
> ruby gem: qpid_messaging-0.20.2
> also valid for examples on trunk

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org