Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2006, Red Hat Middleware LLC, and individual contributors 
   * as indicated by the @author tags. 
   * See the copyright.txt in the distribution for a
   * full listing of individual contributors. 
   * This copyrighted material is made available to anyone wishing to use,
   * modify, copy, or redistribute it subject to the terms and conditions
   * of the GNU Lesser General Public License, v. 2.1.
  * This program is distributed in the hope that it will be useful, but WITHOUT A 
  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  * You should have received a copy of the GNU Lesser General Public License,
  * v.2.1 along with this distribution; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
  * MA  02110-1301, USA.
  * 
  * (C) 2005-2006,
  * @author JBoss Inc.
  */
 /*
  * Copyright (C) 1998, 1999, 2000, 2001,
  *
  * Arjuna Solutions Limited,
  * Newcastle upon Tyne,
  * Tyne and Wear,
  * UK.  
  *
  * $Id: DisposeRecord.java 2342 2006-03-30 13:06:17Z  $
  */
 
 /*
  *
  * Dipose Record Class.
  *
  */
 
 package com.arjuna.ats.internal.arjuna.abstractrecords;
 
 
 
 public class DisposeRecord extends CadaverRecord
 {
 
     public DisposeRecord (ParticipantStore participantStoreStateManager sm)
     {
 	super(nullparticipantStoresm);
 	
 	this. = participantStore;
 	
 	if (sm != null)
 	{
 	     = sm.get_uid();
 	     = sm.type();
 	}
 	else
 	{
 	     = Uid.nullUid();
 	     = null;
 	}
 
 	if (..isTraceEnabled()) {
         ..trace("DisposeRecord::DisposeRecord(" + participantStore + ", " +  + ")");
     }
     }
 
     public boolean propagateOnAbort ()
     {
 	return false;
     }
 
     public int typeIs ()
     {
 	return .;
     }
     
     public int nestedAbort ()
     {
 	if (..isTraceEnabled()) {
         ..trace("DisposeRecord::nestedAbort() for " + order());
     }
 	
     }
     
     public int nestedCommit ()
     {
	if (..isTraceEnabled()) {
        ..trace("DisposeRecord::nestedCommit() for " + order());
    }
    }
    
    public int nestedPrepare ()
    {
	if (..isTraceEnabled()) {
        ..trace("DisposeRecord::nestedPrepare() for " + order());
    }
	if (( != null) && (.notEquals(Uid.nullUid())))
	    return .;
	else
    }
    
    public int topLevelAbort ()
    {
	if (..isTraceEnabled()) {
        ..trace("DisposeRecord::topLevelAbort() for " + order());
    }
    }
    
    
At topLevelCommit we remove the state from the object participantStore.
    
    public int topLevelCommit ()
    {
	if (..isTraceEnabled()) {
        ..trace("DisposeRecord::topLevelCommit() for " + order());
    }
	if (( != null) && (.notEquals(Uid.nullUid())))
	{
	    try
	    {
		{
		    // only valid if not doing recovery
		    if (super. != null)
		    {
		        StateManagerFriend.destroyed(super.);
			//super.objectAddr.destroyed();
		    }
		    
		    return .;
		}
	    }
	    catch (final Throwable e) {
            ..warn_DisposeRecord_5(e);
        }
	}
    }
    public int topLevelPrepare ()
    {
        if (..isTraceEnabled()) {
            ..trace("DisposeRecord::topLevelPrepare() for " + order());
        }
        if (( != null) && (.notEquals(Uid.nullUid())))
        {
            // force PersistenceRecord.save_state to ignore topLevelState:
            shadowForced();
            return .;
        }
        else
            return .;
    }
    
    public void print (PrintWriter strm)
    {
	strm.println("Dispose for:");
	super.print(strm);
    }
    
    public boolean doSave ()
    {
	return true;
    }
    public boolean save_state (OutputObjectState osint ot)
    {
        boolean res = true;
        if (( != null) && (.notEquals(Uid.nullUid())))
        {
            try
            {
                UidHelper.packInto(os);
                os.packString();
                res = (res && super.save_state(osot));
            }
            catch (IOException e) {
                ..warn_DisposeRecord_2();
                res = false;
            }
        }
        else {
            ..warn_DisposeRecord_3();
            res = false;
        }
        return res;
    }
    public boolean restore_state (InputObjectState osint ot)
    {
        boolean res = true;
        try
        {
             = UidHelper.unpackFrom(os);
             = os.unpackString();
            res = (res && super.restore_state(osot));
        }
        catch (final Exception e)
        {
            res = false;
        }
        return res;
    }
    
    public String type ()
    {
	return "/StateManager/AbstractRecord/RecoveryRecord/PersistenceRecord/CadaverRecord/DisposeRecord";
    }
    
    public boolean shouldAdd (AbstractRecord a)
    {
	return false;
    }
    
    public boolean shouldMerge (AbstractRecord a)
    {
	return false;
    }
    
    public boolean shouldReplace (AbstractRecord a)
    {
	return false;
    }
    
    public boolean shouldAlter (AbstractRecord a)
    {
	return false;
    }
    public DisposeRecord ()
    {
	super();
	 = new Uid(Uid.nullUid());
	 = null;
    }
    
    private Uid         objectUid;
    private String      typeName;
New to GrepCode? Check out our FAQ X