Upgrade from 14.4.8 -> 14.5.3 production mode problem

java.lang.IllegalArgumentException: Unable to create an instance of 'com.mycompany.abc.ui.LoginView'. The constructor threw an exception.
	at com.vaadin.flow.internal.ReflectTools.createProxyInstance(ReflectTools.java:512)
	at com.vaadin.flow.internal.ReflectTools.createInstance(ReflectTools.java:449)
	at com.vaadin.flow.di.DefaultInstantiator.create(DefaultInstantiator.java:137)
	at com.vaadin.flow.di.DefaultInstantiator.getOrCreate(DefaultInstantiator.java:66)
	at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:160)
	at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:137)
	at java.util.Optional.orElseGet(Optional.java:267)
	at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:136)
	at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEventAndPopulateChain(AbstractNavigationStateRenderer.java:525)
	at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.createChainIfEmptyAndExecuteBeforeEnterNavigation(AbstractNavigationStateRenderer.java:505)
	at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:222)
	at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.reroute(AbstractNavigationStateRenderer.java:733)
	at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handleTransactionOutcome(AbstractNavigationStateRenderer.java:373)
	at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:226)
	at com.vaadin.flow.router.internal.ErrorStateRenderer.handle(ErrorStateRenderer.java:103)
	at com.vaadin.flow.router.Router.handleExceptionNavigation(Router.java:287)
	at com.vaadin.flow.router.Router.navigate(Router.java:222)
	at com.vaadin.flow.router.Router.navigate(Router.java:186)
	at com.vaadin.flow.router.Router.initializeUI(Router.java:93)
	at com.vaadin.flow.server.BootstrapHandler.initializeUIWithRouter(BootstrapHandler.java:1532)
	at com.vaadin.flow.server.BootstrapHandler.createAndInitUI(BootstrapHandler.java:1525)
	at com.vaadin.flow.server.BootstrapHandler.synchronizedHandleRequest(BootstrapHandler.java:475)
	at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
	at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1547)
	at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:247)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:353)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:616)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1629)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.vaadin.flow.internal.ReflectTools.createProxyInstance(ReflectTools.java:481)
	... 56 more
Caused by: elemental.json.JsonException: 
	at elemental.json.impl.JsonTokenizer.nextString(JsonTokenizer.java:112)
	at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:171)
	at elemental.json.impl.JsonTokenizer.parseObject(JsonTokenizer.java:231)
	at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:173)
	at elemental.json.impl.JsonTokenizer.parseArray(JsonTokenizer.java:192)
	at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:175)
	at elemental.json.impl.JsonTokenizer.parseObject(JsonTokenizer.java:231)
	at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:173)
	at elemental.json.impl.JsonTokenizer.parseArray(JsonTokenizer.java:192)
	at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:175)
	at elemental.json.impl.JsonTokenizer.parseObject(JsonTokenizer.java:231)
	at elemental.json.impl.JsonTokenizer.nextValue(JsonTokenizer.java:173)
	at elemental.json.impl.JreJsonFactory.parse(JreJsonFactory.java:64)
	at elemental.json.Json.parse(Json.java:53)
	at com.vaadin.flow.component.polymertemplate.BundleParser.parseJsonStatistics(BundleParser.java:121)
	at com.vaadin.flow.component.polymertemplate.NpmTemplateParser.resetCache(NpmTemplateParser.java:249)
	at com.vaadin.flow.component.polymertemplate.NpmTemplateParser.getSourcesFromStats(NpmTemplateParser.java:198)
	at com.vaadin.flow.component.polymertemplate.NpmTemplateParser.getTemplateContent(NpmTemplateParser.java:111)
	at com.vaadin.flow.component.polymertemplate.TemplateDataAnalyzer.parseTemplate(TemplateDataAnalyzer.java:221)
	at com.vaadin.flow.component.polymertemplate.TemplateInitializer.lambda$null$23ee5b4f$1(TemplateInitializer.java:89)
	at com.vaadin.flow.internal.ReflectionCache.lambda$wrapValueProvider$d0062d93$1(ReflectionCache.java:91)
	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
	at com.vaadin.flow.internal.ReflectionCache.get(ReflectionCache.java:108)
	at com.vaadin.flow.component.polymertemplate.TemplateInitializer.<init>(TemplateInitializer.java:90)
	at com.vaadin.flow.component.polymertemplate.PolymerTemplate.<init>(PolymerTemplate.java:91)
	at com.vaadin.flow.component.polymertemplate.PolymerTemplate.<init>(PolymerTemplate.java:106)

It’s hard to say what the problem may be without any code. Something seems to be going wrong in your LoginView. What does that file look like? How is it created?

Marcus Hellberg:
It’s hard to say what the problem may be without any code. Something seems to be going wrong in your LoginView. What does that file look like? How is it created?

login-form.js

import '@polymer/polymer/polymer-legacy.js';
import '@vaadin/vaadin-text-field/src/vaadin-text-field.js';
import '@vaadin/vaadin-text-field/src/vaadin-password-field.js';
import '../../../styles/shared-styles.js';
import { html } from '@polymer/polymer/lib/utils/html-tag.js';
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
class LoginForm extends PolymerElement {
  static get template() {
    return html`
   <style include="shared-styles">
	:host {
        background-color: var(--lumo-base-color);
		flex:1;
        display: flex;
        flex-direction: column;
      }
      
      form *{
        width: 100%;
      }
      
</style> 
   <div> 
    <form method="post" autocomplete="on"> 
     <vaadin-text-field id="usernameInput" placeholder="Email" name="email" autocomplete="email"></vaadin-text-field> 
     <vaadin-password-field id="passInput" placeholder="Password" type="password" name="password" autocomplete="current-password"></vaadin-password-field> 
    </form> 
   </div> 
`;
  }

  static get is() {
      return 'login-form';
  }
  static get properties() {
      return {
          // Declare your properties here.
      };
  }
}
customElements.define(LoginForm.is, LoginForm);

login-view.js

import '@polymer/polymer/polymer-legacy.js';
import '@vaadin/vaadin-button/src/vaadin-button.js';
import '../../../styles/shared-styles.js';
import '@vaadin/vaadin-icons/vaadin-icons.js';
import './login-buttons-bar.js';
import { html } from '@polymer/polymer/lib/utils/html-tag.js';
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
class LoginView extends PolymerElement {
  static get template() {
    return html`
   <style include="shared-styles">
      :host {
        width: 100vw;
        height: 100vh;
        --app-primary-color: var(--lumo-primary-color);
        --app-secondary-color: var(--lumo-body-text-color);

        background-color: var(--lumo-shade-5pct);
        background-image: url(./images/world-bg.svg);
        background-size: cover;
        
        display: flex;
        flex-direction: column;
        color: var(--lumo-body-text-color);
        font-family: var(--lumo-font-family);

        justify-content:center;
        
      }
      
      .container {
        margin: 0 auto;
        box-shadow: 0 2px 5px 0 var(--lumo-shade-10pct);
        display: flex;
        flex-direction: column;
        width: 100%;
        height: 100%;
        max-height: 90vh;
        display: flex;
        flex-direction: column;
        z-index: 2;
        
      }

      .info {
        /* background-image: url(../../../images/login-banner.jpg) ; */   
        /*background-color:  var(--lumo-primary-color);  */
        background-color: var(--lumo-shade-60pct);
        background-size: cover;
        /*background-position-x: center; */
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
       	background: rgba(255,255,255,1);
		background: -moz-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
		background: -webkit-gradient(left top, right top, color-stop(0%, rgba(255,255,255,1)), color-stop(0%, rgba(70,131,223,1)), color-stop(51%, rgba(158,197,255,0.97)), color-stop(100%, rgba(70,131,223,0.95)));
		background: -webkit-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
		background: -o-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
		background: -ms-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
		background: linear-gradient(to right, rgba(255,255,255,1) 0%, rgba(70,131,223,1) 0%, rgba(158,197,255,0.97) 51%, rgba(70,131,223,0.95) 100%);
		filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#4683df', GradientType=1 );
}

      .logo {
        height: calc(var(--lumo-size-m) * 2) ;
        margin: var(--lumo-space-s);

      }

      .login {
        padding: var(--lumo-space-m) var(--lumo-space-l);
        padding-top: 0;
        background-color: var(--lumo-base-color);
        flex: 1;
        max-height: 570px;
        overflow-y: auto;
        display: flex;
        flex-direction: column;
      }

      .login-header {
		background-color: var(--lumo-base-color);
        flex: 1;
        margin-top: 0;
        margin-bottom: 0;
        margin-left: var(--lumo-space-xs);
      }
      
      .login-header h2 {
      	margin-top: 5px;
      	margin-bottom: 5px;
      	font-size: 1.45em;
      }

      .login__layout {
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        overflow-y: auto;
        padding: 0 var(--lumo-space-xs);
      }

      .login__layout > * {
        width: 100%;
      }
      
       user-form{
      	padding: 6px;
       }
      
      .error {
        display: flex;
        align-items: flex-start;
      }

      .error__icon {
        flex: 0 0 auto;
        fill: var(--lumo-error-color);
        margin-top: 0.3em;
        margin-right: var(--lumo-space-s);
      }

      .error__text {
        max-width: 35em;
        margin-top: 0.2em;
      }
      
      .success {
        display: flex;
        align-items: flex-start;
      }

      .success__icon {
        /* flex: 0 0 auto; */
        fill: var(--lumo-success-color);
        margin-top: 0.3em;
        margin-right: var(--lumo-space-s);
      }

      .success__text {
        max-width: 35em;
        margin-top: 0.2em;
      }
      
      .terms-holder{
        font-size: 12px;
        padding-top: 6px;
        padding-bottom: 26px;
        text-align: center;
        max-width: 550px;
    	margin: 0 auto;
      }
      
      .footer{
        width: 100%;
        text-align: center;
        position: absolute;
        bottom: 0;
        left: 0;
        font-size: 14px;
        padding-bottom: 6px;
      }
      
      .footer vaadin-button{
      	padding: 0;
      }
      
      .spacing-vertical{
      	width: 100%;
      	height: var(--lumo-space-m);
      }
      
      @media (max-height: 450px) {

        .login-header {
          display: none;
        }
      }

      @media (min-width: 750px) and (min-height: 450px) {
        .container {
          border-radius: var(--lumo-border-radius);
          max-width: 550px;
          overflow: hidden;
          height: auto;
        }
      }

      @media (min-width: 550px) {
        .login__layout {
          flex-direction: row;
        }

        .login__layout > *:not(:first-child) {
          margin-left: var(--lumo-space-m);
        }

        .login__button {
          max-width: 7em;
        }
      }
      
       @media (max-width: 800px) {
       	 .container{
       		max-width: 90vw;
       		border-radius:  var(--lumo-border-radius);
       	 }
       	 
       	 .info{
       		border-top-left-radius: var(--lumo-border-radius); 
       		border-top-right-radius: var(--lumo-border-radius); 
       	 }
       	 
       	 .login{
       	 	border-bottom-left-radius: var(--lumo-border-radius); 
       		border-bottom-right-radius: var(--lumo-border-radius); 
       	 }
       	 
       	 .login-header {
           flex: 0;
         }
       
       }
       
       @media (max-width: 500px) {

	        .container{
	       		width: 100vw;
	       		height: 100vh;
	       		max-height: 100vh;
	       		max-width: 100vw;
	       	}
	       	
	       	.logo {
	    		height: calc(var(--lumo-size-m) * 2.5);
	    		margin: 5%;
	    	}
	    	
	    	.login {
	    		padding: var(--lumo-space-s) var(--lumo-space-l);
	    		max-height: 100vh;
	    	}
	    	
	    	.login__layout{
	    		flex: unset;
	    	}
	    	
	    	.login-header h2{
	         	font-size: var(--lumo-font-size-xxl);
	         	margin-top : var(--lumo-size-m);
	         	margin-bottom : var(--lumo-size-xs);
	        }
         
       	
      }
      
      @media (max-height: 370px) {
		    .logo {
	    		max-height: calc(var(--lumo-size-m) * 1);
	    		margin: 1%;
	    	}
      }

    </style> 
   <div> 
    <div class="container"> 
     <div class="info"> 
      <img src="./images/logo-shadow.png" class="logo"> 
     </div> 
     <div class="login"> 
      <div class="login-header"> 
       <h2 id="title">Log in</h2> 
      </div> 
      <div id="content" class="login__layout"></div> 
      <div class="error" id="errorContent"> 
       <iron-icon icon="vaadin:exclamation-circle-o" class="error__icon"></iron-icon> 
       <p class="error__text" id="errorText"> Entered username or password invalid. Please double-check and try again. </p> 
      </div> 
      <div id="register-success" class="success"> 
       <iron-icon icon="vaadin:check-circle-o" class="success__icon"></iron-icon> 
       <p class="success__text" id="register-succ-text">Successful registration</p> 
      </div> 
      <login-buttons-bar id="buttonBar"></login-buttons-bar> 
     </div> 
    </div> 
   </div> 
`;
  }

  static get is() {
      return 'login-view';
  }
  static get properties() {
      return {
          // Declare your properties here.
      };
  }
}
customElements.define(LoginView.is, LoginView);

Overrided method configurePage in LoginView.java

@Override
    public void configurePage(InitialPageSettings settings) {
        settings.addMetaTag("apple-mobile-web-app-capable", "yes");
        settings.addMetaTag("apple-mobile-web-app-status-bar-style", "black");
        
        settings.addFavIcon("icon", "icons/icon.png", "192x192");
        
        settings.addInlineWithContents(
                InitialPageSettings.Position.PREPEND, "window.customElements=window.customElements||{};"
                      + "window.customElements.forcePolyfill=true; window.ShadyDOM={force:true};",
                InitialPageSettings.WrapMode.JAVASCRIPT);
        
	}

Marcus Hellberg:
It’s hard to say what the problem may be without any code. Something seems to be going wrong in your LoginView. What does that file look like? How is it created?

Sorry, anything on this?