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)

Reply via email to