Zhong Wang created IOTDB-2064:
---------------------------------
Summary: NPE caused by map serde
Key: IOTDB-2064
URL: https://issues.apache.org/jira/browse/IOTDB-2064
Project: Apache IoTDB
Issue Type: Bug
Reporter: Zhong Wang
In TSServiceImpl#setMultiTimeSeriesPlan, the input create time series plan may
not have any tag or attribute, thus createTimeSeriesPlan#getTags and
createTimeSeriesPlan#getAttributes could return null. See:
{code:java}
private void setMultiTimeSeriesPlan(
CreateMultiTimeSeriesPlan multiPlan, CreateTimeSeriesPlan
createTimeSeriesPlan) {
PartialPath path = createTimeSeriesPlan.getPath();
TSDataType type = createTimeSeriesPlan.getDataType();
TSEncoding encoding = createTimeSeriesPlan.getEncoding();
CompressionType compressor = createTimeSeriesPlan.getCompressor();
Map<String, String> tags = createTimeSeriesPlan.getTags();
Map<String, String> attributes = createTimeSeriesPlan.getAttributes();
String alias = createTimeSeriesPlan.getAlias();
multiPlan.getPaths().add(path);
multiPlan.getDataTypes().add(type);
multiPlan.getEncodings().add(encoding);
multiPlan.getCompressors().add(compressor);
multiPlan.getTags().add(tags); // tags could be null !!!
multiPlan.getAttributes().add(attributes); // attributes could be null !!!
multiPlan.getAlias().add(alias);
}
{code}
The serialization of CreateMultiTimeSeriesPlan calls
ReadWriteIOUtils#write(List<Map<String, String>>, ByteBuffer), and for each map
in the list, ReadWriteIOUtils#write(Map<String, String>, DataOutputStream) is
called.
However, ReadWriteIOUtils#write(Map<String, String>, DataOutputStream) throws
NPE when the input map is null.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)