/** * Tests fix for Bug#22730682 - ARRAYINDEXOUTOFBOUNDSEXCEPTION FROM CONNECTIONGROUPMANAGER.REMOVEHOST(). * * This bug was caused by an incorrect array handling when removing an host from a load balanced connection group, with the option to affect existing * connections. */ public void testBug22730682() throws Exception { Properties connProps = getPropertiesFromTestsuiteUrl(); String host = connProps.getProperty(NonRegisteringDriver.HOST_PROPERTY_KEY, "localhost"); String port = connProps.getProperty(NonRegisteringDriver.PORT_PROPERTY_KEY, "3306"); final String currentHost = host + ":" + port; final String dummyHost = "bug22730682:12345"; final Properties props = new Properties(); Connection testConn; final String lbConnGroup1 = "Bug22730682LB1"; props.setProperty("loadBalanceConnectionGroup", lbConnGroup1); testConn = getLoadBalancedConnection(3, dummyHost, props); assertEquals(2, ConnectionGroupManager.getActiveHostCount(lbConnGroup1)); assertTrue(ConnectionGroupManager.getActiveHostLists(lbConnGroup1).contains(dummyHost)); assertTrue(ConnectionGroupManager.getActiveHostLists(lbConnGroup1).contains(currentHost)); ConnectionGroupManager.removeHost(lbConnGroup1, dummyHost); assertEquals(1, ConnectionGroupManager.getActiveHostCount(lbConnGroup1)); assertTrue(ConnectionGroupManager.getActiveHostLists(lbConnGroup1).contains(currentHost)); testConn.close(); final String lbConnGroup2 = "Bug22730682LB2"; props.setProperty("loadBalanceConnectionGroup", lbConnGroup2); testConn = getLoadBalancedConnection(3, dummyHost, props); assertEquals(2, ConnectionGroupManager.getActiveHostCount(lbConnGroup2)); assertTrue(ConnectionGroupManager.getActiveHostLists(lbConnGroup2).contains(dummyHost)); assertTrue(ConnectionGroupManager.getActiveHostLists(lbConnGroup2).contains(currentHost)); ConnectionGroupManager.removeHost(lbConnGroup2, dummyHost, true); assertEquals(1, ConnectionGroupManager.getActiveHostCount(lbConnGroup2)); assertTrue(ConnectionGroupManager.getActiveHostLists(lbConnGroup2).contains(currentHost)); testConn.close(); }
public void addHost(String group, String host, boolean forExisting) { try { ConnectionGroupManager.addHost(group, host, forExisting); } catch (Exception e) { e.printStackTrace(); } }
public void addHost(String group, String host, boolean forExisting) { try { ConnectionGroupManager.addHost(group, host, forExisting); } catch (Exception e){ e.printStackTrace(); } }
public int getActiveHostCount(String group) { return ConnectionGroupManager.getActiveHostCount(group); }
public long getActiveLogicalConnectionCount(String group) { return ConnectionGroupManager.getActiveLogicalConnectionCount(group); }
public long getActivePhysicalConnectionCount(String group) { return ConnectionGroupManager.getActivePhysicalConnectionCount(group); }
public String getActiveHostsList(String group) { return ConnectionGroupManager.getActiveHostLists(group); }
public String getRegisteredConnectionGroups() { return ConnectionGroupManager.getRegisteredConnectionGroups(); }