@@ -465,35 +465,33 @@ internalInitializeJavaLangClassLoader(JNIEnv * env)
465
465
466
466
vmFuncs -> internalEnterVMFromJNI (vmThread );
467
467
468
+ #if defined(J9VM_OPT_SNAPSHOT )
468
469
/* Always use the persisted applicationClassLoader in restore runs. */
469
- if (!IS_RESTORE_RUN (vm )) {
470
+ if (IS_RESTORE_RUN (vm )) {
471
+ vmFuncs -> initializeSnapshotClassLoaderObject (vm , vm -> applicationClassLoader , J9_JNI_UNWRAP_REFERENCE (appClassLoader ));
472
+ } else
473
+ #endif /* defined(J9VM_OPT_SNAPSHOT) */
474
+ {
470
475
vm -> applicationClassLoader = J9VMJAVALANGCLASSLOADER_VMREF (vmThread , J9_JNI_UNWRAP_REFERENCE (appClassLoader ));
471
- }
472
476
473
- if (NULL == vm -> applicationClassLoader ) {
474
- /* CMVC 201518
475
- * applicationClassLoader may be null due to lazy classloader initialization. Initialize
476
- * the applicationClassLoader now or vm will start throwing NoClassDefFoundException.
477
- */
478
- #if defined(J9VM_OPT_SNAPSHOTS )
479
- if (IS_RESTORE_RUN (vm )) {
480
- vmFuncs -> initializeSnapshotClassLoaderObject (vm , vm -> applicationClassLoader , J9_JNI_UNWRAP_REFERENCE (appClassLoader ));
481
- } else
482
- #endif /* defined(J9VM_OPT_SNAPSHOTS) */
483
- {
477
+ if (NULL == vm -> applicationClassLoader ) {
478
+ /* CMVC 201518
479
+ * applicationClassLoader may be null due to lazy classloader initialization. Initialize
480
+ * the applicationClassLoader now or vm will start throwing NoClassDefFoundException.
481
+ */
484
482
vm -> applicationClassLoader = (void * )(UDATA )(vmFuncs -> internalAllocateClassLoader (vm , J9_JNI_UNWRAP_REFERENCE (appClassLoader )));
485
- }
486
483
487
- if (NULL != vmThread -> currentException ) {
488
- /* while this exception check and return statement seem un-necessary, it is added to prevent
489
- * oversights if anybody adds more code in the future.
490
- */
491
- goto exitVM ;
484
+ if (NULL != vmThread -> currentException ) {
485
+ /* While this exception check and return statement seem un-necessary, it is added to prevent
486
+ * oversights if anybody adds more code in the future.
487
+ */
488
+ goto exitVM ;
489
+ }
492
490
}
493
491
}
494
492
495
493
/* Set up extension class loader in VM */
496
- if (NULL == vm -> extensionClassLoader ) {
494
+ if (NULL != vm -> applicationClassLoader ) {
497
495
j9object_t classLoaderObject = vm -> applicationClassLoader -> classLoaderObject ;
498
496
j9object_t classLoaderParentObject = classLoaderObject ;
499
497
@@ -502,26 +500,24 @@ internalInitializeJavaLangClassLoader(JNIEnv * env)
502
500
classLoaderParentObject = J9VMJAVALANGCLASSLOADER_PARENT (vmThread , classLoaderObject );
503
501
}
504
502
505
- /* Restore runs use the persisted extensionClassLoader. */
506
- if (!IS_RESTORE_RUN (vm )) {
507
- vm -> extensionClassLoader = J9VMJAVALANGCLASSLOADER_VMREF (vmThread , classLoaderObject );
508
- }
509
-
510
- if (NULL == vm -> extensionClassLoader ) {
511
503
#if defined(J9VM_OPT_SNAPSHOTS )
512
- if (IS_RESTORE_RUN (vm )) {
513
- vmFuncs -> initializeSnapshotClassLoaderObject (vm , vm -> extensionClassLoader , classLoaderObject );
514
- } else
504
+ /* Always use the persisted extensionClassLoader in restore runs. */
505
+ if (IS_RESTORE_RUN (vm )) {
506
+ vmFuncs -> initializeSnapshotClassLoaderObject (vm , vm -> extensionClassLoader , classLoaderObject );
507
+ } else
515
508
#endif /* defined(J9VM_OPT_SNAPSHOTS) */
516
- {
509
+ if (NULL == vm -> extensionClassLoader ) {
510
+ vm -> extensionClassLoader = J9VMJAVALANGCLASSLOADER_VMREF (vmThread , classLoaderObject );
511
+
512
+ if (NULL == vm -> extensionClassLoader ) {
517
513
vm -> extensionClassLoader = (void * )(UDATA )(vmFuncs -> internalAllocateClassLoader (vm , classLoaderObject ));
518
- }
519
514
520
- if (NULL != vmThread -> currentException ) {
521
- /* while this exception check and return statement seem un-necessary, it is added to prevent
522
- * oversights if anybody adds more code in the future.
523
- */
524
- goto exitVM ;
515
+ if (NULL != vmThread -> currentException ) {
516
+ /* While this exception check and return statement seem un-necessary, it is added to prevent
517
+ * oversights if anybody adds more code in the future.
518
+ */
519
+ goto exitVM ;
520
+ }
525
521
}
526
522
}
527
523
}
0 commit comments