### Question:
ThresholdingVisitor extends AbstractCollectionSetVisitor { List<ThresholdGroup> getThresholdGroups() { return Collections.unmodifiableList(m_thresholdingSet.m_thresholdGroups); } protected  ThresholdingVisitor(CollectorThresholdingSet thresholdingSet); static ThresholdingVisitor create(int nodeId, String hostAddress, String serviceName, RrdRepository repo, ServiceParameters svcParams); boolean hasThresholds(); @Override void visitCollectionSet(CollectionSet set); void reload(); void reloadScheduledOutages(); boolean isNodeInOutage(); @Override void visitResource(CollectionResource resource); @Override void visitAttribute(CollectionAttribute attribute); @Override void completeResource(CollectionResource resource); Date getCollectionTimestamp(); @Override String toString();  }### Answer:
@Test public void testBug3390() throws Exception { initFactories("/threshd-configuration-bug3390.xml","/test-thresholds-bug3390.xml"); ThreshdConfigManager configManager = ThreshdConfigFactory.getInstance(); assertEquals(1, configManager.getConfiguration().getPackageCount()); org.opennms.netmgt.config.threshd.Package pkg = configManager.getConfiguration().getPackage(0); assertEquals(1, pkg.getServiceCount()); org.opennms.netmgt.config.threshd.Service svc = pkg.getService(0); assertEquals(5, svc.getParameterCount()); int count = 0; for (org.opennms.netmgt.config.threshd.Parameter parameter : svc.getParameter()) { if (parameter.getKey().equals("thresholding-group")) count++; } assertEquals(5, count); ThresholdingVisitor visitor = createVisitor(); assertEquals(5, visitor.getThresholdGroups().size()); }