Я пытаюсь создать объект Java из карты, а затем преобразовать объект в строку XML. В конце я отправлю XML с запросом на публикацию. после каждого успешного запроса я должен очистить данные, чтобы были опубликованы только новые данные.
private void send(){
try {
Map<String, List<Object>> data = getData();
Message dataMessage = Message
.serialize(data);
XmlMapper xmlMapper = new XmlMapper();
String xml = xmlMapper.writeValueAsString(dataMessage);
Log.i("debug", "xml " + xml);
getData().clear(); //Clearing the data hier is problematic
}catch(Exception e){
Log.e("debug", "Error! " + e);
}
}
Если я не очищаю данные, сообщение XML регистрируется правильно, но старые данные также печатаются, как и ожидалось. Если я комментирую строку и очищаю данные в конце функции отправки, сообщения не печатаются. Я не понимаю в чем проблема. Может ли быть так, что синтаксический анализ xml происходит асинхронно и данные удаляются до того, как синтаксический анализ выполняется? Есть ли у вас решение?