[ https://issues.apache.org/jira/browse/CASSANDRA-13163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ariel Weisberg updated CASSANDRA-13163: --------------------------------------- Description: {code} private void excise(Collection<Token> tokens, InetAddress endpoint) { logger.info("Removing tokens {} for {}", tokens, endpoint); if (tokenMetadata.isMember(endpoint)) HintsService.instance.excise(tokenMetadata.getHostId(endpoint)); {code} The check for TMD.isMember() is not enough to guarantee that TMD.getHostId() will not return null. If HintsService.excise() is called with null you get an NPE in a map lookup. was: {code} private void excise(Collection<Token> tokens, InetAddress endpoint) { logger.info("Removing tokens {} for {}", tokens, endpoint); if (tokenMetadata.isMember(endpoint)) HintsService.instance.excise(tokenMetadata.getHostId(endpoint)); {code} The check for TMD.isMember() is not enough to guarantee that TMD.getHodtId() will not return null. If HintsService.excise() is called with null you get an NPE in a map lookup. > NPE in StorageService.excise > ---------------------------- > > Key: CASSANDRA-13163 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13163 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Ariel Weisberg > Assignee: Ariel Weisberg > Fix For: 3.0.x, 3.x, 4.x > > > {code} > private void excise(Collection<Token> tokens, InetAddress endpoint) > { > logger.info("Removing tokens {} for {}", tokens, endpoint); > if (tokenMetadata.isMember(endpoint)) > HintsService.instance.excise(tokenMetadata.getHostId(endpoint)); > {code} > The check for TMD.isMember() is not enough to guarantee that TMD.getHostId() > will not return null. If HintsService.excise() is called with null you get an > NPE in a map lookup. -- This message was sent by Atlassian JIRA (v6.3.4#6332)