private boolean IremoveResourceNode(String resource_id)
    {
        boolean nodeRemoved = false;
        OrientGraph graph = null;
        try
        {
            //String pathname = getPathname(region,agent,plugin);
            String node_id = getResourceNodeId(resource_id);
            if(node_id == null)
            {
                System.out.println("Tried to remove missing node : resource_id=" + resource_id);
                nodeRemoved = true;
            }
            else
            {
                //remove iNodes First
                List<String> inodes = getresourceNodeList(resource_id,null);
                if(inodes != null)
                {
                    for(String inode_id : inodes)
                    {
                        removeINode(resource_id,inode_id);
                    }
                }
                inodes = getresourceNodeList(resource_id,null);
                if(inodes == null)
                {
                    graph = factory.getTx();
                    Vertex resourceNode = graph.getVertex(node_id);
                    graph.removeVertex(resourceNode);
                    graph.commit();
                    nodeRemoved = true;
                }

            }
        }
        catch(com.orientechnologies.orient.core.exception.OConcurrentModificationException exc)
        {
            //eat exception
        }
        catch(Exception ex)
        {
            long threadId = Thread.currentThread().getId();
            System.out.println("GraphDBEngine : IremoveResourceNode :  thread_id: " + threadId + " Error " + ex.toString());
        }
        finally
        {
            if(graph != null)
            {
                graph.shutdown();
            }
        }
        return nodeRemoved;

    }