So I tried the same tests and others; and the edit tools are currently working in Transaction.AUTO_COMMIT mode. Since that does not fire the same events as normal the screen is not being refreshed.
I did a code review of UDIGFeatureStore and made sure to get all the method signatures correct.
private void setTransactionInternal() {
if (!layer.isApplicable(ProjectBlackboardConstants.LAYER__EDIT_APPLICABILITY)) {
String message = "Attempted to open a transaction on a non-editable layer (Aborted)";
IllegalStateException illegalStateException = new IllegalStateException( message );
ProjectPlugin.log(message, illegalStateException);
throw illegalStateException;
}
// grab the current map transaction
EditManager editManager = (EditManager) layer.getMap().getEditManager();
Transaction transaction = editManager.getTransaction();
if (wrapped.getTransaction() == Transaction.AUTO_COMMIT) {
// change over from autocommit to transactional
wrapped.setTransaction(transaction);
}
else if (wrapped.getTransaction() != transaction){
// a transaction is already present? huh ...
String msg = "Layer transaction already set "+wrapped.getTransaction(); //$NON-NLS-1$
IllegalStateException illegalStateException = new IllegalStateException(msg);
ProjectPlugin.log(msg,illegalStateException);
throw illegalStateException;
}
}
- And then throwing a fit (well an IllegalStateException) rather than just logging the problem
I am going to stick some break points in and resume testing; after lunch.