Buggy code:
public class CrowdSecurityRealm extends AbstractPasswordBasedSecurityRealm { private static final Logger LOG = Logger . getLogger ( CrowdSecurityRealm . class . getName ( ) ) ; public final String url ; public final String applicationName ; public final String password ; public final String group ; public final boolean nestedGroups ; private transient CrowdConfigurationService configuration ; @ SuppressWarnings ( "hiding" ) @ DataBoundConstructor public CrowdSecurityRealm ( String url , String applicationName , String password , String group , boolean nestedGroups ) { } private void initializeConfiguration ( ) { Properties props = new Properties ( ) ; try { props . load ( getClass ( ) . getResourceAsStream ( "//crowd.properties" ) ) ; } catch ( IOException ex ) { CrowdSecurityRealm . LOG . log ( Level . SEVERE , ErrorMessages . cannotLoadCrowdProperties ( ) , ex ) ; } if ( ( ( ( this . applicationName ) != null ) || ( ( this . password ) != null ) ) || ( ( this . url ) != null ) ) { String crowdUrl = this . url ; if ( ! ( crowdUrl . endsWith ( "//" ) ) ) { crowdUrl += "//" ; } props . setProperty ( "application.name" , this . applicationName ) ; props . setProperty ( "application.password" , this . password ) ; props . setProperty ( "crowd.base.url" , crowdUrl ) ; props . setProperty ( "application.login.url" , ( crowdUrl + "console//" ) ) ; props . setProperty ( "crowd.server.url" , ( ( this . url ) + "services//" ) ) ; <START_BUG> props . setProperty ( "session.validationinterval" , "5" ) ; <END_BUG> } else { CrowdSecurityRealm . LOG . warning ( "Client<seq2seq4repair_space>properties<seq2seq4repair_space>are<seq2seq4repair_space>incomplete" ) ; } this . configuration = new CrowdConfigurationService ( this . group , this . nestedGroups ) ; this . configuration . clientProperties = ClientPropertiesImpl . newInstanceFromProperties ( props ) ; this . configuration . crowdClient = new RestCrowdClientFactory ( ) . newInstance ( this . configuration . clientProperties ) ; this . configuration . tokenHelper = CrowdHttpTokenHelperImpl . getInstance ( CrowdHttpValidationFactorExtractorImpl . getInstance ( ) ) ; this . configuration . crowdHttpAuthenticator = new com . atlassian . crowd . integration . http . CrowdHttpAuthenticatorImpl ( this . configuration . crowdClient , this . configuration . clientProperties , this . configuration . tokenHelper ) ; } @ Override public SecurityComponents createSecurityComponents ( ) { } @ Override public void doLogout ( StaplerRequest req , StaplerResponse rsp ) throws IOException , ServletException { } @ Override public Filter createFilter ( FilterConfig filterConfig ) { } @ Override public UserDetails loadUserByUsername ( String username ) throws UsernameNotFoundException , DataAccessException { } @ Override public GroupDetails loadGroupByGroupname ( String groupname ) throws UsernameNotFoundException , DataAccessException { } @ Override protected UserDetails authenticate ( String pUsername , String pPassword ) throws AuthenticationException { } @ Extension public static final class DescriptorImpl extends Descriptor < SecurityRealm > { public DescriptorImpl ( ) { } public FormValidation doCheckUrl ( @ QueryParameter final String url ) { } public FormValidation doCheckApplicationName ( @ QueryParameter final String applicationName ) { } public FormValidation doCheckPassword ( @ QueryParameter final String password ) { } public FormValidation doCheckGroup ( @ QueryParameter final String group ) { } public FormValidation doTestConnection ( @ QueryParameter String url , @ QueryParameter String applicationName , @ QueryParameter String password , @ QueryParameter String group ) { } @ Override public String getDisplayName ( ) { } } }

Fix:
props . setProperty ( "session.validationinterval" , "0" ) ;