#vulnerable code 
                             @Test
	public void testCreatePool() throws SQLException, ClassNotFoundException {
	
		BoneCPConfig mockConfig = createNiceMock(BoneCPConfig.class);
		expect(mockConfig.getPartitionCount()).andReturn(1).anyTimes();
		expect(mockConfig.getMaxConnectionsPerPartition()).andReturn(1).anyTimes();
		expect(mockConfig.getMinConnectionsPerPartition()).andReturn(1).anyTimes();
		expect(mockConfig.getIdleConnectionTestPeriodInMinutes()).andReturn(100L).anyTimes();
		expect(mockConfig.getUsername()).andReturn("somethingbad").anyTimes();
		expect(mockConfig.getPassword()).andReturn("somethingbad").anyTimes();
		expect(mockConfig.getJdbcUrl()).andReturn("invalid").anyTimes();
//		expect(mockConfig.getReleaseHelperThreads()).andReturn(1).once().andReturn(0).anyTimes();
		replay(mockConfig);
		try{
			testClass.createPool(mockConfig);
			fail("Should throw an exception");
		} catch (RuntimeException e){
			// do nothing
		}
		verify(mockConfig);
		
		reset(mockConfig);
		
		Class.forName(DRIVER);
		mockConfig = createNiceMock(BoneCPConfig.class);
		expect(mockConfig.getPartitionCount()).andReturn(1).anyTimes();
		expect(mockConfig.getMaxConnectionsPerPartition()).andReturn(1).anyTimes();
		expect(mockConfig.getMinConnectionsPerPartition()).andReturn(1).anyTimes();
		expect(mockConfig.getIdleConnectionTestPeriodInMinutes()).andReturn(100L).anyTimes();
		expect(mockConfig.getUsername()).andReturn(USERNAME).anyTimes();
		expect(mockConfig.getPassword()).andReturn(PASSWORD).anyTimes();
		expect(mockConfig.getJdbcUrl()).andReturn(URL).anyTimes();
		replay(mockConfig);
		
		try{
			testClass.createPool(mockConfig);
		} catch (RuntimeException e){
			fail("Should pass");
		}
		verify(mockConfig);
		
		
	} 
                            #location 15 
                            #vulnerability type RESOURCE_LEAK
#fixed code
                             @Test
	public void testCreatePool() throws SQLException, ClassNotFoundException, CloneNotSupportedException {
	
		BoneCPConfig mockConfig = createNiceMock(BoneCPConfig.class);
		expect(mockConfig.getPartitionCount()).andReturn(1).anyTimes();
		expect(mockConfig.getMaxConnectionsPerPartition()).andReturn(1).anyTimes();
		expect(mockConfig.getMinConnectionsPerPartition()).andReturn(1).anyTimes();
		expect(mockConfig.getIdleConnectionTestPeriodInMinutes()).andReturn(100L).anyTimes();
		expect(mockConfig.getUsername()).andReturn("somethingbad").anyTimes();
		expect(mockConfig.getPassword()).andReturn("somethingbad").anyTimes();
		expect(mockConfig.getJdbcUrl()).andReturn("invalid").anyTimes();
//		expect(mockConfig.getReleaseHelperThreads()).andReturn(1).once().andReturn(0).anyTimes();
		replay(mockConfig);
		try{
			testClass.createPool(mockConfig);
			fail("Should throw an exception");
		} catch (RuntimeException e){
			// do nothing
		}
		verify(mockConfig);
		
		reset(mockConfig);
		
		Class.forName(DRIVER);
		mockConfig = createNiceMock(BoneCPConfig.class);
		expect(mockConfig.getPartitionCount()).andReturn(1).anyTimes();
		expect(mockConfig.getMaxConnectionsPerPartition()).andReturn(1).anyTimes();
		expect(mockConfig.getMinConnectionsPerPartition()).andReturn(1).anyTimes();
		expect(mockConfig.getIdleConnectionTestPeriodInMinutes()).andReturn(100L).anyTimes();
		expect(mockConfig.getUsername()).andReturn(USERNAME).anyTimes();
		expect(mockConfig.getPassword()).andReturn(PASSWORD).anyTimes();
		expect(mockConfig.getJdbcUrl()).andReturn(URL).anyTimes();
		expect(mockConfig.isLazyInit()).andReturn(false).anyTimes();
		expect(mockConfig.clone()).andReturn(mockConfig).anyTimes();
		 
		replay(mockConfig);
		
		try{
			testClass.createPool(mockConfig);
		} catch (RuntimeException e){
			fail("Should pass: ");
		}
		verify(mockConfig);
		
		
	}