You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Evan Kuhn (JIRA)" <ji...@apache.org> on 2010/07/26 19:45:51 UTC

[jira] Created: (AMQCPP-306) CMS 3.2.1 - Trouble reading empty strings from MapMessage fields

CMS 3.2.1 - Trouble reading empty strings from MapMessage fields
----------------------------------------------------------------

                 Key: AMQCPP-306
                 URL: https://issues.apache.org/activemq/browse/AMQCPP-306
             Project: ActiveMQ C++ Client
          Issue Type: Bug
          Components: Example Code
    Affects Versions: 3.2.1
         Environment: - CMS 3.2.1 on Windows XP
- ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
- Sending messages to a queue, using persistent messaging (via KahaDB) 
            Reporter: Evan Kuhn
            Assignee: Timothy Bish


Hi,

I just upgraded from ActiveMQ CMS 3.1.3 to 3.2.1, and I'm having some trouble reading
empty strings out of MapMessage fields after sending them through the broker. When I
try to do so, MapMessage::getString() throws the exception "Unsupported Type Conversion".

To explain, here's what I do:
- Open a connection with my ActiveMQ broker
- Create a MapMessage. Set two string fields, one empty, one non-empty:
  - request->setString("STR_FIELD_1", "");
  - request->setString("STR_FIELD_2", "asdf");
- Send the message to a queue
- Read the message from the queue
- Read the two string fields from the response:
  - response->getString("STR_FIELD_1", "");
  - response->getString("STR_FIELD_2", "asdf");
 
Reading the non-empty string field works fine. Reading the empty one, however,
results in the exception "Unsupported Type Conversion".

Any idea why this is happening? I did not experience this with CMS 3.1.3.

For reference, I'm using:
- CMS 3.2.1 on Windows XP
- ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
- Sending messages to a queue, using persistent messaging (via KahaDB)

I'll post a small C++ program I'm using to reproduce the problem.

Thank you very much for your help
-- Evan Kuhn 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQCPP-306) CMS 3.2.1 - Trouble reading empty strings from MapMessage fields

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQCPP-306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=60927#action_60927 ] 

Timothy Bish commented on AMQCPP-306:
-------------------------------------

You might want to give the v3.2.2 release candidate code a try and see if that fixes your problem, I can't seem to reproduce this on the 3.2.x or trunk code.

See the upcoming 3.2.2 release page here:
http://activemq.apache.org/cms/activemq-cpp-322-release.html

> CMS 3.2.1 - Trouble reading empty strings from MapMessage fields
> ----------------------------------------------------------------
>
>                 Key: AMQCPP-306
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-306
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Example Code
>    Affects Versions: 3.2.1
>         Environment: - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB) 
>            Reporter: Evan Kuhn
>            Assignee: Timothy Bish
>         Attachments: send_empty_string.cpp
>
>
> Hi,
> I just upgraded from ActiveMQ CMS 3.1.3 to 3.2.1, and I'm having some trouble reading
> empty strings out of MapMessage fields after sending them through the broker. When I
> try to do so, MapMessage::getString() throws the exception "Unsupported Type Conversion".
> To explain, here's what I do:
> - Open a connection with my ActiveMQ broker
> - Create a MapMessage. Set two string fields, one empty, one non-empty:
>   - request->setString("STR_FIELD_1", "");
>   - request->setString("STR_FIELD_2", "asdf");
> - Send the message to a queue
> - Read the message from the queue
> - Read the two string fields from the response:
>   - response->getString("STR_FIELD_1", "");
>   - response->getString("STR_FIELD_2", "asdf");
>  
> Reading the non-empty string field works fine. Reading the empty one, however,
> results in the exception "Unsupported Type Conversion".
> Any idea why this is happening? I did not experience this with CMS 3.1.3.
> For reference, I'm using:
> - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB)
> I'll post a small C++ program I'm using to reproduce the problem.
> Thank you very much for your help
> -- Evan Kuhn 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQCPP-306) CMS 3.2.1 - Trouble reading empty strings from MapMessage fields

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQCPP-306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=61672#action_61672 ] 

Timothy Bish commented on AMQCPP-306:
-------------------------------------


1. Not really sure what you mean in that first sentence.  If you are still seeing issues then have a look at the MapMessageTest case in test-integration and tell me what case I'm not testing for that I should add in order to see the error you are seeing.  

2. No, I only use Windows when I have to, so no DLL hell here.

3. See ConnectionMetaData class in CMS. 



> CMS 3.2.1 - Trouble reading empty strings from MapMessage fields
> ----------------------------------------------------------------
>
>                 Key: AMQCPP-306
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-306
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Example Code
>    Affects Versions: 3.2.1
>         Environment: - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB) 
>            Reporter: Evan Kuhn
>            Assignee: Timothy Bish
>             Fix For: 3.2.2
>
>         Attachments: send_empty_string.cpp
>
>
> Hi,
> I just upgraded from ActiveMQ CMS 3.1.3 to 3.2.1, and I'm having some trouble reading
> empty strings out of MapMessage fields after sending them through the broker. When I
> try to do so, MapMessage::getString() throws the exception "Unsupported Type Conversion".
> To explain, here's what I do:
> - Open a connection with my ActiveMQ broker
> - Create a MapMessage. Set two string fields, one empty, one non-empty:
>   - request->setString("STR_FIELD_1", "");
>   - request->setString("STR_FIELD_2", "asdf");
> - Send the message to a queue
> - Read the message from the queue
> - Read the two string fields from the response:
>   - response->getString("STR_FIELD_1", "");
>   - response->getString("STR_FIELD_2", "asdf");
>  
> Reading the non-empty string field works fine. Reading the empty one, however,
> results in the exception "Unsupported Type Conversion".
> Any idea why this is happening? I did not experience this with CMS 3.1.3.
> For reference, I'm using:
> - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB)
> I'll post a small C++ program I'm using to reproduce the problem.
> Thank you very much for your help
> -- Evan Kuhn 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (AMQCPP-306) CMS 3.2.1 - Trouble reading empty strings from MapMessage fields

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQCPP-306?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish closed AMQCPP-306.
-------------------------------

    Fix Version/s: 3.2.2
       Resolution: Cannot Reproduce

Think that the other fixes in 3.2.2 already solved this one, I can't reproduce it.

> CMS 3.2.1 - Trouble reading empty strings from MapMessage fields
> ----------------------------------------------------------------
>
>                 Key: AMQCPP-306
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-306
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Example Code
>    Affects Versions: 3.2.1
>         Environment: - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB) 
>            Reporter: Evan Kuhn
>            Assignee: Timothy Bish
>             Fix For: 3.2.2
>
>         Attachments: send_empty_string.cpp
>
>
> Hi,
> I just upgraded from ActiveMQ CMS 3.1.3 to 3.2.1, and I'm having some trouble reading
> empty strings out of MapMessage fields after sending them through the broker. When I
> try to do so, MapMessage::getString() throws the exception "Unsupported Type Conversion".
> To explain, here's what I do:
> - Open a connection with my ActiveMQ broker
> - Create a MapMessage. Set two string fields, one empty, one non-empty:
>   - request->setString("STR_FIELD_1", "");
>   - request->setString("STR_FIELD_2", "asdf");
> - Send the message to a queue
> - Read the message from the queue
> - Read the two string fields from the response:
>   - response->getString("STR_FIELD_1", "");
>   - response->getString("STR_FIELD_2", "asdf");
>  
> Reading the non-empty string field works fine. Reading the empty one, however,
> results in the exception "Unsupported Type Conversion".
> Any idea why this is happening? I did not experience this with CMS 3.1.3.
> For reference, I'm using:
> - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB)
> I'll post a small C++ program I'm using to reproduce the problem.
> Thank you very much for your help
> -- Evan Kuhn 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AMQCPP-306) CMS 3.2.1 - Trouble reading empty strings from MapMessage fields

Posted by "Evan Kuhn (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQCPP-306?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Evan Kuhn updated AMQCPP-306:
-----------------------------

    Attachment: send_empty_string.cpp

Attaching an example program that reproduces the exception thrown when reading an empty string from a MapMessage.

> CMS 3.2.1 - Trouble reading empty strings from MapMessage fields
> ----------------------------------------------------------------
>
>                 Key: AMQCPP-306
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-306
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Example Code
>    Affects Versions: 3.2.1
>         Environment: - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB) 
>            Reporter: Evan Kuhn
>            Assignee: Timothy Bish
>         Attachments: send_empty_string.cpp
>
>
> Hi,
> I just upgraded from ActiveMQ CMS 3.1.3 to 3.2.1, and I'm having some trouble reading
> empty strings out of MapMessage fields after sending them through the broker. When I
> try to do so, MapMessage::getString() throws the exception "Unsupported Type Conversion".
> To explain, here's what I do:
> - Open a connection with my ActiveMQ broker
> - Create a MapMessage. Set two string fields, one empty, one non-empty:
>   - request->setString("STR_FIELD_1", "");
>   - request->setString("STR_FIELD_2", "asdf");
> - Send the message to a queue
> - Read the message from the queue
> - Read the two string fields from the response:
>   - response->getString("STR_FIELD_1", "");
>   - response->getString("STR_FIELD_2", "asdf");
>  
> Reading the non-empty string field works fine. Reading the empty one, however,
> results in the exception "Unsupported Type Conversion".
> Any idea why this is happening? I did not experience this with CMS 3.1.3.
> For reference, I'm using:
> - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB)
> I'll post a small C++ program I'm using to reproduce the problem.
> Thank you very much for your help
> -- Evan Kuhn 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQCPP-306) CMS 3.2.1 - Trouble reading empty strings from MapMessage fields

Posted by "Evan Kuhn (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQCPP-306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=61671#action_61671 ] 

Evan Kuhn commented on AMQCPP-306:
----------------------------------

Hi Tim,

sorry, but I am still running into this issue with CMS 3.2.2.   After some cursory debugging, I noticed that in PrimitiveValueConverter::convert(), the PrimitiveValueNode's type is STRING_TYPE in 3.1.3 but NULL_TYPE when using 3.2.2.  I don't know the code so I'm not sure why.

My only thought is: could you perhaps have been picking up a different version of activemq-cpp.dll than you thought you were?  This happened to me multiple times while testing.  (By the way, a class or function for getting the version of the CMS library would be great for eliminating those types of errors).

Thanks again

> CMS 3.2.1 - Trouble reading empty strings from MapMessage fields
> ----------------------------------------------------------------
>
>                 Key: AMQCPP-306
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-306
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Example Code
>    Affects Versions: 3.2.1
>         Environment: - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB) 
>            Reporter: Evan Kuhn
>            Assignee: Timothy Bish
>             Fix For: 3.2.2
>
>         Attachments: send_empty_string.cpp
>
>
> Hi,
> I just upgraded from ActiveMQ CMS 3.1.3 to 3.2.1, and I'm having some trouble reading
> empty strings out of MapMessage fields after sending them through the broker. When I
> try to do so, MapMessage::getString() throws the exception "Unsupported Type Conversion".
> To explain, here's what I do:
> - Open a connection with my ActiveMQ broker
> - Create a MapMessage. Set two string fields, one empty, one non-empty:
>   - request->setString("STR_FIELD_1", "");
>   - request->setString("STR_FIELD_2", "asdf");
> - Send the message to a queue
> - Read the message from the queue
> - Read the two string fields from the response:
>   - response->getString("STR_FIELD_1", "");
>   - response->getString("STR_FIELD_2", "asdf");
>  
> Reading the non-empty string field works fine. Reading the empty one, however,
> results in the exception "Unsupported Type Conversion".
> Any idea why this is happening? I did not experience this with CMS 3.1.3.
> For reference, I'm using:
> - CMS 3.2.1 on Windows XP
> - ActiveMQ 5.3.0 and Java 1.6.0 on Red Hat Enterprise Linux Server release 5.3 (Tikanga)
> - Sending messages to a queue, using persistent messaging (via KahaDB)
> I'll post a small C++ program I'm using to reproduce the problem.
> Thank you very much for your help
> -- Evan Kuhn 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.