initialScan = true;
}
try
{
InputObjectState uids = new InputObjectState();
// take a snapshot of the log
if (_objectStore.allObjUids(_typeName, uids))
{
Uid theUid = new Uid(Uid.nullUid());
boolean endOfUids = false;
while (!endOfUids)
{
// extract a uid
theUid.unpack(uids);
if (theUid.equals(Uid.nullUid()))
endOfUids = true;
else
{
Uid newUid = new Uid(theUid);
if (initialScan)
_scanM.put(newUid, newUid);
else
{
if (!_scanM.contains(newUid))
{
if (_scanN == null)
_scanN = new Hashtable();
_scanN.put(newUid, newUid);
}
else
// log is present in this iteration, so move it
{
if (tsLogger.arjLoggerI18N.isInfoEnabled())
tsLogger.arjLoggerI18N
.info(
"com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner_4",
new Object[]
{ newUid });
try
{
InputObjectState state = _objectStore
.read_committed(newUid, _typeName);
if (state != null) // just in case recovery
// kicked-in
{