@Override
  public List<FSQueue> getChildQueues() {
    readLock.lock();
    try {
      return ImmutableList.copyOf(childQueues);
    } finally {
      readLock.unlock();
    }
  }
@Test
  public void testConcurrentChangeToGetChildQueue() {

    queueManager.getLeafQueue("parent.child", true);
    queueManager.getLeafQueue("parent.child2", true);
    FSParentQueue test = queueManager.getParentQueue("parent", false);
    assertEquals(2, test.getChildQueues().size());

    boolean first = true;
    int childQueuesFound = 0;
    for (FSQueue childQueue:test.getChildQueues()) {
      if (first) {
        first = false;
        queueManager.getLeafQueue("parent.child3", true);
      }
      childQueuesFound++;
    }

    assertEquals(2, childQueuesFound);
    assertEquals(3, test.getChildQueues().size());
  }