| Craig Russell (JIRA) 2007-06-12, 7:11 pm |
| JDOImplHelper should catch exceptions in nonBinaryCompatibleGet and nonBinaryCompatibleIs
-----------------------------------------------------------------------------------------
Key: JDO-499
URL: https://issues.apache.org/jira/browse/JDO-499
Project: JDO
Issue Type: Bug
Components: api2, api2-legacy
Affects Versions: JDO 2 final
Reporter: Craig Russell
Assignee: Craig Russell
Priority: Minor
Fix For: JDO 2 maintenance release 1
The code to perform non-binary-compatible state tests should catch and ignore exceptions thrown from registered implementations. This would protect users from errant implementations.
For example, the following returns the appropriate result if an implementation (not the implementation responsible for the instance) throws an exception.
/**
* Return an object associated with a non-binary-compatible instance.
* Delegate to all registered StateInterrogation instances until
* one of them handles the call (returns a non-null answer).
* The caller provides the stateless "method object" that does
* the actual call to the StateInterrogation instance.
* @param pc the instance whose associated object is needed
* @param sibr the method object that delegates to the
* non-binary-compatible implementation
* @return the associated object or null if the implementation does not
* manage the class of the instance
*/
public Object nonBinaryCompatibleGet(Object pc,
StateInterrogationObjectReturn sibr) {
Iterator sit = getStateInterrogationIterator();
while (sit.hasNext()) {
try {
StateInterrogation si = (StateInterrogation)sit.next();
Object result = sibr.get(pc, si);
if (result != null) return result;
} catch (Throwable t) {
// ignore exceptions thrown by non-binary-compatible impls
}
}
return null;
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
|