I have uploaded a couple of patches under JIRA (388) in which I made a handful of refactors. If I did things correctly, they should all be correctness preserving, causing no net change in functionality, fixing compiler warnings, improving clarity and reducing LOC.
Namely, these are the refactors I performed: (Some) unused methods removed. (Some) unused variables removed. Extracting common code into methods. Replacing iterator usage with the enhanced for loop (for each). Added generic usage to internal methods/fields. (Internal use appeared to be non-controversial, and might ease future development.) Removed unused imports. After these refactors, which mostly address compiler warnings, I ran FindBugs and addressed a handful of its concerns as well. I confined my changes to outrigger/space packages. If anyone finds the changes of value, I can comb through other packages; if not, it's no big loss. A few other notes from my passthrough: 1) outrigger.MatchSetProxy has an unsynched critical region that can cause getSnapshot to fail in normal operation. 2) How much performance is gained via the special cases within outrigger.TxnState vs. a vanilla implementation? 3) Several of the "Constrainable" classes have the private method "getProxyTrustIterator" which is never used. Is this safe to remove? 4) Many of the server-side constants (many used in transaction handling) could be replaced with enumerations. Didn't do anything about that, but it's something to consider. 5) FindBugs marked several cases of fields that were only "usually" synchronized, but I didn't address any of these; they'll require some deeper consideration. Anyway, thought I'd toss this in, since the refactoring process helps with my own familiarization process. All the better if someone else can benefit. One last thing, I don't yet have the tests running. So a run through the tests before committing would be advisable. jamesG