У меня странная проблема с отладкой приложения android. Чтобы быть точным, я копирую сюда точный код, на котором я работаю:
// Get the puzzles from cache
List<PuzzleDetails> newPuzzles = m_cachedPuzzles.getPuzzles(count);
if(newPuzzles.size() > 0){
// Remove from cache
m_cachedPuzzles.removePuzzles(newPuzzles); // LINE (A)
// Add the new puzzles from cache immediately
m_ownedPuzzles.addPuzzles(newPuzzles);
Log.d("requests", "" + newPuzzles.size() + " moved from cache to user");
}
int left = count - newPuzzles.size();
String deviceId = ResourcesPublisher.getInstance().getDeviceId();
// Don't let anyone else use these points for now
ChallengePointsManagerImpl.getInstance().usePoints(left);
Log.d("requests", "aquirePuzzles(" + left + ")");
// Get a list of requests for 'left' number of puzzles
RequestList reqList = getRequestList(left);
// TODO this is a bug, now
if(reqList.size() > 1){
reqList = getRequestList(left); // LINE (B)
}
Когда я работаю на этом коде, после перехода через строку (A) m_cachedPuzzles.removePuzzles(newPuzzles); Отладчик "перепрыгивает" на последнюю строку (B) reqList = getRequestList(left);
Простая проверка показывает, что он действительно пропустил весь код между этими строками. Например, Log.d(...) никогда не вызывался и не писался.
Может ли кто-нибудь подсказать мне, почему это происходит????
Спасибо!