Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Ivan Sopov
    @isopov
    null-анализ без аннотаций нормально, если будет в очень ограниченном виде. Кому хочется полноценного - пусть размечает все филды и параметры аннотациями - у нас всё размечено.
    причем, у нас null-анализ немножко допиленный и для наших допилов аннотации сделаны RetentionPolicy.RUNTIME
    у обычных джетбрейнсовских RetentionPolicy.CLASS, так что тоже можно использовать, насколько я понимаю
    Tagir Valeev
    @amaembo
    Можно, да. Аннотации я, конечно, со временем поддержу
    Kirill Tolkachev
    @lavcraft
    Просканил проектик со стремным java api для Telegram - https://github.com/rubenlagus/TelegramBots
    Unconditional BotSession.access$700() call in BotSession.HandlerThread.run().
    Я так понимаю имеется ввиду https://github.com/rubenlagus/TelegramBots/blob/15ff562dac1342d9765c9d080c811f4b39a320df/src/main/java/org/telegram/telegrambots/updatesreceivers/BotSession.java#L89 ?
    как разшифровывать access$700 )
    Tagir Valeev
    @amaembo
    Это аксессор-метод к приватному методу вложенного класса
    Kirill Tolkachev
    @lavcraft
    а ок
    Tagir Valeev
    @amaembo
    Вообще странное сообщение
    Надо разобраться
    А целиком можешь скопировать, что там в отчёте?
    Kirill Tolkachev
    @lavcraft
    хочешь html скину просто?
    Tagir Valeev
    @amaembo
    Хм... ну давай
    А, я понял
    Kirill Tolkachev
    @lavcraft
    лови
    Tagir Valeev
    @amaembo
    Закоммитил фикс, можешь попробовать сейчас
    Kirill Tolkachev
    @lavcraft
    версию поднял плагина?
    или нужно собирать
    Tagir Valeev
    @amaembo
    Не, надо собирать
    Ну если неохота, не собирай :-)
    Kirill Tolkachev
    @lavcraft
    тогда позже..
    Tagir Valeev
    @amaembo
    Ща юниттест попробую нафигачить...
    Kirill Tolkachev
    @lavcraft
    А в чем косяк был:
    ?
    хотя чо я
    посмотреть же можно)
    Tagir Valeev
    @amaembo
    Пока неясно
    Что-то у меня не воспроизводится пока проблема
    Kirill Tolkachev
    @lavcraft
    хм
    ну ок
    Tagir Valeev
    @amaembo
    Кажется, понял, в чём дело
    Сообщение выдалось криво
    Должно быть соответственно Object.wait() и Object.notifyAll()
    Maxim Degtyarev
    @Maccimo
    Синхронайзед на синхронайзеде сидит и синхронайзедом погоняет. Брр.
    Tagir Valeev
    @amaembo
    Варнинг в целом верный. Ну надо очень внимательно смотреть, может ли там рейс произойти
    По-хорошему при notifyAll прямо внутри секции синхронизации надо менять стейт
    А при wait прямо внутри секции проверять стейт
    Если делать это снаружи, то может рейс произойти
    Ну а если всё-таки пользоваться, вот тут правильно, например https://docs.oracle.com/javase/tutorial/essential/concurrency/guardmeth.html
    Стейт меняется внутри синхронизованного блока (здесь - синхронизован весь метод)
    Tagir Valeev
    @amaembo
    В общем-то да, wait/notify легко сломать, лучше не использовать, если не умеешь
    Kirill Tolkachev
    @lavcraft
    там код жесть
    но юзается всегда один поток
    разгребатель и писатель
    ну я и проверил это добро потому что подозрительное
    так
    нада будет тебе пулреквестик кинуть. ЧТобы snapshot зависимости можно было делать