1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-03 14:25:37 +02:00

merges from IBM RSE

This commit is contained in:
David McKnight 2007-08-31 14:13:39 +00:00
parent ebd3a5ab05
commit ccc1549df4
5 changed files with 49 additions and 5 deletions

View file

@ -3753,7 +3753,7 @@ public final class DataStore
for (int i = 0; i < toDelete.getNestedSize(); i++)
{
DataElement subDelete = toDelete.get(i);
if (subDelete != null && subDelete.getDataStore() == this && !subDelete.isDeleted())
if (subDelete != null && subDelete.getDataStore() == this/* && !subDelete.isDeleted()*/) // on server, spirited are considered deleted
{
deleteObjectHelper(toDelete, subDelete, depth);
}
@ -4201,4 +4201,6 @@ public final class DataStore
{
referenceTag = tag;
}
}

View file

@ -78,9 +78,17 @@ public abstract class UpdateHandler extends Handler
DataElement child = (DataElement) deletedList.get(i);
if (child != null && child.isDeleted())
{
clean(child, depth - 1);
DataElement parent = child.getParent();
if (child.isSpirit()) DataElementRemover.addToRemovedCount();
DataElementRemover.addToRemovedCount();
if (child.isSpirit())
{
// officially delete this now
child.delete();
}
child.clear();
if (parent != null)
{
parent.removeNestedData(child);

View file

@ -18,6 +18,7 @@
package org.eclipse.dstore.internal.core.util;
import java.util.LinkedList;
import java.util.List;
import org.eclipse.dstore.core.model.DataElement;
import org.eclipse.dstore.core.model.DataStore;
@ -38,8 +39,8 @@ public class DataElementRemover extends Handler
// that are older than _expiryTime milliseconds are removed.
public static final int DEFAULT_EXPIRY_TIME = 600; // in seconds
public static final int DEFAULT_INTERVAL_TIME = 60; // in seconds
private int _intervalTime = DEFAULT_INTERVAL_TIME * 1000;
private int _expiryTime = DEFAULT_EXPIRY_TIME * 1000;
private int _intervalTime = DEFAULT_INTERVAL_TIME * 100;
private int _expiryTime = DEFAULT_EXPIRY_TIME * 100;
public static final String EXPIRY_TIME_PROPERTY_NAME = "SPIRIT_EXPIRY_TIME"; //$NON-NLS-1$
public static final String INTERVAL_TIME_PROPERTY_NAME = "SPIRIT_INTERVAL_TIME"; //$NON-NLS-1$
@ -149,7 +150,7 @@ public class DataElementRemover extends Handler
{
//_dataStore.memLog(toBeDisconnected.toString());
}
_dataStore.getHashMap().remove(toBeDisconnected.getId());
unmap(toBeDisconnected);
}
_dataStore.memLog("Disconnected " + disconnected + " DataElements."); //$NON-NLS-1$ //$NON-NLS-2$
_dataStore.memLog("Elements created so far: " + numCreated); //$NON-NLS-1$
@ -159,6 +160,21 @@ public class DataElementRemover extends Handler
}
}
private void unmap(DataElement element)
{
List children = element.getNestedData();
if (children != null)
{
for (int i = 0; i < children.size(); i++)
{
DataElement child = (DataElement)children.get(i);
unmap(child);
}
}
_dataStore.getHashMap().remove(element.getId());
}
protected class QueueItem
{
public DataElement dataElement;

View file

@ -203,6 +203,7 @@ public class CommandMiner extends Miner
// DataElement de = (DataElement) subject.dereference().get(1);
subject.dereference().get(1);
sendInputToCommand(input.getName(), getCommandStatus(subject));
status.setAttribute(DE.A_NAME, "done");
}
else if (name.equals("C_CANCEL")) //$NON-NLS-1$
{

View file

@ -835,6 +835,23 @@ public class CommandMinerThread extends MinerThread
public void cleanupThread()
{
// disconnecting all
_dataStore.disconnectObjects(_status);
// clean up the associated environment
List projectEnvReference = _subject.getAssociated("inhabits"); //$NON-NLS-1$
if (projectEnvReference != null)
{
DataElement env = (DataElement)projectEnvReference.get(0);
DataElement envParent = env.getParent();
_dataStore.deleteObject(envParent, env);
_dataStore.refresh(envParent);
}
_dataStore.disconnectObject(_subject); //bug 70420
refreshStatus();
/*
if (_isShell)