private void callUpdate(MessageEntry messageEntry) throws StorageException { DatabaseHelper instance = DatabaseHelper.getInstance(this); final SQLiteDatabase db = instance.getWritableDatabase(); db.beginTransaction(); try { CommandBusHelper.sendMessage(this, GetMessageCommand.CANCEL_UPDATE); // Update the database instance.insertOrUpdateMessage(db, messageEntry); Long serverId = messageEntry.getServerId(); Long posted = messageEntry.getPosted(); String messString = messageEntry.getMessage(); Command command; if (serverId != null && posted != -1l) command = new EditMessageCommand(messString, serverId); else if (posted == -1l) command = new DeleteMessageCommand(serverId); else command = new PostMessageCommand(messString); CommandBusHelper.submitCommandSync(this, command); db.setTransactionSuccessful(); } finally { db.endTransaction(); } }