Re: [OGV-general] Небольшой фикс.
Status: Beta
Brought to you by:
korvolant
|
From: Serhiy S. <sto...@us...> - 2011-09-30 14:21:08
|
неділя 25 вересень 2011 01:07:15 galaxyanin ви написали: > Тут пробовал открыть полный отчет в OGV из последних исходников. > OGV ругается исключением при попытке просмотреть опции. > > Нашел в чем проблема. > Своя раса в полном отчете должна быть равна null, но, походу, где-то > что-то не так. > Падает на: switch(r.getRelations()). > Почему то не проходила проверка на сравнение с null. > Я посмотрел Race.compareTo(). Там при аргументе null состояние самого > объекта не учитывается и получается что объект равный null будет > говорить, что он не равный null. > Но, честно говоря, я в этом мало разбираюсь. Java не мой язык. > > Сделал небольшой патч для примера. > Так конечно не хорошо, но пока проблему обходит и показывает где не так. > > diff -uNr ogv.save/src/ogv/gui/dialogs/options/RaceColorsPage.java > ogv/src/ogv/gui/dialogs/options/RaceColorsPage.java > --- ogv.save/src/ogv/gui/dialogs/options/RaceColorsPage.java 2011-09-25 > 01:40:58.476191677 +0400 > +++ ogv/src/ogv/gui/dialogs/options/RaceColorsPage.java 2011-09-25 > 01:41:54.935105837 +0400 > @@ -55,7 +55,7 @@ > raceColors.add(new ColorNode(r.getName(), OGV.getColor(r))); > Collections.sort(raceColors); > Race r = game.getYou(); > - if (r != null) > + if (r != null && r.getName() != "") > raceColors.add(0, new ColorNode(r.getName(), OGV.getColor(r))); > } Спасибо, действительно была ошибка, и её можно было исправить предложенным вами способом (правда, ещё и в других местах возникала аналогичная). game.getYou() для полного отчёта возвращал null, потом я приделал костыль, чтобы избежать падения в некоторых местах, но после этого здесь проверка перестала срабатывать. Костыль убрал, код проверил и исправил аккуратнее, но всё равно могут быть проблемы с полными отчётами после отдачи приказов (что не имеет смысла). Может быть стоит запретить отдачу приказов для полных отчётов, а может оставить, чтобы можно было просимулировать действия разных рас, — не решил пока. Если же ещё встретите ошибки с полными отчётами, _не связанные с отдачей приказов_, — сообщайте, их нужно исправлять. > PS: У меня jdk1.7. Может быть это имеет значение. Не имеет. |