code: protected void throwConnectionPoolShortFreeException() throws SQLException {
          final LjtExceptionMessageBuilder br = new LjtExceptionMessageBuilder();
          br.addNotice("Connection pool did not have a free connection.");
          br.addItem("Pool Settings");
          br.addElement("maxPoolSize: " + maxPoolSize);
          br.addElement("minPoolSize: " + minPoolSize);
          br.addElement("maxWait: " + maxWait);
          br.addElement("timeout: " + timeout);
          br.addItem("Plain ActivePool");
          br.addElement("size: " + activePool.size());
          for (ConnectionWrapper wrapper : activePool) {
              br.addElement(wrapper.toTraceableView());
          }
          br.addItem("Transaction ActivePool");
          br.addElement("size: " + txActivePool.size());
          for (ConnectionWrapper wrapper : txActivePool.values()) {
              br.addElement(wrapper.toTraceableView());
          }
          final List<String> expList = extractActiveTransactionExpList();
          for (String exp : expList) {
              br.addElement(exp);
          }
          br.addItem("FreePool");
          br.addElement("size: " + freePool.size());
          for (int i = 0; i < freePool.size(); i++) {
              br.addElement(freePool.get(i));
          }
          final String msg = br.buildExceptionMessage();
          throw new ConnectionPoolShortFreeSQLException(msg);
      }
docs: ===================