[
https://jira.jboss.org/jira/browse/DNA-217?page=com.atlassian.jira.plugin...
]
Randall Hauch commented on DNA-217:
-----------------------------------
One important thing: the cancellation policy for the connectors should be to use
ProgressMonitor, and that InterruptedExceptions caught by the connector implementation
should NOT be propogated but should be treated like a cancellation. In fact, this
requires that any catching of the InterruptedException should also reset the interrupted
flag on the thread. This is where the change to ProgressMonitor would be beneficial,
since it simplifies what the connector implementation needs to do (just check
ProgressMonitor rather than that AND check Thread.isInterrupted(), and to properly clear
the interrupted state on the thread).
Connector SPI should have protocol for cancelling operations
------------------------------------------------------------
Key: DNA-217
URL:
https://jira.jboss.org/jira/browse/DNA-217
Project: DNA
Issue Type: Task
Components: Connectors, SPI
Affects Versions: 0.2
Reporter: Randall Hauch
Assignee: Randall Hauch
Fix For: 0.2
The Connector SPI needs a specific way for calls to the connector to be canceled.
Currently, most of the methods throw InterruptedException, which is a painful (and
confusing) way to handle it. This exception should be removed while the use of
ProgressMonitor be added.
Additionally, we may want to consider modifying the ProgressMonitor framework so that
it's possible for it to threat Thread.interrupt() as a cancellation (whereby it would
use that, in addition to the internal flag, to determine whether the monitor is canceled.
This may require an additional method whereby the code checking "isCanceled()"
acknowledges that it is canceling what it's doing (so that the ProgressMonitor can
call Thread.interrupted() to clear the interrupted state).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira