-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Labels
Description
The following Exceptions are regular occurrences in the logs and should be caught and replaced by a regular log/warning message instead of dumping a full stack trace.
Note that the handling of these Exceptions in the UI (show error notifying the user) should not change; this story is only about what is written to the log.
-
org.springframework.web.client.HttpServerErrorException$ServiceUnavailable: occurs when pressing push when EB-api is not available (returns 503). Replace by error explaining what the request was and which http status was returned by the server -
org.springframework.web.client.HttpServerErrorException$InternalServerError: occurs when wrong output is pushed to Engine or PDP. Replace by error explaining which request was made and the http status and error that were returned by the remote server. Example trace:
o.a.c.c.C.[.[.[/].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error on PUT request for "https://pdp.surfconext.nl/pdp/api/manage/push": "{"timestamp":"2025-09-30T07:00:22.659+00:00","status":500,"error":"Internal Server Error","exception":"org.springframework.dao.DataIntegrityViolationException","message":"could not execute statement; SQL [n/a]; constraint [pdp_policy_name_revision_unique]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement","path":"/manage/push"}"] with root cause
at org.springframework.web.client.HttpServerErrorException.create(HttpServerErrorException.java:102)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:189)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:147)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:952)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:901)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:800)
at org.springframework.web.client.RestTemplate.put(RestTemplate.java:577)
at manage.control.DatabaseController.doPush(DatabaseController.java:112)
-
org.springframework.web.client.HttpClientErrorException$Forbidden: occurs when PDP returns 403 (weird?!). Replace by regular error xplaining what the request was and which http status was returned by the server.
Example:
org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden on PUT request for "https://pdp.surfconext.nl/pdp/api/manage/push": [no body]
at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:109)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:186)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:147)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:953)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:902)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:801)
at org.springframework.web.client.RestTemplate.put(RestTemplate.java:578)
at manage.control.DatabaseController.doPush(DatabaseController.java:113)
-
org.bson.json.JsonParseException: occurs when entering a faulty string in a search field or the API. Main cause seems to be Full text searching in API leads to unexpected error if"is present in search string #487, so might be gone when that issue is fixed -
org.springframework.dao.OptimisticLockingFailureException. Occurs when an entity is edited in two browser windows at the same time. Replace by warning, explaining which entity was edited and what the proposed change was.
Example:
org.springframework.dao.OptimisticLockingFailureException: Cannot save entity ea408b60-e041-4bc3-9177-0bc4051472ec with version 18 to collection saml20_idp; Has it been modified meanwhile
at org.springframework.data.mongodb.core.MongoTemplate.doSaveVersioned(MongoTemplate.java:1496)
at org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:1459)
at manage.repository.MetaDataRepository.update(MetaDataRepository.java:104)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:727)
at manage.repository.MetaDataRepository$$SpringCGLIB$$0.update(<generated>)
at manage.service.MetaDataService.doPut(MetaDataService.java:246)
at manage.control.MetaDataController.put(MetaDataController.java:230)
-
org.everit.json.schema.InternalValidationException. Doesn't currently produce a stack trace for some reason. Replace by regular error that explains in which operation/document which schema was violated; also put the original input data (json?) in the error.
Cause seems to be this call (saving an entity?):
"POST /manage/api/client/metadata HTTP/1.1" 200 342 "https://manage.surfconext.nl/metadata/provisioning/new/metadata" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0" "145.101.112.196"
Example:
o.a.c.c.C.[.[.[/].[dispatcherServlet]:170 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.everit.json.schema.InternalValidationException: #: 2 schema violations found] with root cause
-
org.everit.json.schema.ValidationException: occurs when a metadtaa validation fails, for example missing required keys, empty revisions, invalid enum fields. Replace by warning describing the validation that failed, including which field, which content was provided, and which entity was involved.
Example:
manage.exception.CustomValidationException: org.everit.json.schema.ValidationException: #/metaDataFields/NameIDFormat: #: only 0 subschema matches out of 2, #/metaDataFields/NameIDFormat: null is not a valid enum value, #/metaDataFields/NameIDFormat: expected >
at manage.conf.MetaDataAutoConfiguration.validate(MetaDataAutoConfiguration.java:95)
at manage.service.MetaDataService.validate(MetaDataService.java:548)
at manage.service.MetaDataService.doPost(MetaDataService.java:193)
26 docker4.prd.utr.surfconext.nl manageserver[847]: #011at manage.control.MetaDataController.postInternal(MetaDataController.java:121)
at manage.control.MetaDataController.postInternal(MetaDataController.java:121)
-
manage.exception.CustomValidationException: also caused by failing internal validations. Why is this excpetion different fromorg.everit.json.schema.ValidationException? Replace by warning describing the validation that failed, including which field, which content was provided, and which entity was involved.
Example:
manage.exception.CustomValidationException: org.everit.json.schema.ValidationException: #/metaDataFields/contacts:2:emailAddress: [ [email protected]] is not a valid email address and not a valid URL, #/metaDataFields/contacts:2:emailAddress: [ [email protected]] is not a valid email address and not a valid URL
at manage.conf.MetaDataAutoConfiguration.validate(MetaDataAutoConfiguration.java:95)
at manage.service.MetaDataService.validate(MetaDataService.java:548)
at manage.service.MetaDataService.doChangeRequest(MetaDataService.java:320)
at manage.control.MetaDataController.changeRequestInternal(MetaDataController.java:318)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Backlog