Buggy code:
public class BaseSharedObject implements IIdentifiable , ISharedObject { protected static final int DESTROYREMOTE_CODE = 8001 ; protected static final int DESTROYSELFLOCAL_CODE = 8002 ; private ISharedObjectConfig config = null ; private List eventProcessors = new Vector ( ) ; public BaseSharedObject ( ) { } public final void init ( ISharedObjectConfig initData ) throws SharedObjectInitException { } protected void initialize ( ) throws SharedObjectInitException { } protected void creationCompleted ( ) { } public void dispose ( ID containerID ) { } public Object getAdapter ( Class adapter ) { } public void handleEvent ( Event event ) { } public boolean addEventProcessor ( IEventProcessor proc ) { } public boolean removeEventProcessor ( IEventProcessor proc ) { } public void clearEventProcessors ( ) { } protected void handleUnhandledEvent ( Event event ) { } protected void fireEventProcessors ( Event event ) { } public void handleEvents ( Event [ ] events ) { } public ID getID ( ) { } protected ISharedObjectConfig getConfig ( ) { } protected ISharedObjectContext getContext ( ) { } protected ID getHomeContainerID ( ) { } protected ID getLocalContainerID ( ) { } protected ID getGroupID ( ) { } protected boolean isConnected ( ) { } protected boolean isPrimary ( ) { } protected Map getProperties ( ) { } protected void destroySelf ( ) { } protected void destroySelfLocal ( ) { } protected void destroyRemote ( ID remoteID ) throws IOException { } protected void sendSharedObjectMsgTo ( ID toID , SharedObjectMsg msg ) throws IOException { } protected void sendSharedObjectMsgToPrimary ( SharedObjectMsg msg ) throws IOException { } protected void sendSharedObjectMsgToSelf ( SharedObjectMsg msg ) { } protected SharedObjectMsg getSharedObjectMsgFromEvent ( ISharedObjectMessageEvent event ) { } protected boolean handleSharedObjectMsgEvent ( ISharedObjectMessageEvent event ) { traceEntering ( "handleSharedObjectMsgEvent" , event ) ; boolean result = false ; if ( event instanceof ISharedObjectCreateResponseEvent ) result = handleSharedObjectCreateResponseEvent ( ( ( ISharedObjectCreateResponseEvent ) ( event ) ) ) ; else { SharedObjectMsg msg = getSharedObjectMsgFromEvent ( event ) ; if ( msg != null ) result = handleSharedObjectMsg ( msg ) ; } <START_BUG> traceExiting ( "handleSharedObjectMsgEvent" , new Boolean ( result ) ) ; <END_BUG> return result ; } protected boolean handleSharedObjectCreateResponseEvent ( ISharedObjectCreateResponseEvent createResponseEvent ) { } protected boolean handleSharedObjectMsg ( SharedObjectMsg msg ) { } protected ReplicaSharedObjectDescription getReplicaDescription ( ID receiver ) { } protected ReplicaSharedObjectDescription [ ] getReplicaDescriptions ( ID [ ] receivers ) { } protected ID [ ] getGroupMemberIDs ( ) { } protected void replicateToRemoteContainers ( ID [ ] remoteContainers ) { } protected void log ( int code , String method , Throwable e ) { } protected void log ( String method , Throwable e ) { } private String getSharedObjectAsString ( String suffix ) { } protected void traceEntering ( String methodName ) { } protected void traceEntering ( String methodName , Object [ ] params ) { } protected void traceEntering ( String methodName , Object param ) { } protected void traceExiting ( String methodName ) { } protected void traceExiting ( String methodName , Object result ) { } protected void traceCatching ( String method , Throwable t ) { } }

Fix:
traceExiting ( "handleSharedObjectMsgEvent" , ( result ? Boolean . TRUE : Boolean . FALSE ) ) ;