[ https://issues.apache.org/jira/browse/CASSANDRA-12542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dave Brosius updated CASSANDRA-12542: ------------------------------------- Priority: Trivial (was: Major) > Portability Flaw: Locale Dependent Comparison > --------------------------------------------- > > Key: CASSANDRA-12542 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12542 > Project: Cassandra > Issue Type: Sub-task > Reporter: Eduardo Aguinaga > Priority: Trivial > > Overview: > In May through June of 2016 a static analysis was performed on version 3.0.5 > of the Cassandra source code. The analysis included an automated analysis > using HP Fortify v4.21 SCA and a manual analysis utilizing SciTools > Understand v4. The results of that analysis includes the issue below. > Issue: > In the file SpeculativeRetryParam.java on lines 91 and 103 there are a > portability problems with the call to toLowerCase() because it has different > locales which may lead to unexpected output. This may also circumvent custom > validation routines. > SpeculativeRetryParam.java, lines 91-101: > {code:java} > 091 if (value.toLowerCase().endsWith("ms")) > 092 { > 093 try > 094 { > 095 return custom(Double.parseDouble(value.substring(0, > value.length() - "ms".length()))); > 096 } > 097 catch (IllegalArgumentException e) > 098 { > 099 throw new ConfigurationException(format("Invalid value %s for > option '%s'", value, TableParams.Option.SPECULATIVE_RETRY)); > 100 } > 101 } > {code} > SpeculativeRetryParam.java, lines 103-121: > {code:java} > 103 if (value.toUpperCase().endsWith(Kind.PERCENTILE.toString())) > 104 { > 105 double threshold; > 106 try > 107 { > 108 threshold = Double.parseDouble(value.substring(0, value.length() > - Kind.PERCENTILE.toString().length())); > 109 } > 110 catch (IllegalArgumentException e) > 111 { > 112 throw new ConfigurationException(format("Invalid value %s for > option '%s'", value, TableParams.Option.SPECULATIVE_RETRY)); > 113 } > 114 > 115 if (threshold >= 0.0 && threshold <= 100.0) > 116 return percentile(threshold); > 117 > 118 throw new ConfigurationException(format("Invalid value %s for > PERCENTILE option '%s': must be between 0.0 and 100.0", > 119 value, > 120 > TableParams.Option.SPECULATIVE_RETRY)); > 121 } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)