Method connectionFactory.createConnection("foo", "bar") causes than Java client caches the credentials and overwrites default ones provided in connection URL. Thus subsequent calling of connectionFactory.createConnection() method (without a parameter) results in using the credentials "foo" / "bar" despite default ones should be used.
Steps to Reproduce:
1. Setup a broker with PLAIN authentication
2. Compile attached JUnit test
3. Run it (java org.junit.runner.JUnitCore authNoCredentialsInSecondConnection)
In try .. catch block, connectionFactory2.createConnection(); does not raise an exception that authentication failed. (and thus fail command below raises java.lang.AssertionError exception). In fact, connectionFactory2.createConnection(); uses "guest" / "guest" credentials set for connectionFactory1.
Authentication fails for connectionFactory2.createConnection(); as it uses default credentials from URL (what is "dummy" / "dummy").