public synchronized BranchCheckoutSource[] getElements() { if (subBranches == null) { subBranches = new ArrayList<BranchCheckoutSource>(); CDOSessionConfiguration config = getRepositoryLocation().createSessionConfiguration(); CDOSession session = config.openSession(); if (session.getRepositoryInfo().isSupportingBranches()) { try { CDOBranch branch = session.getBranchManager().getBranch(getBranchPath()); CDOBranch[] branches = branch.getBranches(); for (CDOBranch subBranch : branches) { subBranches.add(new BranchCheckoutSource(this, subBranch.getName())); } } finally { IOUtil.close(session); } } } return subBranches.toArray(new BranchCheckoutSource[subBranches.size()]); }