Как стать автором
Обновить
132
0

Пользователь

Отправить сообщение

На Хабре был перевод серии статей на тему JavaFX: https://habr.com/ru/post/474292/

Спасибо большое!

Исправил все тексты кода. Видимо сломалось при копировании. :(

Эта публикация - перевод. Поэтому я не мог добавить что-то.

Если сравнение библиотек отказоустойчивости на JVM интересно читателям Хабра, могу написать свой обзор.

В доке https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAccumulator.html написано:

This class is usually preferable to AtomicLong when multiple threads update a common value that is used for purposes such as collecting statistics, not for fine-grained synchronization control. Under low update contention, the two classes have similar characteristics. But under high contention, expected throughput of this class is significantly higher, at the expense of higher space consumption.

Кратко: эти два класса имеют схожие характеристики. Но при высокой конкуренции ожидаемая пропускная способность этого класса значительно выше.

Здесь https://securityaffairs.co/wordpress/126460/security/unauthenticated-rce-h2-database.html подробнее описан сценарий проникновения без использования консоли:

  1. Many vendors may be running the H2 database, but not running the H2 console. Although there are other vectors to exploit this issue other than the console, these other vectors are context-dependent and less likely to be exposed to remote attackers.

The H2 flaw allows several code paths in the H2 database framework pass unfiltered attacker-controlled URLs to the javax.naming.Context.lookup function. This allows for remote codebase loading, also known as Java code injection or remote code execution.

“Specifically, the org.h2.util.JdbcUtils.getConnection method takes a driver class name and database URL as parameters,” continues the post.“If the driver’s class is assignable to the javax.naming.Context class, the method instantiates an object from it and calls its lookup method.”

Согласен. Самое краткое изложение сути

"Замените spring-boot-dependencies  2.5.2 на 2.5.7."

Но, согласитесь, то же самое можно сказать практически про любую статью об апгрейдах.

Автор оригинальной статьи хотел показать потенциальные проблемы этого апгрейда, для тех, кто раньше не делал этого.

Безусловно для тех, кто это делал многократно, статья не интересна.

Об этом написано в примечании в начале заметки.

Все зависит от версии logback.

В http://mailman.qos.ch/pipermail/logback-user/2021-December/005168.html написано:

We urge you to upgrade to logback 1.2.8 as soon as possible.

Спасибо!

Уже исправлено.

Diamond Operator появился в Java 7. См. Java SE 7 Features and Enhancements.

До Java 9 мы не могли использовать ромбовидный оператор (<>) во внутреннем анонимном классе.

Мне НИЧЕГО НЕ ПЛАТЯТ!!!

В оригинале ошибка. 

Добавил примечание:

Оператор try-with-resources появился в Java 7. См. Java SE 7 Features and Enhancements.

В Java 9 разрешено использовать final переменные в качестве ресурсов в операторе try-with-resources. См. What’s New for the Java Language in JDK 9

Я уже не уверен, что перевод Туториала по JUnit 5 кому-то интересен.

Причины минусов не понятны.

Или просто нужно было объединить все аннотации в одну статью?

Это продолжение туториала по JUnit 5. Введение опубликовано здесь.

Ответ есть здесь: https://stackoverflow.com/questions/46302636/maven-test-and-javaagent-argument

Определите плагин Surefire в своем POM и передайте аргумент JVM через конфигурацию Surefire.

Спасибо! Исправил.

Вычитывал и не "разочек", но пропустил. 

Не хотелось бы работать на корзину.

Да и хейтеры напишут: "Сколько можно про...?"

Если это нужно и кому-то интересно могу сделать перевод цикла.

А эту статью выдернул на пробу, предварительно проверив, что про это на Хабре нет заметок.

Из документации разработчика: https://github.com/lukas-krecan/ShedLock

ShedLock гарантирует, что ваши запланированные задачи выполняются не более одного раза в одно и то же время. Если задача выполняется на одном узле, она получает блокировку, которая предотвращает выполнение той же задачи на другом узле (или потоке). Обратите внимание, что, если одна задача уже выполняется на одном узле, выполнение на других узлах не дожидается ожидания, оно просто пропускается.

ShedLock не является распределенным планировщиком

Обратите внимание, что ShedLock не является и никогда не будет полноценным планировщиком, это просто блокировка. Если вам нужен распределенный планировщик, используйте другой проект. ShedLock разработан для использования в ситуациях, когда у вас есть запланированные задачи, которые не готовы к параллельному выполнению, но могут безопасно выполняться повторно. Более того, блокировки основаны на времени, и ShedLock предполагает, что часы на узлах синхронизированы.

Это вопрос к Alejandro Duarte - автору оригнальной статьи:

https://dzone.com/users/1243843/alejandro.du.html

Я не пробовал.

Если вы разрабатываете на Java, то можно

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность