[
https://issues.jboss.org/browse/JGRP-619?page=com.atlassian.jira.plugin.s...
]
Bela Ban commented on JGRP-619:
-------------------------------
To prevent the following code:
public byte[] getState() {
try {
return Util.objectToByteBuffer(stocks.clone());
}
catch(Exception ex) {
ex.printStackTrace();
return null;
}
}
, which returns null on a serialization exception, and thus doesn't reach the caller
of JChannel.getState(), we'd have to add an exception to the state callbacks ...
The above code could thus be shortened to:
public byte[] getState() throws Exception {
return Util.objectToByteBuffer(stocks.clone());
}
Change getState semantics
-------------------------
Key: JGRP-619
URL:
https://issues.jboss.org/browse/JGRP-619
Project: JGroups
Issue Type: Task
Affects Versions: 2.2.9, 2.3, 2.4, 2.5
Reporter: Vladimir Blagojevic
Assignee: Vladimir Blagojevic
Fix For: 3.0
Currently Channel's getState method returns boolean indicating only whether state was
successfully received by state receiver and not whether it was successfully processed at
relevant channel listener. This anomaly lead to convoluted application code that had to do
rather complicated lock synchronization and notification mechanism on the progress of
entire state transfer.
We have to simplify this process! State receiver should simply call blocking getState
and be notified in the form of Exception of anything that went wrong; be it that state
could not be received at all or that it was received but could not be installed at channel
listener.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira