Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(URGENT) Crash when rendering "Japanese Geodetic Datum 2011" #131

Closed
ronaldtse opened this issue Sep 3, 2020 · 9 comments
Closed

(URGENT) Crash when rendering "Japanese Geodetic Datum 2011" #131

ronaldtse opened this issue Sep 3, 2020 · 9 comments
Assignees
Labels
bug Something isn't working

Comments

@ronaldtse
Copy link
Collaborator

ronaldtse commented Sep 3, 2020

In today's ISO GR Control Body meeting, the following error was observed (triggered by @maccraymer at approval of the datum).

Steps:

  1. Go to https://geodetic.isotc211.org/register/geodetic/GeodeticDatum
  2. Filter for "Japan"

Screen Shot 2020-09-03 at 9 09 10 PM

  1. Click on "Details" for "Japanese Geodetic Datum 2011" entry

It redirects to:
https://geodetic.isotc211.org/item/11842bba-82c2-49bc-83bf-0333aca2cb87
Screen Shot 2020-09-03 at 9 24 34 PM

The full error trace:

HTTP Status 500 – Internal Server Error

Type Exception Report

Message Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "pmi.fromJson('{"aliases":["JGD2011"],"definition":["Japanese Geodetic Datum 2011"],"anchorDefinition":["Equivalent to ITRF2008 at epoch 2011.395 (2011-05-24, 12:00 UTC) in Northern Honshu area. Fundamental point: Tokyo-Taisho, latitude: 35°39'29.1572\"N, longitude: 139°44'28.8869\"E (of Greenwich). Equivalent to JGD2000 elsewhere."]}')" (registry/item:212)

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "pmi.fromJson('{"aliases":["JGD2011"],"definition":["Japanese Geodetic Datum 2011"],"anchorDefinition":["Equivalent to ITRF2008 at epoch 2011.395 (2011-05-24, 12:00 UTC) in Northern Honshu area. Fundamental point: Tokyo-Taisho, latitude: 35°39'29.1572\"N, longitude: 139°44'28.8869\"E (of Greenwich). Equivalent to JGD2000 elsewhere."]}')" (registry/item:212)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	de.geoinfoffm.registry.client.web.recaptcha.ReCaptchaResponseFilter.doFilter(ReCaptchaResponseFilter.java:37)
	org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:178)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:121)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
Root Cause

org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "pmi.fromJson('{"aliases":["JGD2011"],"definition":["Japanese Geodetic Datum 2011"],"anchorDefinition":["Equivalent to ITRF2008 at epoch 2011.395 (2011-05-24, 12:00 UTC) in Northern Honshu area. Fundamental point: Tokyo-Taisho, latitude: 35°39'29.1572\"N, longitude: 139°44'28.8869\"E (of Greenwich). Equivalent to JGD2000 elsewhere."]}')" (registry/item:212)
	org.thymeleaf.spring4.expression.SpelVariableExpressionEvaluator.evaluate(SpelVariableExpressionEvaluator.java:161)
	org.thymeleaf.standard.expression.VariableExpression.executeVariable(VariableExpression.java:149)
	org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:59)
	org.thymeleaf.standard.expression.Expression.execute(Expression.java:103)
	org.thymeleaf.standard.expression.Expression.execute(Expression.java:133)
	org.thymeleaf.standard.expression.Expression.execute(Expression.java:120)
	org.thymeleaf.standard.processor.attr.AbstractStandardIterationAttrProcessor.getIterationSpec(AbstractStandardIterationAttrProcessor.java:86)
	org.thymeleaf.processor.attr.AbstractIterationAttrProcessor.processAttribute(AbstractIterationAttrProcessor.java:101)
	org.thymeleaf.processor.attr.AbstractAttrProcessor.doProcess(AbstractAttrProcessor.java:87)
	org.thymeleaf.processor.AbstractProcessor.process(AbstractProcessor.java:212)
	org.thymeleaf.dom.Node.applyNextProcessor(Node.java:1016)
	org.thymeleaf.dom.Node.processNode(Node.java:971)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.Document.process(Document.java:93)
	org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1155)
	org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060)
	org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011)
	org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335)
	org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:190)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
	org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	de.geoinfoffm.registry.client.web.recaptcha.ReCaptchaResponseFilter.doFilter(ReCaptchaResponseFilter.java:37)
	org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:178)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:121)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
Root Cause

org.springframework.expression.spel.SpelParseException: Expression [pmi.fromJson('{"aliases":["JGD2011"],"definition":["Japanese Geodetic Datum 2011"],"anchorDefinition":["Equivalent to ITRF2008 at epoch 2011.395 (2011-05-24, 12:00 UTC) in Northern Honshu area. Fundamental point: Tokyo-Taisho, latitude: 35°39'29.1572\"N, longitude: 139°44'28.8869\"E (of Greenwich). Equivalent to JGD2000 elsewhere."]}')] @250: EL1065E: Unexpected escape character
	org.springframework.expression.spel.standard.Tokenizer.raiseParseException(Tokenizer.java:590)
	org.springframework.expression.spel.standard.Tokenizer.process(Tokenizer.java:265)
	org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:123)
	org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:60)
	org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:32)
	org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:73)
	org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:60)
	org.thymeleaf.spring4.expression.SpelVariableExpressionEvaluator.getExpression(SpelVariableExpressionEvaluator.java:182)
	org.thymeleaf.spring4.expression.SpelVariableExpressionEvaluator.evaluate(SpelVariableExpressionEvaluator.java:129)
	org.thymeleaf.standard.expression.VariableExpression.executeVariable(VariableExpression.java:149)
	org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:59)
	org.thymeleaf.standard.expression.Expression.execute(Expression.java:103)
	org.thymeleaf.standard.expression.Expression.execute(Expression.java:133)
	org.thymeleaf.standard.expression.Expression.execute(Expression.java:120)
	org.thymeleaf.standard.processor.attr.AbstractStandardIterationAttrProcessor.getIterationSpec(AbstractStandardIterationAttrProcessor.java:86)
	org.thymeleaf.processor.attr.AbstractIterationAttrProcessor.processAttribute(AbstractIterationAttrProcessor.java:101)
	org.thymeleaf.processor.attr.AbstractAttrProcessor.doProcess(AbstractAttrProcessor.java:87)
	org.thymeleaf.processor.AbstractProcessor.process(AbstractProcessor.java:212)
	org.thymeleaf.dom.Node.applyNextProcessor(Node.java:1016)
	org.thymeleaf.dom.Node.processNode(Node.java:971)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:672)
	org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:655)
	org.thymeleaf.dom.Node.processNode(Node.java:990)
	org.thymeleaf.dom.Document.process(Document.java:93)
	org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1155)
	org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060)
	org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011)
	org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335)
	org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:190)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
	org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	de.geoinfoffm.registry.client.web.recaptcha.ReCaptchaResponseFilter.doFilter(ReCaptchaResponseFilter.java:37)
	org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:178)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:121)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
@ronaldtse ronaldtse added the bug Something isn't working label Sep 3, 2020
@ronaldtse
Copy link
Collaborator Author

Looks like the exact error is:

Exception evaluating SpringEL expression: "pmi.fromJson('{"aliases":["JGD2011"],"definition":["Japanese Geodetic Datum 2011"],"anchorDefinition":["Equivalent to ITRF2008 at epoch 2011.395 (2011-05-24, 12:00 UTC) in Northern Honshu area. Fundamental point: Tokyo-Taisho, latitude: 35°39'29.1572"N, longitude: 139°44'28.8869"E (of Greenwich). Equivalent to JGD2000 elsewhere."]}')" (registry/item:212)

i.e. This message is not valid JSON:

{
  "aliases": [
    "JGD2011"
  ],
  "definition": [
    "Japanese Geodetic Datum 2011"
  ],
  "anchorDefinition": [
    "Equivalent to ITRF2008 at epoch 2011.395 (2011-05-24, 12:00 UTC) in Northern Honshu area. Fundamental point: Tokyo-Taisho, latitude: 35°39'29.1572\"N, longitude: 139°44'28.8869\"E (of Greenwich). Equivalent to JGD2000 elsewhere."
  ]
}

Maybe it's the \"N and \"E causing the crash.

@ronaldtse
Copy link
Collaborator Author

@phuonghuynh The immediate way to fix this is to fix the data.

However we want to fix the mechanism so that this doesn't occur again. This piece of JSON looks like to be generated and then re-parsed as JSON, and there's something wrong with the escaping mechanism here.

@maccraymer
Copy link

Are the the "N and "E present in the anchorDefinition for the JGD2000 entry (item #111). That entry doesn't crash. Both of these entries were imported via the spreadsheet.

Some further testing...

  1. The staging registry gives the same error for JGD2011 (item 138 in both registries). I noticed that when the item is submitted to the Control Body, the Details button displays the entry properly (the entry is displayed as it would be for a general user).

  2. Also in the staging registry, I replaced the deg-min-sec symbols with hyphens in the anchor definition but the item still gives the display error.

  3. In the staging registry, I removed the lat & lon from the anchor definition and the item still gives the display error.

  4. In the staging registry, I removed the anchor definition entirely and the item still gives the display error.

  5. In the staging registry, I invalidated the original item 138 and re-entered/replaced it with a new identical item 742. The new item 742 displays properly. Interestingly, when the invalidation proposal was submitted to the Registry Manager, the Details button in the Registry Manager's folder gives a display error (it didn't for Clarification action). The same occurred when submitted to the Control Body when selecting the Details button in that folder.

So it appears the anchor definition is not the problem and that there might be something else wrong with the original database entry? In any case, this can be resolved by invalidating the old item and replacing it with a new identical one.

@phuonghuynh
Copy link
Contributor

Interesting issue ^

@ronaldtse
Copy link
Collaborator Author

From @phuonghuynh:

still investigating it, look like the issue related to importing data. It is not json parser related

@phuonghuynh
Copy link
Contributor

@ronaldtse the fix has been deployed to prod server

@ronaldtse
Copy link
Collaborator Author

Thanks @phuonghuynh ! I can see the page now loads properly.

@maccraymer can you help verify? Thanks!

@maccraymer
Copy link

@ronaldtse & @phuonghuynh thanks for fixing this right away!! The page loads proper now on my iPhone, iPad, Mac mini and MacBook all using Safari & Chrome, and on my office Windoze desktop using Internet Exploder & Chrome.

@phuonghuynh just out of curiousity, what was causing the problem and how did you fix it?

@phuonghuynh
Copy link
Contributor

@maccraymer Spring EL evaluator failed to parse the data return in this case, special characters not supported in the framework. To fix it, I moved the function into java code to remove Spring EL processing for this case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants