Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO] IProgressMonitor.setCanceled(true) doesn't cancel commit
[CDO] IProgressMonitor.setCanceled(true) doesn't cancel commit [message #849698] Thu, 19 April 2012 11:10
Esteban Dugueperoux is currently offline Esteban DugueperouxFriend
Messages: 472
Registered: July 2009
Senior Member
Hi,

I have tried to use IProgressMonitor with
CDOTransaction.commit(IProgressMonitor) to allow cancel long commit
operation, but it doesn't seems work. When I debug, I see that on cancel
a MonitorCanceledRequest is sent to the server and the
MonitorCanceledIndication receives the request with a correlationID and
delegates to SignalProtocol.handleMonitorCanceled() to cancel a
CommitTransactionIndication operation but the SignalProtocol doesn't
find the Signal corresponding to the correlationID then nothing is
canceled. I see that signals map field contains the
CommitTransactionIndication but with the opposite correlationID because
in SignalProtocol.handleBuffer() we store signals with the opposite
correlationID.

In addition, changing the MonitorCanceledIndication to use the opposite
correlationID to have the CommitTransactionIndication cancelled have not
the effect to throws a OperationCancelException but a CommitException,
in standard use a IProgressMonitor.setCanceled(true) must throws a
OperationCancelException to the thread which has launched the operation.

To help to reproduce the issue, I have attached a test case.

Best Regards.
Previous Topic:[CDO] IProgressMonitor.setCanceled(true) doesn't cancel commit
Next Topic:[CDO] IProgressMonitor.setCanceled(true) doesn't cancel commit
Goto Forum:
  


Current Time: Fri Mar 29 12:00:54 GMT 2024

Powered by FUDForum. Page generated in 0.03879 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top