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

[email protected] commented on QPID-3193:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3239/#review3964
-----------------------------------------------------------


Oops. Get rid of the braces in THROW_IF_DISPOSED. Effectively the lock goes out 
of scope before the object protected by the lock is referenced.

- Chug


On 2011-12-16 21:04:58, Chug Rolke wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/3239/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-12-16 21:04:58)
bq.  
bq.  
bq.  Review request for qpid, Andrew Stitcher, Gordon Sim, Ted Ross, Steve 
Huston, and Cliff Jansen.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  QPID-3193 .NET Binding - proper handling of disposed objects.
bq.  
bq.  
bq.  This addresses bug QPID-3193.
bq.      https://issues.apache.org/jira/browse/QPID-3193
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    trunk/qpid/cpp/bindings/qpid/dotnet/src/BindingCommon.h PRE-CREATION 
bq.    trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.h 1215245 
bq.    trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp 1215245 
bq.    
trunk/qpid/cpp/bindings/qpid/dotnet/src/msvc10/org.apache.qpid.messaging.vcxproj
 1215245 
bq.    
trunk/qpid/cpp/bindings/qpid/dotnet/src/msvc9/org.apache.qpid.messaging.vcproj 
1215245 
bq.  
bq.  Diff: https://reviews.apache.org/r/3239/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Chug
bq.  
bq.


                
> .NET Binding for Messaging classes need a test to check that binding is still 
> in effect
> ---------------------------------------------------------------------------------------
>
>                 Key: QPID-3193
>                 URL: https://issues.apache.org/jira/browse/QPID-3193
>             Project: Qpid
>          Issue Type: Improvement
>    Affects Versions: 0.11
>            Reporter: Chuck Rolke
>            Assignee: Chuck Rolke
>         Attachments: QPID-3694_lock-and-throw-preview.patch
>
>
> The .NET Binding for Messaging could be made more user-friendly with the 
> addition of a property that indicates whether or not the underlying binding 
> is still available. A C# coder may innocently write:
> (1)  Message mA = new Message("a");
> (2)  Message mB = mA;
>      ...
> (N)  mB.Dispose();
> After disposing of message mB then message mA is clobbered. 'Message' is a 
> 'ref class' type and messages mA and mB refer to the same object on managed 
> heap. When message mB is disposed then the bound C++ Messaging object is 
> deleted [1]. Any reference to the bound message part of mA will result in an 
> illegal memory reference (to 0) and a process exit. The .NET runtime can't 
> catch this fault.
> The obvious answer is not to do that. If the second line of code was 'Message 
> mB = new Message(mA)' then mA and mB would have been completely separate and 
> disposing of either would have no effect on the other.
> Another answer is to have the binding check for a null binding reference on 
> each and every access and then to throw if the underlying binding is gone. 
> This is not very appealing from a performance standpoint.
> As a compromise I would like to add a property isBound to each class. Users 
> then have a fighting chance to check that the binding is still in effect and 
> that function calls on the object shouldn't blow up. This property would be 
> useful in Assert statements or in debugging.
> [1] If anyone knows how to have my binding library intercept example code 
> line (2) and create reference counts, please let me know.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to