En Java 8 y versiones anteriores, el cargador de clases de ForkJoinPool se puede haber heredado de la hebra padre que invocó a ForkJoinPool. La herencia del cargador de clases puede provocar posibles problemas de pérdida de memoria. A partir de Java 9, el cargador de clases ForkJoinPool ya no hereda el cargador de clases de la hebra de llamada. Si la aplicación se está ejecutando en un entorno de varias hebras, es posible que haya diferencias en el comportamiento relacionado con la propagación del cargador de clases de contexto de hebra.
Esta regla pondrá una marca por cada aplicación. La regla señala las aplicaciones que llaman a cualquiera de los métodos siguientes (incluidas las llamadas a las subclases):
java.util.concurrent.CompletableFuture.runAsync(Runnable runnable)java.util.concurrent.CompletableFuture.thenRunAsync(Runnable runnable)java.util.concurrent.ForkJoinPool.commonPool()java.util.concurrent.ForkJoinTask.fork()java.util.concurrent.ForkJoinTask.invokeAll()Nota: este cambio de comportamiento solo se aplica si todavía no ha dispuesto la propagación del cargador de clases de contexto de hebra, como por ejemplo MicroProfile Context Propagation, Jakarta/Java EE Concurrency u otros medios específicos de aplicación.
Para obtener más información sobre los cambios de Java SE 9, consulte las Notas del release de Java 9.