
Alexander
16.08.2017
20:11:27

Aleksander
16.08.2017
20:12:00
во спс
я ещё не изучил, но мне сказали, что мой вопрос дубликат к этому

Alexander
16.08.2017
20:13:45
т.е на вопрос: почему, ответ - так написано в спеке)

Google

Aleksander
16.08.2017
20:14:32

Baruch
16.08.2017
20:46:01

Anton
16.08.2017
21:15:44
фрейм создаётся при вызове метода, инициализатора или конструктора, блок на это не влияет
скорее всего, это просто usability-штучка в javac, добавленная воизбежание дурацких ошибок любителей не писать скобки для управляющих конструкций

Alexander
16.08.2017
21:20:25

Pavel
16.08.2017
21:22:34
прям в ассемблере? или байткод?

Alexander
16.08.2017
21:25:25

Anton
16.08.2017
21:27:26
ну вобщем то разница есть ?
обычно под ассемблером таки подразумевают, что этот тот самый ассемблер

Alexander
16.08.2017
21:28:08
в такой задаче явно будет лишним, как мне кажется, ковырятся в машинном ассемблере, тут на уровне байткода все понятно

Anton
16.08.2017
21:28:22
https://twitter.com/antonarhipov/status/567951273271685120

Google

Alexander
16.08.2017
21:29:30
чето вспоминил про "тот самый ассемблер" - помню раньше хардкорили с 95/98 маздой, писали 3 байтовые com файлы которые dos'или ядро)
там чето было аля сброс флага прерываний и джамп, чето вроде:
100: cli
101: jmp 100
?
в nt4.0 кажется не работало изза более секурной модели памяти

Pavel
16.08.2017
21:36:41
сейчас перфокарточники подтянутся...

Alexander
16.08.2017
21:50:55
Ребятки,
что думаете?
https://stackoverflow.com/questions/1914898/java-long-running-task-thread-interrupt-vs-cancel-flag
1. не делать таких тяжеловесных циклов внутри треда, посчитали - тут же вышли
2. соблдать детерменированность. задача закончена - выходим, т.е по флагу / условию
3. юзать interrput скорее как мера крайняя, если нет доступа к коду который в треде крутится или если надо дать сигнал из какого-нить C биндинга ну или пусть ось даает эти сигналы это ее ответсвенность.
4. если это io bound задача - лучше вообще через selector делать, чтобы тред не висел в ожидании данных, а тред пусть в режиме producer/consumer polling делает с каналов селектора

Pavel
16.08.2017
21:52:12
io мне кажется удобнее через interrupt разруливать, осталое флаг
очереди через poison pills, как вариант)

Alexander
16.08.2017
21:53:30
Queue q = new LinkedList(); // самый норм вариант ?
ну до 1.5 версии ?

Pavel
16.08.2017
21:56:13
кольцевой буфер на массиве с sync - только правильные советы в этом чате ?

Alexander
16.08.2017
22:00:46
я тут адово велосипедю spring boot + thrift + angular4. ниукого нет нароботок по сабжу? гугл чето молчит

Pavel
16.08.2017
22:26:18

Alexander
17.08.2017
02:52:53
для генерации dto между бэкэндом и мордой

Arrow
17.08.2017
05:08:06
Подскажите как правильно организовать валидацию данных в спринге? Хочу чтобы чисто аннотации только повесить на модели (ну типа Pattern, Min, Max...) и ничего дополнительного в методах контроллера не писать - чтобы если придут невалидные данные возвращалось в json что-то вроде
{
"status": "error",
"errors": [
"error1",
"error2"
]
}А если все успешно то соответственно status: success без ошибок. Можно так сделать как-то? Какой-нибудь глобальный обработчик исключений типа...

Oleg
17.08.2017
05:14:46
обработчик исключений или валидатор всё-таки?

Sergey
17.08.2017
05:15:26
Можно, я могу тебе дать сниппеты
Ну то есть, вообще советую просто посмотреть в исходники jhipster-sample, там есть всё что тебе нужно и будет нужно
Я практически уверен

Google

Sergey
17.08.2017
05:16:11
https://github.com/jhipster/jhipster-sample-app

Arrow
17.08.2017
05:16:26

Sergey
17.08.2017
05:16:37
https://github.com/jhipster/jhipster-sample-app/tree/master/src/main/java/io/github/jhipster/sample/web/rest/errors
Тебе нужна вот эта папочка
Там есть абсолютно всё

Arrow
17.08.2017
05:24:38

Sergey
17.08.2017
05:25:48
А вот это уже ручками, потому что джексон не предлагает энвелоп функционала, заведи wrapper класс и в него передавай резалт, и возвращай из методов ResponseEntity<WrapperClass>

Arrow
17.08.2017
05:25:54
Единственное что приходит в голову - обернуть результат каждого метода в объект
Ну да

Sergey
17.08.2017
05:26:08
Правильно приходит :)

Arrow
17.08.2017
05:37:36

Sergey
17.08.2017
05:37:45
?

Sergey
17.08.2017
05:38:01
Ты когда присылаешь в контроллер модельку
Ты поставил на нее @Valid?

Arrow
17.08.2017
05:38:14
да
но ошибки не возникает
хотя модель не валидная
у меня в отладчике просто заходит в метод контроллера безо всяких ошибок

Sergey
17.08.2017
05:39:13
Гибернейт валидатор подключен в мавене?

Arrow
17.08.2017
05:40:18

Google

S
17.08.2017
05:40:45

Sergey
17.08.2017
05:40:45
Компилировалось, просто у тебя имплементации нет
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>

Arrow
17.08.2017
05:41:05

Sergey
17.08.2017
05:42:51
Ммм, смотри, то чем ты пользуешься для валидации - JSR-303 Bean Validation
Это стандарт, как JPA

Admin
ERROR: S client not available

Arrow
17.08.2017
05:43:13
к слову сказать когда я вешал Valid на DAO и валидировал модельки - то валидация срабатывала

S
17.08.2017
05:43:35
org.springframework.validation.BindingResult validation results for a preceding command or form object (the immediately preceding method argument)
Это объект, которые собирает ошибки валидации. Добавь его на в аргументы контроллера и посмотри что там

Arrow
17.08.2017
05:43:41
но вчера мне сказали что правильнее валидировать вьюхи, а не модельки
вон человек выше дал ссылку на обработчик исключений валидации, вот типа того мне и надо

Sergey
17.08.2017
05:45:13
Это для дебага
Просто допиши в какой нибудь контроллер в аргументы

Arrow
17.08.2017
05:45:26

Sergey
17.08.2017
05:45:34
BindindResult result
И посмотри что в нем

Arrow
17.08.2017
05:46:06
он пустой - нет ошибок

Google

Sergey
17.08.2017
05:46:44
public ResponseEntity<Unit> createUnit(@Valid @RequestBody Unit unit)
Вот пример сигнатуры которая работает

Arrow
17.08.2017
05:47:17
а у меня нет ?

Sergey
17.08.2017
05:49:01
и в моделдетейлвью висят на полях Min Max и тд?

Arrow
17.08.2017
05:49:19
телефон и email специально отправляю невалидные
ошибок нет :(
точнее эти поля не конкретно в этой, а во вложенных модельках, но он же проверяет и вложенные тоже?
так стоп... походу в этом и была проблема... он не валидирует вложенные модели ?
щас попробовал еще невалидные данные на самой верхней сделать
и получилась ошибка
как можно сделать чтоб он валидировал и вложенные модели тоже?

Евгений
17.08.2017
05:59:01
@Valid на поле?

Sergey
17.08.2017
05:59:07
Да

Arrow
17.08.2017
06:08:34
теперь вообще происходит нечто очень странное - у меня не заходит ни в контроллер ни в обработчик исключений, но несмотря на это возвращается сформированный json с ошибкой "java.lang.IllegalStateException"
когда невалидные данные во вложенной модели

Евгений
17.08.2017
06:11:58
Думаю стоит воспользоваться @ControllerAdvice и отловить там IllegalStateException

Arrow
17.08.2017
06:14:14

Евгений
17.08.2017
06:14:31
какой параметр?