private void modified ( Dictionary < String , ? > newProperties , boolean logMessage ) { final boolean trace = TraceComponent . isAnyTracingEnabled ( ) ; if ( trace && tc . isEntryEnabled ( ) ) Tr . entry ( this , tc , "modified" , newProperties ) ; boolean replaced = false ; lock . writeLock ( ) . lock ( ) ; try { if ( isInitialized ) { if ( classloader != null ) { if ( isDerbyEmbedded . compareAndSet ( true , false ) ) // assume false for any future usage until shown otherwise shutdownDerbyEmbedded ( ) ; classloader = null ; } for ( Iterator < Class < ? extends CommonDataSource > > it = introspectedClasses . iterator ( ) ; it . hasNext ( ) ; it . remove ( ) ) Introspector . flushFromCaches ( it . next ( ) ) ; replaced = true ; isInitialized = false ; } if ( newProperties != null ) properties = newProperties ; } finally { lock . writeLock ( ) . unlock ( ) ; } if ( replaced ) try { setChanged ( ) ; notifyObservers ( ) ; } catch ( Throwable x ) { FFDCFilter . processException ( x , getClass ( ) . getName ( ) , "254" , this ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) Tr . debug ( this , tc , x . getMessage ( ) , AdapterUtil . stackTraceToString ( x ) ) ; } if ( trace && tc . isEntryEnabled ( ) ) Tr . exit ( this , tc , "modified" ) ; }
Clears the configuration of this JDBCDriverService so that it can lazily initialize with the new configuration on next use .