#NEWLINE# def _get_nailgun_client( self , jvm_options , classpath , stdout , stderr ) : #NEWLINE# #INDENT# 'This (somewhat unfortunately) is the main entrypoint to this class via the Runner. It handles\n       creation of the running nailgun server as well as creation of the client.' #NEWLINE# classpath = ( jvm_options . _nailgun_classpath + classpath ) #NEWLINE# new_fingerprint = self . _fingerprint ( jvm_options , classpath , self . _distribution . version ) #NEWLINE# with self . _NAILGUN_SPAWN_LOCK : #NEWLINE# #INDENT# ( running , updated ) = self . _check_nailgun_state ( new_fingerprint ) #NEWLINE# if ( running and updated ) : #NEWLINE# #INDENT# logger . debug ( 'Found running nailgun server that needs updating, killing {server}' . format ( server = self . _identity ) ) #NEWLINE# self . terminate ( ) #NEWLINE# #UNINDENT# if ( ( not running ) or ( running and updated ) ) : #NEWLINE# #INDENT# return self . _spawn_nailgun_server ( new_fingerprint , jvm_options , classpath , stdout , stderr ) #NEWLINE# #UNINDENT# #UNINDENT# return self . _create_ngclient ( self . socket , stdout , stderr )