Buggy code:
public class TPCommitEventProcessor implements IEventProcessor { public static final Trace trace = Trace . create ( "transactioneventprocessor" ) ; public static final int DEFAULT_TIMEOUT = 30000 ; ISharedObjectInternal sharedObject = null ; byte transactionState = ISharedObjectContainerTransaction . ACTIVE ; Object lock = new Object ( ) ; List participants = new Vector ( ) ; Map failed = new HashMap ( ) ; int timeout = TPCommitEventProcessor . DEFAULT_TIMEOUT ; int minFailedToAbort = 0 ; long identifier = 0 ; ID [ ] exceptions ; public TPCommitEventProcessor ( ISharedObjectInternal bse , int timeout , ID [ ] except ) { } public TPCommitEventProcessor ( ISharedObjectInternal bse , int timeout ) { } public TPCommitEventProcessor ( ISharedObjectInternal bse ) { } protected void trace ( String msg ) { } protected void traceStack ( String msg , Throwable t ) { } protected int getTimeout ( ) { } protected int getMinFailedToAbort ( ) { } protected boolean isPrimary ( ) { } protected ISharedObjectInternal getSharedObject ( ) { } protected ID getHomeID ( ) { } protected ID [ ] filter ( ID [ ] ids ) { } protected void addParticipants ( ID [ ] ids ) { } protected void removeParticipant ( ID id ) { } protected void addFailed ( ID remote , Throwable failure ) { } protected ISharedObjectContext getContext ( ) { } public boolean acceptEvent ( Event event ) { } public Event processEvent ( Event event ) { } protected void handleActivated ( ISharedObjectActivatedEvent event ) { } protected void replicateTo ( ID [ ] remotes ) { } protected void handlePrimaryActivated ( ISharedObjectActivatedEvent event ) { } protected void handleReplicaActivated ( ISharedObjectActivatedEvent event ) { } protected void handleJoined ( ISharedObjectContainerJoinedEvent event ) { } protected void handleCreateResponse ( ISharedObjectCreateResponseEvent event ) { } protected void handleDeparted ( ISharedObjectContainerDepartedEvent event ) { } protected void handleVotingCompletedCreateResponse ( ID fromID , Throwable e , long identifier ) { } protected void handlePostCommitFailure ( ID fromID , Throwable e , long identifier ) { } protected void sendCommit ( ) throws SharedObjectAddAbortException { } protected byte getTransactionState ( ) { } protected void setTransactionState ( byte state ) { } protected void waitToCommit ( ) throws SharedObjectAddAbortException { } protected void doTMAbort ( Throwable except ) throws SharedObjectAddAbortException { } protected void doTMCommit ( ) throws SharedObjectAddAbortException { } protected void localCommitted ( ) { } protected boolean isVotingCompleted ( ) throws SharedObjectAddAbortException { if ( ( failed . size ( ) ) > ( getMinFailedToAbort ( ) ) ) { trace ( ( ( ( "isVotingCompleted()<seq2seq4repair_space>aborting:<seq2seq4repair_space>failed<seq2seq4repair_space>><seq2seq4repair_space>" + ( getMinFailedToAbort ( ) ) ) + ":failed=" ) + ( failed ) ) ) ; <START_BUG> throw new SharedObjectAddAbortException ( "Abort<seq2seq4repair_space>received" , failed , getTimeout ( ) ) ; <END_BUG> } else if ( ( ( getTransactionState ( ) ) == ( ISharedObjectContainerTransaction . VOTING ) ) && ( ( participants . size ( ) ) == 0 ) ) { trace ( "isVotingCompleted()<seq2seq4repair_space>returning<seq2seq4repair_space>true" ) ; return true ; } trace ( "isVotingCompleted()<seq2seq4repair_space>returning<seq2seq4repair_space>false" ) ; return false ; } }

Fix:
throw new SharedObjectAddAbortException ( "Abort<seq2seq4repair_space>received" , participants , failed , getTimeout ( ) ) ;