@ Override public void performFileBasedAction ( Collection < File > modifiedFiles ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) Tr . entry ( tc , "performFileBasedAction" , new Object [ ] { modifiedFiles } ) ; try { com . ibm . ws . ssl . config . KeyStoreManager . getInstance ( ) . clearJavaKeyStoresFromKeyStoreMap ( modifiedFiles ) ; com . ibm . ws . ssl . provider . AbstractJSSEProvider . clearSSLContextCache ( modifiedFiles ) ; com . ibm . ws . ssl . config . SSLConfigManager . getInstance ( ) . resetDefaultSSLContextIfNeeded ( modifiedFiles ) ; Tr . audit ( tc , "ssl.keystore.modified.CWPKI0811I" , modifiedFiles . toArray ( ) ) ; } catch ( Exception e ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Exception while trying to reload keystore file, exception is: " + e . getMessage ( ) ) ; } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "performFileBasedAction" ) ; }
The specified files have been modified and we need to clear the SSLContext caches and keystore caches . This will cause the new keystore file to get loaded on the next use of the ssl context . If the keystore associated with the SSLContext that the process is using then the process SSLContext needs to be reloaded .