Buggy code:
@ Getter private static OkHttpClient httpClient ; private List < String > serverIds ; private AtomicInteger nagAboutServers = new AtomicInteger ( ) ; private ScheduledTask integrityCheck ; private ScheduledTask heartbeatTask ; private boolean usingLua ; private Script serverToPlayersScript ; public static RedisBungeeAPI getApi ( ) { } static RedisBungee . PubSubListener getPubSubListener ( ) { } final List < String > getServerIds ( ) { } final List < String > getCurrentServerIds ( ) { } final Multimap < String , UUID > serversToPlayers ( ) { } final int getCount ( ) { } final Set < UUID > getLocalPlayers ( ) { } final Collection < String > getLocalPlayersAsUuidStrings ( ) { } final Set < UUID > getPlayers ( ) { } final Set < UUID > getPlayersOnServer ( @ NonNull String server ) { } final void sendProxyCommand ( @ NonNull String proxyId , @ NonNull String command ) { } final void sendChannelMessage ( String channel , String message ) { } @ Override public void onEnable ( ) { } @ Override public void onDisable ( ) { } private void loadConfig ( ) throws IOException , JedisConnectionException { if ( ! ( getDataFolder ( ) . exists ( ) ) ) { getDataFolder ( ) . mkdir ( ) ; } File file = new File ( getDataFolder ( ) , "config.yml" ) ; if ( ! ( file . exists ( ) ) ) { file . createNewFile ( ) ; try ( InputStream in = getResourceAsStream ( "example_config.yml" ) ; OutputStream out = new FileOutputStream ( file ) ) { ByteStreams . copy ( in , out ) ; } } final Configuration configuration = ConfigurationProvider . getProvider ( YamlConfiguration . class ) . load ( file ) ; final String redisServer = configuration . getString ( "redis-server" , "localhost" ) ; final int redisPort = configuration . getInt ( "redis-port" , 6379 ) ; String redisPassword = configuration . getString ( "redis-password" ) ; String serverId = configuration . getString ( "server-id" ) ; if ( ( redisPassword != null ) && ( ( redisPassword . isEmpty ( ) ) || ( redisPassword . equals ( "none" ) ) ) ) { redisPassword = null ; } if ( ( serverId == null ) || ( serverId . isEmpty ( ) ) ) { throw new RuntimeException ( "server-id<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>specified<seq2seq4repair_space>in<seq2seq4repair_space>the<seq2seq4repair_space>configuration<seq2seq4repair_space>or<seq2seq4repair_space>is<seq2seq4repair_space>empty" ) ; } if ( ( redisServer != null ) && ( ! ( redisServer . isEmpty ( ) ) ) ) { final String finalRedisPassword = redisPassword ; FutureTask < JedisPool > task = new FutureTask ( new Callable < JedisPool > ( ) { @ Override public JedisPool call ( ) throws Exception { ClassLoader previous = Thread . currentThread ( ) . getContextClassLoader ( ) ; Thread . currentThread ( ) . setContextClassLoader ( RedisBungee . class . getClassLoader ( ) ) ; JedisPoolConfig config = new JedisPoolConfig ( ) ; config . setMaxTotal ( configuration . getInt ( "max-redis-connections" , 8 ) ) ; config . setJmxEnabled ( false ) ; JedisPool pool = new JedisPool ( config , redisServer , redisPort , 0 , finalRedisPassword ) ; Thread . currentThread ( ) . setContextClassLoader ( previous ) ; return pool ; } } ) ; getProxy ( ) . getScheduler ( ) . runAsync ( this , task ) ; try { pool = task . get ( ) ; } catch ( InterruptedException | ExecutionException e ) { throw new RuntimeException ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>create<seq2seq4repair_space>Redis<seq2seq4repair_space>pool" , e ) ; } try ( Jedis rsc = pool . getResource ( ) ) { rsc . ping ( ) ; File crashFile = new File ( getDataFolder ( ) , "restarted_from_crash.txt" ) ; if ( crashFile . exists ( ) ) crashFile . delete ( ) ; else if ( rsc . hexists ( "heartbeats" , serverId ) ) { try { Long value = Long . valueOf ( rsc . hget ( "heartbeats" , serverId ) ) ; if ( ( value != null ) && ( ( System . currentTimeMillis ( ) ) < ( value + 20000 ) ) ) { getLogger ( ) . severe ( "You<seq2seq4repair_space>have<seq2seq4repair_space>launched<seq2seq4repair_space>a<seq2seq4repair_space>possible<seq2seq4repair_space>imposter<seq2seq4repair_space>BungeeCord<seq2seq4repair_space>instance.<seq2seq4repair_space>Another<seq2seq4repair_space>instance<seq2seq4repair_space>is<seq2seq4repair_space>already<seq2seq4repair_space>running." ) ; getLogger ( ) . severe ( "For<seq2seq4repair_space>data<seq2seq4repair_space>consistency<seq2seq4repair_space>reasons,<seq2seq4repair_space>RedisBungee<seq2seq4repair_space>will<seq2seq4repair_space>now<seq2seq4repair_space>disable<seq2seq4repair_space>itself." ) ; getLogger ( ) . severe ( "If<seq2seq4repair_space>this<seq2seq4repair_space>instance<seq2seq4repair_space>is<seq2seq4repair_space>coming<seq2seq4repair_space>up<seq2seq4repair_space>from<seq2seq4repair_space>a<seq2seq4repair_space>crash,<seq2seq4repair_space>create<seq2seq4repair_space>a<seq2seq4repair_space>file<seq2seq4repair_space>in<seq2seq4repair_space>your<seq2seq4repair_space>RedisBungee<seq2seq4repair_space>plugins<seq2seq4repair_space>directory<seq2seq4repair_space>with<seq2seq4repair_space>the<seq2seq4repair_space>name<seq2seq4repair_space>'restarted_from_crash.txt'<seq2seq4repair_space>and<seq2seq4repair_space>RedisBungee<seq2seq4repair_space>will<seq2seq4repair_space>not<seq2seq4repair_space>perform<seq2seq4repair_space>this<seq2seq4repair_space>check." ) ; throw new RuntimeException ( "Possible<seq2seq4repair_space>imposter<seq2seq4repair_space>instance!" ) ; } } catch ( NumberFormatException ignored ) { } } FutureTask < Void > task2 = new FutureTask < > ( new Callable < Void > ( ) { @ Override public Void call ( ) throws Exception { <START_BUG> service = Executors . newFixedThreadPool ( 16 ) ; <END_BUG> RedisBungee . httpClient = new OkHttpClient ( ) ; Dispatcher dispatcher = new Dispatcher ( service ) ; RedisBungee . httpClient . setDispatcher ( dispatcher ) ; NameFetcher . setHttpClient ( RedisBungee . httpClient ) ; UUIDFetcher . setHttpClient ( RedisBungee . httpClient ) ; RedisBungee . configuration = new RedisBungeeConfiguration ( RedisBungee . this . getPool ( ) , configuration ) ; return null ; } } ) ; getProxy ( ) . getScheduler ( ) . runAsync ( this , task2 ) ; try { task2 . get ( ) ; } catch ( InterruptedException | ExecutionException e ) { throw new RuntimeException ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>create<seq2seq4repair_space>executor" , e ) ; } getLogger ( ) . log ( Level . INFO , "Successfully<seq2seq4repair_space>connected<seq2seq4repair_space>to<seq2seq4repair_space>Redis." ) ; } catch ( JedisConnectionException e ) { pool . destroy ( ) ; pool = null ; throw e ; } } else { throw new RuntimeException ( "No<seq2seq4repair_space>redis<seq2seq4repair_space>server<seq2seq4repair_space>specified!" ) ; } } class PubSubListener implements Runnable { private Jedis rsc ; private RedisBungee . JedisPubSubHandler jpsh ; private PubSubListener ( ) { } @ Override public void run ( ) { } public void addChannel ( String ... channel ) { } public void removeChannel ( String ... channel ) { } public void poison ( ) { } }

Fix:
service = Executors . newCachedThreadPool ( ) ;