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:
parent
ebd3a5ab05
commit
ccc1549df4
5 changed files with 49 additions and 5 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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$
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue