private ManagedConnectionPool getManagedConnectionPool(Credential credential)
   {
      ManagedConnectionPool mcp = pools.get(credential);

      if (mcp == null)
      {
         synchronized (this)
         {
            mcp = pools.get(credential);

            if (mcp == null)
            {
               ManagedConnectionPool newMcp = createManagedConnectionPool(credential);
               mcp = pools.putIfAbsent(credential, newMcp);
               if (mcp == null)
               {
                  mcp = newMcp;

                  if (Tracer.isEnabled())
                     Tracer.createManagedConnectionPool(poolConfiguration.getId(), mcp);
               }
               else
               {
                  newMcp.shutdown();
               }
            }
         }
      }
      return mcp;
   }
private ManagedConnectionPool getManagedConnectionPool ( Credential credential ) { ManagedConnectionPool mcp = pools . get ( credential ) ; if ( mcp == null ) { synchronized ( this ) { mcp = pools . get ( credential ) ; if ( mcp == null ) { ManagedConnectionPool newMcp = createManagedConnectionPool ( credential ) ; mcp = pools . putIfAbsent ( credential , newMcp ) ; if ( mcp == null ) { mcp = newMcp ; if ( Tracer . isEnabled ( ) ) Tracer . createManagedConnectionPool ( poolConfiguration . getId ( ) , mcp ) ; } else { newMcp . shutdown ( ) ; } } } } return mcp ; }
Get from existing pools or create mcp w/ specified credential
It's used during prefill operation

@param credential credential used to match
@return