Я пытаюсь обработать MMS-сообщение с несколькими вложениями.Для этого я создаю HashMap следующим образом (это не полная реализация, а только соответствующая часть):
HashMap<String, Integer> hashAttachments = new HashMap<String, Integer>();
int c = 0;
if(atts != null) {
for(Attachment a : atts){
if(a.mimeType.startsWith("image/")){
<some code here>
hashAttachments.put(a.fileName, indx);
}else if(a.mimeType.startsWith("text/")){
<some code here>
hashAttachments.put("text_"+String.valueOf(c++)+".txt",indx);
}
<some more mime types>
} /* for */
сообщение, которое я пытаюсь обработать, имеет 4 вложения - два изображения и два текста,поэтому я ожидаю, что хэш-карта будет содержать 4 записи, когда цикл for закончится.
Что я на самом деле вижу, так это то, что в какой-то момент одна из записей карты перезаписывается, и я получаю 3 записи вместо 4. В чем может быть причина?(ключи уникальны, не нулевые и не пустые во всех случаях)
Заранее спасибо
EDIT : ключ устанавливается после каждой итерации (выглядит идеально, не то, что я виделпроверка ключей в отладчике):
10-16 21:50:01.207: INFO/System.out(27593): ~~~~~~~
10-16 21:50:01.207: INFO/System.out(27593): abc.jpg
10-16 21:50:01.207: INFO/System.out(27593): ~~~~~~~
10-16 21:50:01.217: INFO/System.out(27593): abc.jpg
10-16 21:50:01.217: INFO/System.out(27593): 2010-06-18_12.47.50.jpg
10-16 21:50:01.227: INFO/System.out(27593): ~~~~~~~
10-16 21:50:01.227: INFO/System.out(27593): abc.jpg
10-16 21:50:01.227: INFO/System.out(27593): 2010-06-18_12.47.50.jpg
10-16 21:50:01.227: INFO/System.out(27593): text_0.txt
10-16 21:50:01.237: INFO/System.out(27593): ~~~~~~~
10-16 21:50:01.237: INFO/System.out(27593): abc.jpg
10-16 21:50:01.237: INFO/System.out(27593): text_1.txt
10-16 21:50:01.237: INFO/System.out(27593): 2010-06-18_12.47.50.jpg
10-16 21:50:01.237: INFO/System.out(27593): text_0.txt