James Clampffer created HDFS-10241:
--------------------------------------
Summary: libhdfs++: Objects should never return mutable references
to internal state
Key: HDFS-10241
URL: https://issues.apache.org/jira/browse/HDFS-10241
Project: Hadoop HDFS
Issue Type: Sub-task
Reporter: James Clampffer
Returning mutable references to internal state is always a bad idea. It's
particularly bad in asynchronous code (due to unpredictable object life cycles).
Example of what should _never_ happen in production code (from
AsyncRequestBlock):
{code}
struct State {
std::string header;
hadoop::hdfs::OpReadBlockProto request;
hadoop::hdfs::BlockOpResponseProto response;
};
auto m = continuation::Pipeline<State>::Create(cancel_state_);
State *s = &m->state();
s->header.insert(s->header.begin(),
{0, kDataTransferVersion, Operation::kReadBlock});
{code}
I'll open another JIRA for auto vars containing ambiguous types e.g. what is
the type of "m" here?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)