question: @ Override public void updateState ( X509Certificate cert ) throws CertificateException , IOException , CertPathValidatorException { if ( cert == null ) return ; X509CertImpl icert = X509CertImpl . toImpl ( cert ) ; if ( PKIX . isDSAPublicKeyWithoutParams ( icert . getPublicKey ( ) ) ) { keyParamsNeededFlag = true ; } this . cert = icert ; issuerDN = cert . getIssuerX500Principal ( ) ; if ( ! X509CertImpl . isSelfIssued ( cert ) ) { if ( ! init && cert . getBasicConstraints ( ) != - 1 ) { traversedCACerts ++ ; } } if ( init || ! X509CertImpl . isSelfIssued ( cert ) ) { X500Principal subjName = cert . getSubjectX500Principal ( ) ; subjectNamesTraversed . add ( X500Name . asX500Name ( subjName ) ) ; try { SubjectAlternativeNameExtension subjAltNameExt = icert . getSubjectAlternativeNameExtension ( ) ; if ( subjAltNameExt != null ) { GeneralNames gNames = subjAltNameExt . get ( SubjectAlternativeNameExtension . SUBJECT_NAME ) ; for ( GeneralName gName : gNames . names ( ) ) { subjectNamesTraversed . add ( gName . getName ( ) ) ; } } } catch ( IOException e ) { if ( debug != null ) { debug . println ( "ForwardState.updateState() unexpected " + "exception" ) ; e . printStackTrace ( ) ; } throw new CertPathValidatorException ( e ) ; } } init = false ; }
target:  Update the state with the next certificate added to the path.