[ https://issues.apache.org/jira/browse/ACCUMULO-1703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christopher Tubbs resolved ACCUMULO-1703. ----------------------------------------- Resolution: Duplicate > Thrift generated code isn't properly checked for optional fields > ---------------------------------------------------------------- > > Key: ACCUMULO-1703 > URL: https://issues.apache.org/jira/browse/ACCUMULO-1703 > Project: Accumulo > Issue Type: Bug > Reporter: Christopher Tubbs > Priority: Minor > > In our thrift definition files, we declare some fields as optional. However, > we don't actually check to see if they are sent. This may be okay for > Objects, which we can check for null, but it won't work for checking optional > primitives. > Example: > ProxyServer.createBatchScanner() accepts a BatchScanOptions object, which has > the number of threads as an optional parameter. Instead of calling > opts.threads, we should check if opts.isSetThreads() is true, and then > retrieve it with opts.getThreads(). > This is an essential check for all optional arguments (non-optional args are > validated by the generated validate() method). > The importance of the optional field is high, if we want to support RPC > compatibility across versions. As far as I know, this is one of the goals of > the client proxy. So, we must use the thrift features (such as the optional > flag) correctly. -- This message was sent by Atlassian Jira (v8.20.10#820010)