"status": 500,
"error": "Internal Server Error",
"message": "PersistenceException",
"path": "/api/bookinglegs/47449a96-a63f-40d0-9111-9d84eb1530ef/history",
"code": "internal_server_error"
Журналы:
2024-09-15T12:35:38.808Z INFO 1 --- [io-8080-exec-14] d.m.s.c.e.h.CommonGlobalExceptionHandler : Request Failed: ErrorResponseDto{status=500, error='Internal Server Error', message='PersistenceException', path='/api/bookinglegs/d47804d2-a929-4242-88ce-0c46417d6e84/history', c o d e = ' i n t e r n a l _ s e r v e r _ e r r o r ' } < b r / > j a v a . b a s e / j a v a . l a n g . T h r e a d . r u n ( T h r e a d . j a v a : 8 3 3 ) < b r / > o r g . a p a c h e . t o m c a t . u t i l . t h r e a d s . T a s k T h r e a d $ W r a p p i n g R u n n a b l e . r u n ( T a s k T h r e a d . j a v a : 6 1 ) < b r / > o r g . a p a c h e . t o m c a t . u t i l . t h r e a d s . T h r e a d P o o l E x e c u t o r $ W o r k e r . r u n ( T h r e a d P o o l E x e c u t o r . j a v a : 6 5 9 ) < b r / > o r g . a p a c h e . t o m c a t . u t i l . t h r e a d s . T h r e a d P o o l E x e c u t o r . r u n W o r k e r ( T h r e a d P o o l E x e c u t o r . j a v a : 1 1 9 1 ) < b r / > o r g . a p a c h e . t o m c a t . u t i l . n e t . S o c k e t P r o c e s s o r B a s e . r u n ( S o c k e t P r o c e s s o r B a s e . j a v a : 5 2 ) < b r / > o r g . a p a c h e . t o m c a t . u t i l . n e t . N i o E n d p o i n t $ S o c k e t P r o c e s s o r . d o R u n ( N i o E n d p o i n t . j a v a : 1 7 3 9 ) < b r / > o r g . a p a c h e . c o y o t e . A b s t r a c t P r o t o c o l $ C o n n e c t i o n H a n d l e r . p r o c e s s ( A b s t r a c t P r o t o c o l . j a v a : 8 6 1 ) < b r / > o r g . a p a c h e . c o y o t e . A b s t r a c t P r o c e s s o r L i g h t . p r o c e s s ( A b s t r a c t P r o c e s s o r L i g h t . j a v a : 6 5 ) < b r / > o r g . a p a c h e . c o y o t e . h t t p 1 1 . H t t p 1 1 P r o c e s s o r . s e r v i c e ( H t t p 1 1 P r o c e s s o r . j a v a : 4 0 0 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o n n e c t o r . C o y o t e A d a p t e r . s e r v i c e ( C o y o t e A d a p t e r . j a v a : 3 5 7 ) < b r / > o r g . a p a c h e . c a t a l i n a . v a l v e s . R e m o t e I p V a l v e . i n v o k e ( R e m o t e I p V a l v e . j a v a : 7 4 1 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . S t a n d a r d E n g i n e V a l v e . i n v o k e ( S t a n d a r d E n g i n e V a l v e . j a v a : 7 8 ) < b r / > o r g . a p a c h e . c a t a l i n a . v a l v e s . E r r o r R e p o r t V a l v e . i n v o k e ( E r r o r R e p o r t V a l v e . j a v a : 9 2 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . S t a n d a r d H o s t V a l v e . i n v o k e ( S t a n d a r d H o s t V a l v e . j a v a : 1 1 9 ) < b r / > o r g . a p a c h e . c a t a l i n a . a u t h e n t i c a t o r . A u t h e n t i c a t o r B a s e . i n v o k e ( A u t h e n t i c a t o r B a s e . j a v a : 5 4 2 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . S t a n d a r d C o n t e x t V a l v e . i n v o k e ( S t a n d a r d C o n t e x t V a l v e . j a v a : 9 7 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . S t a n d a r d W r a p p e r V a l v e . i n v o k e ( S t a n d a r d W r a p p e r V a l v e . j a v a : 1 9 7 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 5 8 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 8 5 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > i o . s e n t r y . s p r i n g . j a k a r t a . S e n t r y S p r i n g F i l t e r . d o F i l t e r I n t e r n a l ( S e n t r y S p r i n g F i l t e r . j a v a : 7 1 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 5 8 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 8 5 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . C h a r a c t e r E n c o d i n g F i l t e r . d o F i l t e r I n t e r n a l ( C h a r a c t e r E n c o d i n g F i l t e r . j a v a : 2 0 1 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 5 8 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 8 5 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > i o . s e n t r y . s p r i n g . j a k a r t a . t r a c i n g . S e n t r y T r a c i n g F i l t e r . d o F i l t e r I n t e r n a l ( S e n t r y T r a c i n g F i l t e r . j a v a : 8 7 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 5 8 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 8 5 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . F o r m C o n t e n t F i l t e r . d o F i l t e r I n t e r n a l ( F o r m C o n t e n t F i l t e r . j a v a : 9 3 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 5 8 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 8 5 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . R e q u e s t C o n t e x t F i l t e r . d o F i l t e r I n t e r n a l ( R e q u e s t C o n t e x t F i l t e r . j a v a : 1 0 0 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 5 8 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 8 5 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . D e l e g a t i n g F i l t e r P r o x y . d o F i l t e r ( D e l e g a t i n g F i l t e r P r o x y . j a v a : 2 6 7 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . D e l e g a t i n g F i l t e r P r o x y . i n v o k e D e l e g a t e ( D e l e g a t i n g F i l t e r P r o x y . j a v a : 3 5 1 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 1 9 1 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y . d o F i l t e r I n t e r n a l ( F i l t e r C h a i n P r o x y . j a v a : 2 3 3 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e s s i o n . D i s a b l e E n c o d e U r l F i l t e r . d o F i l t e r I n t e r n a l ( D i s a b l e E n c o d e U r l F i l t e r . j a v a : 4 2 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . c o n t e x t . r e q u e s t . a s y n c . W e b A s y n c M a n a g e r I n t e g r a t i o n F i l t e r . d o F i l t e r I n t e r n a l ( W e b A s y n c M a n a g e r I n t e g r a t i o n F i l t e r . j a v a : 6 2 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . c o n t e x t . S e c u r i t y C o n t e x t H o l d e r F i l t e r . d o F i l t e r I n t e r n a l ( S e c u r i t y C o n t e x t H o l d e r F i l t e r . j a v a : 6 9 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . h e a d e r . H e a d e r W r i t e r F i l t e r . d o F i l t e r I n t e r n a l ( H e a d e r W r i t e r F i l t e r . j a v a : 7 5 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . h e a d e r . H e a d e r W r i t e r F i l t e r . d o H e a d e r s A f t e r ( H e a d e r W r i t e r F i l t e r . j a v a : 9 0 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . C o r s F i l t e r . d o F i l t e r I n t e r n a l ( C o r s F i l t e r . j a v a : 9 1 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a u t h e n t i c a t i o n . l o g o u t . L o g o u t F i l t e r . d o F i l t e r ( L o g o u t F i l t e r . j a v a : 9 3 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a u t h e n t i c a t i o n . l o g o u t . L o g o u t F i l t e r . d o F i l t e r ( L o g o u t F i l t e r . j a v a : 1 0 7 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > d e . m o p l a . s e r v e r . s e c u r i t y . f i l t e r . F i r e b a s e S e c u r i t y F i l t e r . d o F i l t e r I n t e r n a l ( F i r e b a s e S e c u r i t y F i l t e r . j a v a : 1 4 3 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s a v e d r e q u e s t . R e q u e s t C a c h e A w a r e F i l t e r . d o F i l t e r ( R e q u e s t C a c h e A w a r e F i l t e r . j a v a : 6 3 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e r v l e t a p i . S e c u r i t y C o n t e x t H o l d e r A w a r e R e q u e s t F i l t e r . d o F i l t e r ( S e c u r i t y C o n t e x t H o l d e r A w a r e R e q u e s t F i l t e r . j a v a : 1 7 9 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a u t h e n t i c a t i o n . A n o n y m o u s A u t h e n t i c a t i o n F i l t e r . d o F i l t e r ( A n o n y m o u s A u t h e n t i c a t i o n F i l t e r . j a v a : 1 0 0 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . E x c e p t i o n T r a n s l a t i o n F i l t e r . d o F i l t e r ( E x c e p t i o n T r a n s l a t i o n F i l t e r . j a v a : 1 2 0 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . E x c e p t i o n T r a n s l a t i o n F i l t e r . d o F i l t e r ( E x c e p t i o n T r a n s l a t i o n F i l t e r . j a v a : 1 2 6 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 7 4 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . i n t e r c e p t . A u t h o r i z a t i o n F i l t e r . d o F i l t e r ( A u t h o r i z a t i o n F i l t e r . j a v a : 1 0 0 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 6 5 ) < b r / > o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y . l a m b d a $ d o F i l t e r I n t e r n a l $ 3 ( F i l t e r C h a i n P r o x y . j a v a : 2 3 1 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 5 8 ) < b r / > o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 8 5 ) < b r / > o r g . s p r i n g f r a m e w o r k . w e b . f i l t e r . O n c e P e r R e q u e s t F i l t e r . d o F i l t e r ( O n c e P e r R e q u e s t F i l t e r . j a v a : 1 1 6 ) < b r / > i o . s e n t r y . s p r i n g . j a k a r t a . S e n t r y U s e r F i l t e r . d o F i l t e r I n t e r n a l ( S entryUserFilter.java:56)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
de.mopla.server.security.filter.ResponseAddAllowMethodsHeaderFilter.doFilter(ResponseAddAllowMethodsHeaderFilter.java:30)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:223)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:814)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:880)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:705)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:895)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1003)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:973)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1080)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
java.base/java.lang.reflect.Method.invoke(Method.java:568)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jdk.internal.reflect.GeneratedMethodAccessor478.invoke(Unknown Source)
de.mopla.server.core.restcontroller.HistoryRestController$$SpringCGLIB$$0.getBookingLegHistory()
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:752)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor.invoke(AuthorizationManagerBeforeMethodInterceptor.java:199)
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:752)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
java.base/java.lang.reflect.Method.invoke(Method.java:568)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jdk.internal.reflect.GeneratedMethodAccessor478.invoke(Unknown Source)
de.mopla.server.core.restcontroller.HistoryRestController.getBookingLegHistory(HistoryRestController.java:26)
de.mopla.server.core.services.HistoryService.getHistoryForEntity(HistoryService.java:43)
org.hibernate.envers.query.internal.impl.AbstractAuditQuery.getResultList(AbstractAuditQuery.java:115)
org.hibernate.envers.query.internal.impl.RevisionsOfEntityQuery.list(RevisionsOfEntityQuery.java:179)
org.hibernate.envers.query.internal.impl.RevisionsOfEntityQuery.getQueryResults(RevisionsOfEntityQuery.java:211)
org.hibernate.envers.query.internal.impl.AbstractAuditQuery.buildAndExecuteQuery(AbstractAuditQuery.java:109)
org.hibernate.query.sqm.internal.QuerySqmImpl.list(QuerySqmImpl.java:1032)
org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:374)
org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:165)
2024-09-15T12:35:38.808Z ERROR 1 --- [io-8080-exec-14] d.m.s.c.e.h.CommonGlobalExceptionHandler : PersistenceException with message 'Converting `org.hibernate.exception.GenericJDBCException` to JPA `PersistenceException` : could not prepare statement' and stack trace:
2024-09-15T12:35:38.807Z INFO 1 --- [io-8080-exec-14] d.m.s.c.e.h.CommonGlobalExceptionHandler : No separate exception handler for class jakarta.persistence.PersistenceException, return the default response
2024-09-15T12:35:38.805Z ERROR 1 --- [io-8080-exec-14] o.h.engine.jdbc.spi.SqlExceptionHelper : Connection is closed
2024-09-15T12:35:38.805Z WARN 1 --- [io-8080-exec-14] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: null
Перезапуск модуля k8s помогает
код:
@Slf4j
@RestController
public class HistoryRestController {
@Autowired
private HistoryService historyService;
@GetMapping("/api/bookinglegs/{uuid}/history")
@PreAuthorize("hasAuthority('PRIV_CAN_READ_HISTORY')")
public List getBookingLegHistory(@PathVariable UUID uuid) {
return historyService.getHistoryForEntity(BookingLegEntity.class, uuid);
}
}
@Slf4j
@Service
public class HistoryService {
@Autowired
private AuditReader auditReader;
@Autowired
private UserRepository userRepository;
@SuppressWarnings("unchecked")
@NotNull
public List getHistoryForEntity(Class entityClass, UUID uuid) {
List auditDataBookingLeg = auditReader.createQuery()
.forRevisionsOfEntityWithChanges(entityClass, true)
.add(AuditEntity.id().eq(uuid))
.addOrder(AuditEntity.revisionProperty("timestamp").asc())
.getResultList();
// mapping the result to HistoryDto
// ...
}
}
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED, withModifiedFlag = true)
@Getter
@Entity
@NamedEntityGraphs({
@NamedEntityGraph(name = "bookingLegEntityWithPassengers", attributeNodes = @NamedAttributeNode("passengerList"))
})
@Table(name = "BOOKING_LEGS",
indexes = {
@Index(name = "idx_distributor", columnList = "distributor")
})
@SQLDelete(sql = "UPDATE BOOKING_LEGS SET deleted = true WHERE id=?")
@Where(clause = "deleted=false or deleted is null")
public class BookingLegEntity {
@Id
@Column(name = "ID", unique = true, updatable = false)
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
// it is important to not use CascadeType.Merge here: if we store booking-legs after scheduling,
// we do not want to change anything related to the booking-entity (e.g. payment states that have been changed by
// the user while scheduling was happening)
// it is important to not use CascadeType.All: deletion should not be cascaded
@ManyToOne(cascade = {CascadeType.PERSIST}, fetch = FetchType.LAZY)
@JoinColumn(name = "BELONGS_TO")
private BookingEntity belongsTo;
// stores the sequence info within a booking with multiple legs
@NotAudited
@Column(name = "SORTING")
private int sorting;
@NotAudited
@Type(JsonBinaryType.class)
@Column(name = "FROM_LOCATION", columnDefinition = "JSONB")
private Location from;
@NotAudited
@Type(JsonBinaryType.class)
@Column(name = "TO_LOCATION", columnDefinition = "JSONB")
private Location to;
@NotAudited
@Column(name = "ORIGINAL_START_TIMEWINDOW_START")
private Instant originalStartTimewindowStart;
@NotAudited
@Column(name = "ORIGINAL_START_TIMEWINDOW_END")
private Instant originalStartTimewindowEnd;
@NotAudited
@Column(name = "ORIGINAL_END_TIMEWINDOW_START")
private Instant originalEndTimewindowStart;
@NotAudited
@Column(name = "ORIGINAL_END_TIMEWINDOW_END")
private Instant originalEndTimewindowEnd;
@NotAudited
@Column(name = "START_TIMEWINDOW_START")
@Convert(converter = InstantTimestampConverter.class)
private Instant startTimewindowStart;
@NotAudited
@Column(name = "START_TIMEWINDOW_END")
@Convert(converter = InstantTimestampConverter.class)
private Instant startTimewindowEnd;
@NotAudited
@Column(name = "END_TIMEWINDOW_START")
@Convert(converter = InstantTimestampConverter.class)
private Instant endTimewindowStart;
@NotAudited
@Column(name = "END_TIMEWINDOW_END")
@Convert(converter = InstantTimestampConverter.class)
private Instant endTimewindowEnd;
@NotAudited
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DISTRIBUTOR")
private DistributorEntity distributor;
@NotAudited
@Column(name = "TRANSPORT_TYPE")
@Convert(converter = TripTypeEnumConverter.class)
private TripTypeEnum transportType;
@NotAudited
@Column(name = "ROUTE_NAME")
private String routeName; // "route" in gtfs file
@NotAudited
@Column(name = "TRIP_NAME")
private String tripName; // "shortTripName" in gtfs file
@Getter
@NotAudited
@Column(name = "AGENCY_NAME")
private String agencyName; // "agencyName" in gtfs file
@Getter
@ManyToOne(fetch = FetchType.LAZY)
// do not cascade here, we save booking-legs and scheduled-legs separately after scheduling (easier to handle since they are connected with each other)
@JoinColumn(name = "GET_ON")
private ScheduledLegEntity getOn;
@Getter
@NotAudited
@ManyToOne(fetch = FetchType.LAZY)
// do not cascade here, we save booking-legs and scheduled-legs separately after scheduling (easier to handle since they are connected with each other)
@JoinColumn(name = "GET_OFF")
private ScheduledLegEntity getOff;
/**
* -- GETTER --
* The scheduling state of this booking-leg.
*
*
- *
- NEW: this booking-leg has not been scheduled yet *
- SCHEDULED_AUTOMATICALLY: this booking-leg was scheduled automatically *
- SCHEDULED_MANUALLY: this booking-leg was scheduled/assigned manually *
- FAILED_TO_SCHEDULE: the last try to schedule this booking-leg has failed.
*
@Column(name = "SCHEDULING_STATE")
@Convert(converter = SchedulingStateEnumConverter.class)
private SchedulingStateEnum schedulingState = SchedulingStateEnum.NEW;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CREATED_BY")
private RecurringManualBookingLegEntity createdBy;
@NotAudited
@Column(name = "TITLE")
@Convert(converter = TitleNullableConverter.class)
private Title title;
@Column(name = "DRIVER_NOTICE")
@Convert(converter = DriverNoticeNullableConverter.class)
private DriverNotice driverNotice;
@Column(name = "BOOKING_NOTICE")
@Convert(converter = BookingNoticeNullableConverter.class)
private BookingNotice bookingNotice;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MANUALLY_ASSIGNED_TO")
private AssignmentEntity manuallyAssignedTo;
@Enumerated(EnumType.STRING)
@Column(name = "CHECK_IN_STATE")
private CheckInStateEnum checkInState = CheckInStateEnum.NEW;
@NotAudited
@Column(name = "SCHEDULER_KEY")
@Convert(converter = ObjectConverter.class)
private SchedulerKey schedulerKey;
@Column(name = "PAYMENT_AMOUNT")
private Integer paymentAmount;
@Setter
@Column(name = "CANCELLATION_FEE_AMOUNT")
private Integer cancellationFeeAmount;
@Setter
@Column(name = "CANCELLATION_FEE_REASON")
@Convert(converter = CancellationFeeReasonEnumConverter.class)
private CancellationFeeReasonEnum cancellationFeeReason = CancellationFeeReasonEnum.NOT_CANCELLED;
/**
* Once the scheduling has decided on a time for the trip, we check if this changes the price of the trip.
* The trip can only become cheaper. If a cheaper price is decided, it is stored as an overwritten payment amount.
*/
@Column(name = "OVERWRITTEN_PAYMENT_AMOUNT")
private Integer overwrittenPaymentAmount;
@Column(name = "PAYMENT_CURRENCY_CODE")
@Convert(converter = CurrencyCodeConverter.class)
private CurrencyCodeEnum currencyCode;
@Column(name = "PAYMENT_FORM")
@Convert(converter = PaymentFormConverter.class)
private PaymentFormEnum paymentForm;
@Enumerated(EnumType.STRING)
@Column(name = "PAYMENT_STATE")
private PaymentStateEnum paymentState = PaymentStateEnum.TO_PAY;
@NotAudited
@Column(name = "INVOICE_ID")
@Convert(converter = StripeInvoiceIdConverter.class)
private StripeInvoiceId invoiceId;
@NotAudited
@Column(name = "PAYMENT_ID")
@Convert(converter = StripePaymentIdConverter.class)
private StripePaymentId paymentId;
@Type(JsonBinaryType.class)
@Column(name = "START_TRIP_LOCATION", columnDefinition = "JSONB")
private Location startTripLocation;
@Type(JsonBinaryType.class)
@Column(name = "END_TRIP_LOCATION", columnDefinition = "JSONB")
private Location endTripLocation;
// TODO: MC-5293, should be replaced as cancellationLocation
@Deprecated(forRemoval = true)
@Type(JsonBinaryType.class)
@Column(name = "NO_SHOW_LOCATION", columnDefinition = "JSONB")
private Location noShowLocation;
@Type(JsonBinaryType.class)
@Column(name = "CANCELLATION_LOCATION", columnDefinition = "JSONB")
private Location cancellationLocation;
@CreationTimestamp
@Column(name = "CREATED_TIME")
@Audited(withModifiedFlag = true, modifiedColumnName = "created_time_mod")
private Timestamp creationTimestamp;
@UpdateTimestamp
@NotAudited
@Column(name = "UPDATED_TIME")
private Timestamp updateTimestamp;
@NotAudited
@Column(name = "DELETED")
private boolean deleted;
@NotAudited
@Type(JsonBinaryType.class)
@Column(name = "METADATA", columnDefinition = "JSONB DEFAULT '{}'", nullable = false)
private Map metadata = new HashMap();
@NotAudited
@OneToOne
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "RESERVATION_ID")
private PrivateTripReservationEntity reservation;
/**
* The zone this booking leg was originally created in
* Prefer using this zone for calculating pricing if multiple zones are available
*/
@NotAudited
@ManyToOne
@JoinColumn(name = "PREFERRED_ZONE_ID")
private ZoneEntity preferredZone;
@OneToMany(mappedBy = "bookingLeg", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set passengerList = new HashSet();
@NotAudited
@Column(name = "SPECIAL_NEEDS")
@Convert(converter = SpecialNeedsConverter.class)
private SpecialNeedsEnum specialNeeds;
исключение возникает в
.getResultList();
Подробнее здесь: https://stackoverflow.com/questions/790 ... eexception