Что может вызвать исключение проверки HV000028? - PullRequest
0 голосов
/ 02 июля 2018

Приложение может сохранять пользователей, которые могут быть изменены позже. В последнее время пользователь не мог быть изменен, и было выдано исключение HV000028. Пользовательский объект был сохранен без ошибок или проверки. У кого-то есть идея, что могло вызвать такое поведение или как я мог узнать больше деталей?

2018-06-29 13:40:29,612 INFO  [stdout] (default task-48) Caused by: javax.validation.ValidationException: HV000028: Unexpected exception during isValid call.
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateSingleConstraint(ConstraintTree.java:451)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:127)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:87)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:73)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:592)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:555)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:490)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:454)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:406)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:204)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:253)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at sun.reflect.GeneratedMethodAccessor427.invoke(Unknown Source)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2018-06-29 13:40:29,612 INFO  [stdout] (default task-48)        at java.lang.reflect.Method.invoke(Method.java:498)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:507)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at com.sun.proxy.$Proxy287.validate(Unknown Source)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at ch.lmv.ulm.web.page.template.BasePanel.doCompleteJSR303Validation(BasePanel.java:65)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at ch.lmv.ulm.web.page.template.BasePanel.doCompleteJSR303Validation(BasePanel.java:49)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at ch.lmv.ulm.web.page.person.EditPersonPanel$7.onSubmit(EditPersonPanel.java:420)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at org.apache.wicket.markup.html.form.Form.process(Form.java:974)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48)        ... 82 more
2018-06-29 13:40:29,613 INFO  [stdout] (default task-48) Caused by: java.lang.NullPointerException

1 Ответ

0 голосов
/ 02 июля 2018

Из вашей трассировки стека не удалось выполнить проверку для некоторого исключения NullPointerException, но оно находится в последней строке. Вы должны были опубликовать полную трассировку стека.

Также обратите внимание, что это не Hibernate (ORM), который вызвал исключение, а Hibernate Validator, который является совершенно другой вещью.

Этот валидатор имеет серию проверок, выполненных для входного объекта, который вызывается из калитки, см .: ch.lmv.ulm.web.page.template.BasePanel.doCompleteJSR303Validation.

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

В правильной конфигурации исключение с трассировкой стека должно быть напечатано в виде многострочной строки (одно сообщение INFO), а не в виде серии сообщений (у вас есть INFO в каждой строке, и это неправильно).

Правильный способ вызова журнала (например, в фреймворке slf4j) должен быть:

try {
   ... execute validation code
}catch (<SomeKindOfValidationExceptionYouExpectToGet> ex) {
   logger.error("Failed to validate <or better message>", ex); 
}

Обратите внимание, что здесь вы передаете исключение в качестве дополнительного параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...