public void setItem(int node, int index)
{
NodeVector vec = getVector();
if(null != vec)
{
int oldNode = vec.elementAt(index);
if (oldNode != node && m_cache.useCount() > 1) {
/* If we are going to set the node at the given index
* to a different value, and the cache is shared
* (has a use count greater than 1)
* then make a copy of the cache and use it