I am developing a PIM-based application and encountering the following problems on SIM :
On Nokia/Series40 3RD FP1 devices ( ANY of these, not reproductible on others ).
When trying to commit a SIM Contact ( having less than SIM MAX Capacity Contacts),
javax.microedition.pim.PIMException: Error writing to contact DB, error=0x80000021
Please note that this exception is different than when the SIM Card is full -
javax.microedition.pim.PIMException: Error writing to contact DB, error=0x8000002f
Please tell me what error code 0x80000021 reffers to and what should i do to make it work.
Also, please note that the API does not rollback the operation ( it should rollback ).
The committed item is available from next reopening of PIMList on SIM folder. Still, this is an altered item, and the ID is unavailable ( -1 ) if you don't reopen the PIMList.
When seeking for the item after the exception occurs and reopening the PIMList.
aCommittedNew = newContact.commit();
PIMItems items = SIMContactList.items(aCommittedNew);// does not always return the altered item. I am unable to rollback successfully due to these issues.
Additional details :
- A full-field SIM Contact is used ( This means it has Phone Number and Name only !).
- There are no dummy datas in the Contact ( 2-3 chars for Name and 9 numbers for Phone Number )
- This exception occurs unpredictable. This means, if you add and remove a Contact it in a loop, it may or may not occur.
Please ask for any additional informations you may need to help me solve this issue. I consider it a 3RD Party JSR-75 issue. HELP!
Foot note : I have J2ME and jsr-75 experience. Please assume my code is correct.