Сообщений: 69
Тем: 7
Зарегистрирован: Jan 2015
Репутация:
88
Последние (и не только) сорцы aCis используют устаревшую версию ECJ для компиляции скриптов датапака.
Если просто в проекте (или при запуске) использовать Java 1.8 - то скрипты компилиться не будут, будет ругаться:
Цитата:Annotation processing got disabled, since it requires a 1.6 compliant JVM
С кучей ошибок компиляции (не удается найти классы ядра).
Решается довольно просто:
Удаляем из библиотек либы java-engine-1.7 и ecj-3.7.1 (или какая у вас там версия), удаляем сами библиотеки.
Добавляем на их место следующие и подключаем:
java-engine-1.8.jar
ecj-4.4.jar
PS: Кто общается с разрабами aCis наведите их на мысль, что пора бы уже мигрировать...
Johnson получился в результате деления на null. Помогаю с джавой только за булочки с маком.
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
Уже было нечто похожее, но в более глобальной плане, без частностей.
Почему бы не написать им на форум? И да, даже при обычной смене ВМ с 1.7 на 1.8 вылезет много очень интересных багов Например с картами remove, put.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
Скоро аЦис переходит на Java 8. Инфа 146%.
Родился, живу и когда-нибудь умру.
Сообщений: 226
Тем: 43
Зарегистрирован: Dec 2011
Репутация:
1,008
Pointer*Rage Написал:Например с картами remove, put. Припоминаю такую тему. Была в одном месте операция remove затем put по одинаковому ключу. Вроде бы ничего, но насколько помню, это приводило к неопределенному поведению и гигабайты хипа сжирались в минуты.
Причину не помню, давно уже было, и сейчас это вроде уже исправили в апдейтах?
Сообщений: 69
Тем: 7
Зарегистрирован: Jan 2015
Репутация:
88
01-14-2015, 09:14 PM
(Сообщение последний раз редактировалось: 01-14-2015, 09:16 PM Johnson.)
Pointer*Rage Написал:Уже было нечто похожее, но в более глобальной плане, без частностей.
Почему бы не написать им на форум? И да, даже при обычной смене ВМ с 1.7 на 1.8 вылезет много очень интересных багов Например с картами remove, put.
Ну, при переводе проекта на 1.8 я не нашел решение проблемы по строке ошибки, пришлось немного изучить проблемму. Моя тема как минимум при поиске по ошибке выдастся.
Про "глобальность" - с чем работаю, про то и написал, я не знаю какие еще сборки используют ECJ.
Писать на форум не хочу - только опозорюсь знанием разговорного английского Да и не зарегистрирован я там даже, читаю только изредка.
Добавлено через 41 секунду
За инфо про карты - спасибо, поищу использования.
Добавлено через 1 минуту
Donatte Написал:Скоро аЦис переходит на Java 8. Инфа 146%. На сколько скоро, если не секрет? Хотел делать глобальные изменения, но, видимо, придется потерпеть
Johnson получился в результате деления на null. Помогаю с джавой только за булочки с маком.
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
SouthBridge Написал:Припоминаю такую тему. Была в одном месте операция remove затем put по одинаковому ключу. Вроде бы ничего, но насколько помню, это приводило к неопределенному поведению и гигабайты хипа сжирались в минуты.
Причину не помню, давно уже было, и сейчас это вроде уже исправили в апдейтах?
Использую 11-b12, до сих пор те же проблемы. Зато код очистился маленько, ведь можно совершенно спокойно делать один put, без remove.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
01-14-2015, 09:36 PM
(Сообщение последний раз редактировалось: 01-14-2015, 09:38 PM Donatte.)
Johnson Написал:На сколько скоро, если не секрет? Хотел делать глобальные изменения, но, видимо, придется потерпеть
Возможно в ближайших коммитах. Как максимум.
Добавлено через 1 минуту
Pointer*Rage Написал:Использую 11-b12, до сих пор те же проблемы. Зато код очистился маленько, ведь можно совершенно спокойно делать один put, без remove.
Так вроде как, если в карту с тем же идентификатором ложить объект, то он подменяется автоматически. Что не так?
Родился, живу и когда-нибудь умру.
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
Donatte Написал:Возможно в ближайших коммитах. Как максимум.
Добавлено через 1 минуту
Так вроде как, если в карту с тем же идентификатором ложить объект, то он подменяется автоматически. Что не так?
Все так, но хип не колбасит, если сравнивать с remove-put.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Сообщений: 226
Тем: 43
Зарегистрирован: Dec 2011
Репутация:
1,008
Pointer*Rage Написал:Использую 11-b12, до сих пор те же проблемы. Зато код очистился маленько, ведь можно совершенно спокойно делать один put, без remove. А странно. Мне казалось это устранили.
Попробовал набросать простой тест с remove/put под u25 - всё ок.
Влепил на ВМ самую первую версию Java 8 и тоже никаких признаков отклонения от нормы.
Обида. Наверное я упустил какую-то тонкость
Johnson, один такой метод есть в классе Olympiad, метод updateNobleStats, который в принципе то и не нужен.
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
01-14-2015, 09:51 PM
(Сообщение последний раз редактировалось: 01-14-2015, 10:13 PM n3k0nation.)
SouthBridge Написал:А странно. Мне казалось это устранили.
Попробовал набросать простой тест с remove/put под u25 - всё ок.
Влепил на ВМ самую первую версию Java 8 и тоже никаких признаков отклонения от нормы.
Обида. Наверное я упустил какую-то тонкость
Johnson, один такой метод есть в классе Olympiad, метод updateNobleStats, который в принципе то и не нужен.
Дык у меня u11, о чем я и написал. Возможно в версиях выше исправили, по крайней мере ченджлоги я еще не читал и скорее всего читать буду не скоро
Добавлено через 18 минут
Посмотрел так я текущие баги и понял, что можно в принципе и не обновляться
генерация кривой таблицы исключений
An incorrect exception table is generated for code that has multiple catch statements inside a lambda. The following example shows the type of code that causes this behavior:
Код: class LambdaWithMultiCatch {
public static void main(String[] args) {
Runnable r = () -> {
try {
throw new IOException();
} catch(IOException | IllegalArgumentException e) {
System.out.println("This code will generate a wrong exception table");
}
};
r.run();
}
}
The generated exception table for method main() contains the following information:
Код: Exception table:
from to target type
0 8 8 Class java/lang/Exception <--- neither IOException nor
<--- IllegalArgumentException appears
Avoid using multiple catch statements inside lambda bodies until this issue is fixed.
Вот вам и dynamicinvoke...
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
|