1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-06 07:45:50 +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++) for (int i = 0; i < toDelete.getNestedSize(); i++)
{ {
DataElement subDelete = toDelete.get(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); deleteObjectHelper(toDelete, subDelete, depth);
} }
@ -4201,4 +4201,6 @@ public final class DataStore
{ {
referenceTag = tag; referenceTag = tag;
} }
} }

View file

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

View file

@ -18,6 +18,7 @@
package org.eclipse.dstore.internal.core.util; package org.eclipse.dstore.internal.core.util;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List;
import org.eclipse.dstore.core.model.DataElement; import org.eclipse.dstore.core.model.DataElement;
import org.eclipse.dstore.core.model.DataStore; import org.eclipse.dstore.core.model.DataStore;
@ -38,8 +39,8 @@ public class DataElementRemover extends Handler
// that are older than _expiryTime milliseconds are removed. // that are older than _expiryTime milliseconds are removed.
public static final int DEFAULT_EXPIRY_TIME = 600; // in seconds public static final int DEFAULT_EXPIRY_TIME = 600; // in seconds
public static final int DEFAULT_INTERVAL_TIME = 60; // in seconds public static final int DEFAULT_INTERVAL_TIME = 60; // in seconds
private int _intervalTime = DEFAULT_INTERVAL_TIME * 1000; private int _intervalTime = DEFAULT_INTERVAL_TIME * 100;
private int _expiryTime = DEFAULT_EXPIRY_TIME * 1000; 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 EXPIRY_TIME_PROPERTY_NAME = "SPIRIT_EXPIRY_TIME"; //$NON-NLS-1$
public static final String INTERVAL_TIME_PROPERTY_NAME = "SPIRIT_INTERVAL_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.memLog(toBeDisconnected.toString());
} }
_dataStore.getHashMap().remove(toBeDisconnected.getId()); unmap(toBeDisconnected);
} }
_dataStore.memLog("Disconnected " + disconnected + " DataElements."); //$NON-NLS-1$ //$NON-NLS-2$ _dataStore.memLog("Disconnected " + disconnected + " DataElements."); //$NON-NLS-1$ //$NON-NLS-2$
_dataStore.memLog("Elements created so far: " + numCreated); //$NON-NLS-1$ _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 protected class QueueItem
{ {
public DataElement dataElement; public DataElement dataElement;

View file

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

View file

@ -835,6 +835,23 @@ public class CommandMinerThread extends MinerThread
public void cleanupThread() 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(); refreshStatus();
/* /*
if (_isShell) if (_isShell)