private void setUpdatePolicy(String policyId) { IVMUpdatePolicy[] policies = fVMProvider.getAvailableUpdatePolicies(); IVMUpdatePolicy newPolicy = null; for (IVMUpdatePolicy policy : policies) { if (policyId.equals(policy.getID())) { newPolicy = policy; break; } } if (newPolicy != null) { fVMProvider.setActiveUpdatePolicy(newPolicy); } else { throw new RuntimeException("Update policy " + policyId + " not available"); } fViewerListener.reset(); fViewerListener.addUpdates( TreePath.EMPTY, fModel.getRootElement(), -1, ALL_UPDATES_COMPLETE | PROPERTY_UPDATES); fVMListener.setFailOnRedundantUpdates(false); while (!fViewerListener.isFinished(ALL_UPDATES_COMPLETE | PROPERTY_UPDATES)) if (!fDisplay.readAndDispatch()) fDisplay.sleep(); fVMListener.setFailOnRedundantUpdates(true); }