You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Brad Hoekstra (JIRA)" <ji...@apache.org> on 2013/01/31 14:57:12 UTC

[jira] [Created] (QPID-4556) QueueOptions::setSizePolicy() can cause exception

Brad Hoekstra created QPID-4556:
-----------------------------------

             Summary: QueueOptions::setSizePolicy() can cause exception
                 Key: QPID-4556
                 URL: https://issues.apache.org/jira/browse/QPID-4556
             Project: Qpid
          Issue Type: Bug
          Components: C++ Broker, C++ Client
    Affects Versions: 0.20
         Environment: Linux x86_64
            Reporter: Brad Hoekstra


Calling QueueOptions::setSizePolicy() with maxSize > 2GB causes an exception in the C++ broken, which then generates an exception in the C++ client library.

This appears to be because the value is set as an int32 in the FieldTable. The fix appears to be fairly simple:

Index: 0.20/cpp/src/qpid/client/QueueOptions.cpp
===================================================================
--- 0.20/cpp/src/qpid/client/QueueOptions.cpp	(revision 27169)
+++ 0.20/cpp/src/qpid/client/QueueOptions.cpp	(revision 27170)
@@ -49,8 +49,8 @@
 	
 void QueueOptions::setSizePolicy(QueueSizePolicy sp, uint64_t maxSize, uint32_t maxCount)
 {
-    if (maxCount) setInt(strMaxCountKey, maxCount);
-    if (maxSize) setInt(strMaxSizeKey, maxSize);
+    if (maxCount) setUInt64(strMaxCountKey, maxCount);
+    if (maxSize) setUInt64(strMaxSizeKey, maxSize);
     if (maxSize || maxCount){
         switch (sp)
         {


--
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