eclipse-jdtls / eclipse.jdt.ls

Java language server
1.77k stars 395 forks source link

LambdaConversionException #2631

Open Aleksey2093 opened 1 year ago

Aleksey2093 commented 1 year ago

code

package com.example.demo;

import com.vaadin.flow.component.HasValue;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.router.Route;

@Route(value = "test")
public class TestPage extends VerticalLayout {

    public TestPage() {
        setWidthFull();
        setHeightFull();
        TextField textField = new TextField();
        add(textField);
        textField.setWidthFull();
        HasValue<?, ?> hasValue = textField;
        hasValue.addValueChangeListener(event -> {
            System.out.println(event.getValue());
        });
    }

}

This code does not work if it was compiled using vscode. If you build the code using mvn clean package -DskipTests=true -Pproduction, the code will work.

main

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>17</java.version>
        <vaadin.version>23.3.11</vaadin.version>
    </properties>
    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-bom</artifactId>
                <version>${vaadin.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>production</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.vaadin</groupId>
                        <artifactId>vaadin-maven-plugin</artifactId>
                        <version>${vaadin.version}</version>
                        <executions>
                            <execution>
                                <id>frontend</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>prepare-frontend</goal>
                                    <goal>build-frontend</goal>
                                </goals>
                                <configuration>
                                    <productionMode>true</productionMode>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>

exception

2023-04-30 22:21:19.099 ERROR 6690 --- [nio-8080-exec-8] c.v.flow.router.InternalServerError      : There was an exception while trying to navigate to 'test'

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.example.demo.TestPage': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.example.demo.TestPage]: Constructor threw exception; nested exception is java.lang.BootstrapMethodError: bootstrap method initialization exception
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1334) ~[spring-beans-5.3.27.jar:5.3.27]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[spring-beans-5.3.27.jar:5.3.27]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.27.jar:5.3.27]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.27.jar:5.3.27]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:332) ~[spring-beans-5.3.27.jar:5.3.27]
        at com.vaadin.flow.spring.SpringInstantiator.getOrCreate(SpringInstantiator.java:117) ~[vaadin-spring-23.3.7.jar:na]
        at com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:193) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda$getRouteTarget$1(AbstractNavigationStateRenderer.java:132) ~[flow-server-23.3.7.jar:23.3.7]
        at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:131) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.sendBeforeEnterEventAndPopulateChain(AbstractNavigationStateRenderer.java:492) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.createChainIfEmptyAndExecuteBeforeEnterNavigation(AbstractNavigationStateRenderer.java:473) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:211) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.component.internal.JavaScriptNavigationStateRenderer.handle(JavaScriptNavigationStateRenderer.java:78) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.component.internal.JavaScriptBootstrapUI.handleNavigation(JavaScriptBootstrapUI.java:322) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.component.internal.JavaScriptBootstrapUI.renderViewForRoute(JavaScriptBootstrapUI.java:285) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.component.internal.JavaScriptBootstrapUI.lambda$connectClient$cfbe2c41$1(JavaScriptBootstrapUI.java:147) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.component.internal.JavaScriptBootstrapUI.connectClient(JavaScriptBootstrapUI.java:155) ~[flow-server-23.3.7.jar:23.3.7]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
        at com.vaadin.flow.server.communication.rpc.PublishedServerEventHandlerRpcHandler.invokeMethod(PublishedServerEventHandlerRpcHandler.java:222) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.communication.rpc.PublishedServerEventHandlerRpcHandler.invokeMethod(PublishedServerEventHandlerRpcHandler.java:199) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.communication.rpc.PublishedServerEventHandlerRpcHandler.invokeMethod(PublishedServerEventHandlerRpcHandler.java:149) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.communication.rpc.PublishedServerEventHandlerRpcHandler.handleNode(PublishedServerEventHandlerRpcHandler.java:132) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:75) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:438) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$1(ServerRpcHandler.java:419) ~[flow-server-23.3.7.jar:23.3.7]
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na]
        at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:419) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:320) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:115) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1560) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:369) ~[flow-server-23.3.7.jar:23.3.7]
        at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:106) ~[vaadin-spring-23.3.7.jar:na]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[tomcat-embed-core-9.0.74.jar:4.0.FR]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:661) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:425) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:330) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:294) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:141) ~[spring-webmvc-5.3.27.jar:5.3.27]
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) ~[spring-webmvc-5.3.27.jar:5.3.27]
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:51) ~[spring-webmvc-5.3.27.jar:5.3.27]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ~[spring-webmvc-5.3.27.jar:5.3.27]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) ~[spring-webmvc-5.3.27.jar:5.3.27]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.27.jar:5.3.27]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.27.jar:5.3.27]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) ~[tomcat-embed-core-9.0.74.jar:4.0.FR]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.27.jar:5.3.27]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[tomcat-embed-core-9.0.74.jar:4.0.FR]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.27.jar:5.3.27]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.27.jar:5.3.27]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) ~[spring-boot-actuator-2.7.11.jar:2.7.11]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.27.jar:5.3.27]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.74.jar:9.0.74]
        at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.example.demo.TestPage]: Constructor threw exception; nested exception is java.lang.BootstrapMethodError: bootstrap method initialization exception
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:224) ~[spring-beans-5.3.27.jar:5.3.27]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87) ~[spring-beans-5.3.27.jar:5.3.27]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1326) ~[spring-beans-5.3.27.jar:5.3.27]
        ... 90 common frames omitted
Caused by: java.lang.BootstrapMethodError: bootstrap method initialization exception
        at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:188) ~[na:na]
        at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:315) ~[na:na]
        at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:281) ~[na:na]
        at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:271) ~[na:na]
        at com.example.demo.TestPage.<init>(TestPage.java:18) ~[classes/:na]
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[na:na]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[na:na]
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211) ~[spring-beans-5.3.27.jar:5.3.27]
        ... 92 common frames omitted
Caused by: java.lang.invoke.LambdaConversionException: Type mismatch for dynamic parameter 0: class java.lang.Object is not a subtype of interface com.vaadin.flow.component.HasValue$ValueChangeEvent
        at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.checkDescriptor(AbstractValidatingLambdaMetafactory.java:327) ~[na:na]
        at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:313) ~[na:na]
        at java.base/java.lang.invoke.LambdaMetafactory.altMetafactory(LambdaMetafactory.java:535) ~[na:na]
        at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:147) ~[na:na]
        ... 102 common frames omitted
Aleksey2093 commented 1 year ago

javap -v TestPage.class when buid by vscode:

Classfile /t2/demo/target/classes/com/example/demo/TestPage.class
  Last modified 30 апр. 2023 г.; size 3150 bytes
  SHA-256 checksum a10a9841012828bbd52a61690842fd45509827aa8b6f08b93c163f2968f485e8
  Compiled from "TestPage.java"
public class com.example.demo.TestPage extends com.vaadin.flow.component.orderedlayout.VerticalLayout
  minor version: 0
  major version: 61
  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: #1                          // com/example/demo/TestPage
  super_class: #3                         // com/vaadin/flow/component/orderedlayout/VerticalLayout
  interfaces: 0, fields: 0, methods: 3, attributes: 4
Constant pool:
    #1 = Class              #2            // com/example/demo/TestPage
    #2 = Utf8               com/example/demo/TestPage
    #3 = Class              #4            // com/vaadin/flow/component/orderedlayout/VerticalLayout
    #4 = Utf8               com/vaadin/flow/component/orderedlayout/VerticalLayout
    #5 = Utf8               <init>
    #6 = Utf8               ()V
    #7 = Utf8               Code
    #8 = Methodref          #3.#9         // com/vaadin/flow/component/orderedlayout/VerticalLayout."<init>":()V
    #9 = NameAndType        #5:#6         // "<init>":()V
   #10 = Methodref          #1.#11        // com/example/demo/TestPage.setWidthFull:()V
   #11 = NameAndType        #12:#6        // setWidthFull:()V
   #12 = Utf8               setWidthFull
   #13 = Methodref          #1.#14        // com/example/demo/TestPage.setHeightFull:()V
   #14 = NameAndType        #15:#6        // setHeightFull:()V
   #15 = Utf8               setHeightFull
   #16 = Class              #17           // com/vaadin/flow/component/textfield/TextField
   #17 = Utf8               com/vaadin/flow/component/textfield/TextField
   #18 = Methodref          #16.#9        // com/vaadin/flow/component/textfield/TextField."<init>":()V
   #19 = Class              #20           // com/vaadin/flow/component/Component
   #20 = Utf8               com/vaadin/flow/component/Component
   #21 = Methodref          #1.#22        // com/example/demo/TestPage.add:([Lcom/vaadin/flow/component/Component;)V
   #22 = NameAndType        #23:#24       // add:([Lcom/vaadin/flow/component/Component;)V
   #23 = Utf8               add
   #24 = Utf8               ([Lcom/vaadin/flow/component/Component;)V
   #25 = Methodref          #16.#11       // com/vaadin/flow/component/textfield/TextField.setWidthFull:()V
   #26 = InvokeDynamic      #0:#27        // #0:valueChanged:()Lcom/vaadin/flow/component/HasValue$ValueChangeListener;
   #27 = NameAndType        #28:#29       // valueChanged:()Lcom/vaadin/flow/component/HasValue$ValueChangeListener;
   #28 = Utf8               valueChanged
   #29 = Utf8               ()Lcom/vaadin/flow/component/HasValue$ValueChangeListener;
   #30 = InterfaceMethodref #31.#33       // com/vaadin/flow/component/HasValue.addValueChangeListener:(Lcom/vaadin/flow/component/HasValue$ValueChangeListener;)Lcom/vaadin/flow/shared/Registration;
   #31 = Class              #32           // com/vaadin/flow/component/HasValue
   #32 = Utf8               com/vaadin/flow/component/HasValue
   #33 = NameAndType        #34:#35       // addValueChangeListener:(Lcom/vaadin/flow/component/HasValue$ValueChangeListener;)Lcom/vaadin/flow/shared/Registration;
   #34 = Utf8               addValueChangeListener
   #35 = Utf8               (Lcom/vaadin/flow/component/HasValue$ValueChangeListener;)Lcom/vaadin/flow/shared/Registration;
   #36 = Utf8               LineNumberTable
   #37 = Utf8               LocalVariableTable
   #38 = Utf8               this
   #39 = Utf8               Lcom/example/demo/TestPage;
   #40 = Utf8               textField
   #41 = Utf8               Lcom/vaadin/flow/component/textfield/TextField;
   #42 = Utf8               hasValue
   #43 = Utf8               Lcom/vaadin/flow/component/HasValue;
   #44 = Utf8               LocalVariableTypeTable
   #45 = Utf8               Lcom/vaadin/flow/component/HasValue<**>;
   #46 = Utf8               lambda$0
   #47 = Utf8               (Ljava/lang/Object;)V
   #48 = Fieldref           #49.#51       // java/lang/System.out:Ljava/io/PrintStream;
   #49 = Class              #50           // java/lang/System
   #50 = Utf8               java/lang/System
   #51 = NameAndType        #52:#53       // out:Ljava/io/PrintStream;
   #52 = Utf8               out
   #53 = Utf8               Ljava/io/PrintStream;
   #54 = Class              #55           // java/lang/StringBuilder
   #55 = Utf8               java/lang/StringBuilder
   #56 = String             #57           // change text value
   #57 = Utf8               change text value
   #58 = Methodref          #54.#59       // java/lang/StringBuilder."<init>":(Ljava/lang/String;)V
   #59 = NameAndType        #5:#60        // "<init>":(Ljava/lang/String;)V
   #60 = Utf8               (Ljava/lang/String;)V
   #61 = Class              #62           // com/vaadin/flow/component/HasValue$ValueChangeEvent
   #62 = Utf8               com/vaadin/flow/component/HasValue$ValueChangeEvent
   #63 = InterfaceMethodref #61.#64       // com/vaadin/flow/component/HasValue$ValueChangeEvent.getValue:()Ljava/lang/Object;
   #64 = NameAndType        #65:#66       // getValue:()Ljava/lang/Object;
   #65 = Utf8               getValue
   #66 = Utf8               ()Ljava/lang/Object;
   #67 = Methodref          #54.#68       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
   #68 = NameAndType        #69:#70       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
   #69 = Utf8               append
   #70 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;
   #71 = Methodref          #54.#72       // java/lang/StringBuilder.toString:()Ljava/lang/String;
   #72 = NameAndType        #73:#74       // toString:()Ljava/lang/String;
   #73 = Utf8               toString
   #74 = Utf8               ()Ljava/lang/String;
   #75 = Methodref          #76.#78       // java/io/PrintStream.println:(Ljava/lang/String;)V
   #76 = Class              #77           // java/io/PrintStream
   #77 = Utf8               java/io/PrintStream
   #78 = NameAndType        #79:#60       // println:(Ljava/lang/String;)V
   #79 = Utf8               println
   #80 = Utf8               event
   #81 = Utf8               Ljava/lang/Object;
   #82 = Utf8               $deserializeLambda$
   #83 = Utf8               (Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;
   #84 = Methodref          #85.#87       // java/lang/invoke/SerializedLambda.getImplMethodName:()Ljava/lang/String;
   #85 = Class              #86           // java/lang/invoke/SerializedLambda
   #86 = Utf8               java/lang/invoke/SerializedLambda
   #87 = NameAndType        #88:#74       // getImplMethodName:()Ljava/lang/String;
   #88 = Utf8               getImplMethodName
   #89 = Methodref          #90.#92       // java/lang/String.hashCode:()I
   #90 = Class              #91           // java/lang/String
   #91 = Utf8               java/lang/String
   #92 = NameAndType        #93:#94       // hashCode:()I
   #93 = Utf8               hashCode
   #94 = Utf8               ()I
   #95 = String             #46           // lambda$0
   #96 = Methodref          #90.#97       // java/lang/String.equals:(Ljava/lang/Object;)Z
   #97 = NameAndType        #98:#99       // equals:(Ljava/lang/Object;)Z
   #98 = Utf8               equals
   #99 = Utf8               (Ljava/lang/Object;)Z
  #100 = Methodref          #85.#101      // java/lang/invoke/SerializedLambda.getImplMethodKind:()I
  #101 = NameAndType        #102:#94      // getImplMethodKind:()I
  #102 = Utf8               getImplMethodKind
  #103 = Methodref          #85.#104      // java/lang/invoke/SerializedLambda.getFunctionalInterfaceClass:()Ljava/lang/String;
  #104 = NameAndType        #105:#74      // getFunctionalInterfaceClass:()Ljava/lang/String;
  #105 = Utf8               getFunctionalInterfaceClass
  #106 = String             #107          // com/vaadin/flow/component/HasValue$ValueChangeListener
  #107 = Utf8               com/vaadin/flow/component/HasValue$ValueChangeListener
  #108 = Methodref          #109.#97      // java/lang/Object.equals:(Ljava/lang/Object;)Z
  #109 = Class              #110          // java/lang/Object
  #110 = Utf8               java/lang/Object
  #111 = Methodref          #85.#112      // java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodName:()Ljava/lang/String;
  #112 = NameAndType        #113:#74      // getFunctionalInterfaceMethodName:()Ljava/lang/String;
  #113 = Utf8               getFunctionalInterfaceMethodName
  #114 = String             #28           // valueChanged
  #115 = Methodref          #85.#116      // java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
  #116 = NameAndType        #117:#74      // getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
  #117 = Utf8               getFunctionalInterfaceMethodSignature
  #118 = String             #119          // (Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
  #119 = Utf8               (Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
  #120 = Methodref          #85.#121      // java/lang/invoke/SerializedLambda.getImplClass:()Ljava/lang/String;
  #121 = NameAndType        #122:#74      // getImplClass:()Ljava/lang/String;
  #122 = Utf8               getImplClass
  #123 = String             #2            // com/example/demo/TestPage
  #124 = Methodref          #85.#125      // java/lang/invoke/SerializedLambda.getImplMethodSignature:()Ljava/lang/String;
  #125 = NameAndType        #126:#74      // getImplMethodSignature:()Ljava/lang/String;
  #126 = Utf8               getImplMethodSignature
  #127 = String             #47           // (Ljava/lang/Object;)V
  #128 = Class              #129          // java/lang/IllegalArgumentException
  #129 = Utf8               java/lang/IllegalArgumentException
  #130 = String             #131          // Invalid lambda deserialization
  #131 = Utf8               Invalid lambda deserialization
  #132 = Methodref          #128.#59      // java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
  #133 = Utf8               StackMapTable
  #134 = Utf8               SourceFile
  #135 = Utf8               TestPage.java
  #136 = Utf8               RuntimeVisibleAnnotations
  #137 = Utf8               Lcom/vaadin/flow/router/Route;
  #138 = Utf8               value
  #139 = Utf8               test
  #140 = Utf8               BootstrapMethods
  #141 = Methodref          #142.#144     // java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #142 = Class              #143          // java/lang/invoke/LambdaMetafactory
  #143 = Utf8               java/lang/invoke/LambdaMetafactory
  #144 = NameAndType        #145:#146     // altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #145 = Utf8               altMetafactory
  #146 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #147 = MethodHandle       6:#141        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #148 = MethodType         #119          //  (Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
  #149 = Methodref          #1.#150       // com/example/demo/TestPage.lambda$0:(Ljava/lang/Object;)V
  #150 = NameAndType        #46:#47       // lambda$0:(Ljava/lang/Object;)V
  #151 = MethodHandle       6:#149        // REF_invokeStatic com/example/demo/TestPage.lambda$0:(Ljava/lang/Object;)V
  #152 = MethodType         #47           //  (Ljava/lang/Object;)V
  #153 = Integer            1
  #154 = Utf8               InnerClasses
  #155 = Utf8               ValueChangeEvent
  #156 = Class              #107          // com/vaadin/flow/component/HasValue$ValueChangeListener
  #157 = Utf8               ValueChangeListener
  #158 = Class              #159          // java/lang/invoke/MethodHandles$Lookup
  #159 = Utf8               java/lang/invoke/MethodHandles$Lookup
  #160 = Class              #161          // java/lang/invoke/MethodHandles
  #161 = Utf8               java/lang/invoke/MethodHandles
  #162 = Utf8               Lookup
{
  public com.example.demo.TestPage();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
         0: aload_0
         1: invokespecial #8                  // Method com/vaadin/flow/component/orderedlayout/VerticalLayout."<init>":()V
         4: aload_0
         5: invokevirtual #10                 // Method setWidthFull:()V
         8: aload_0
         9: invokevirtual #13                 // Method setHeightFull:()V
        12: new           #16                 // class com/vaadin/flow/component/textfield/TextField
        15: dup
        16: invokespecial #18                 // Method com/vaadin/flow/component/textfield/TextField."<init>":()V
        19: astore_1
        20: aload_0
        21: iconst_1
        22: anewarray     #19                 // class com/vaadin/flow/component/Component
        25: dup
        26: iconst_0
        27: aload_1
        28: aastore
        29: invokevirtual #21                 // Method add:([Lcom/vaadin/flow/component/Component;)V
        32: aload_1
        33: invokevirtual #25                 // Method com/vaadin/flow/component/textfield/TextField.setWidthFull:()V
        36: aload_1
        37: astore_2
        38: aload_2
        39: invokedynamic #26,  0             // InvokeDynamic #0:valueChanged:()Lcom/vaadin/flow/component/HasValue$ValueChangeListener;
        44: invokeinterface #30,  2           // InterfaceMethod com/vaadin/flow/component/HasValue.addValueChangeListener:(Lcom/vaadin/flow/component/HasValue$ValueChangeListener;)Lcom/vaadin/flow/shared/Registration;
        49: pop
        50: return
      LineNumberTable:
        line 11: 0
        line 12: 4
        line 13: 8
        line 14: 12
        line 15: 20
        line 16: 32
        line 17: 36
        line 18: 38
        line 21: 50
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0      51     0  this   Lcom/example/demo/TestPage;
           20      31     1 textField   Lcom/vaadin/flow/component/textfield/TextField;
           38      13     2 hasValue   Lcom/vaadin/flow/component/HasValue;
      LocalVariableTypeTable:
        Start  Length  Slot  Name   Signature
           38      13     2 hasValue   Lcom/vaadin/flow/component/HasValue<**>;
}
SourceFile: "TestPage.java"
RuntimeVisibleAnnotations:
  0: #137(#138=s#139)
    com.vaadin.flow.router.Route(
      value="test"
    )
BootstrapMethods:
  0: #147 REF_invokeStatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
    Method arguments:
      #148 (Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
      #151 REF_invokeStatic com/example/demo/TestPage.lambda$0:(Ljava/lang/Object;)V
      #152 (Ljava/lang/Object;)V
      #153 1
InnerClasses:
  public static #155= #61 of #31;         // ValueChangeEvent=class com/vaadin/flow/component/HasValue$ValueChangeEvent of class com/vaadin/flow/component/HasValue
  public static #157= #156 of #31;        // ValueChangeListener=class com/vaadin/flow/component/HasValue$ValueChangeListener of class com/vaadin/flow/component/HasValue
  public static final #162= #158 of #160; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles
Aleksey2093 commented 1 year ago

javap -v TestPage.class when build mvn clean package

Classfile /t2/demo/target/classes/com/example/demo/TestPage.class
  Last modified 30 апр. 2023 г.; size 3371 bytes
  SHA-256 checksum a6ac2ae62c9ac471ac358d23d263516b2b99eb938c10e6a4b0ea4edc3ccee0b4
  Compiled from "TestPage.java"
public class com.example.demo.TestPage extends com.vaadin.flow.component.orderedlayout.VerticalLayout
  minor version: 0
  major version: 61
  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: #8                          // com/example/demo/TestPage
  super_class: #2                         // com/vaadin/flow/component/orderedlayout/VerticalLayout
  interfaces: 0, fields: 0, methods: 3, attributes: 4
Constant pool:
    #1 = Methodref          #2.#3         // com/vaadin/flow/component/orderedlayout/VerticalLayout."<init>":()V
    #2 = Class              #4            // com/vaadin/flow/component/orderedlayout/VerticalLayout
    #3 = NameAndType        #5:#6         // "<init>":()V
    #4 = Utf8               com/vaadin/flow/component/orderedlayout/VerticalLayout
    #5 = Utf8               <init>
    #6 = Utf8               ()V
    #7 = Methodref          #8.#9         // com/example/demo/TestPage.setWidthFull:()V
    #8 = Class              #10           // com/example/demo/TestPage
    #9 = NameAndType        #11:#6        // setWidthFull:()V
   #10 = Utf8               com/example/demo/TestPage
   #11 = Utf8               setWidthFull
   #12 = Methodref          #8.#13        // com/example/demo/TestPage.setHeightFull:()V
   #13 = NameAndType        #14:#6        // setHeightFull:()V
   #14 = Utf8               setHeightFull
   #15 = Class              #16           // com/vaadin/flow/component/textfield/TextField
   #16 = Utf8               com/vaadin/flow/component/textfield/TextField
   #17 = Methodref          #15.#3        // com/vaadin/flow/component/textfield/TextField."<init>":()V
   #18 = Class              #19           // com/vaadin/flow/component/Component
   #19 = Utf8               com/vaadin/flow/component/Component
   #20 = Methodref          #8.#21        // com/example/demo/TestPage.add:([Lcom/vaadin/flow/component/Component;)V
   #21 = NameAndType        #22:#23       // add:([Lcom/vaadin/flow/component/Component;)V
   #22 = Utf8               add
   #23 = Utf8               ([Lcom/vaadin/flow/component/Component;)V
   #24 = Methodref          #15.#9        // com/vaadin/flow/component/textfield/TextField.setWidthFull:()V
   #25 = InvokeDynamic      #0:#26        // #0:valueChanged:()Lcom/vaadin/flow/component/HasValue$ValueChangeListener;
   #26 = NameAndType        #27:#28       // valueChanged:()Lcom/vaadin/flow/component/HasValue$ValueChangeListener;
   #27 = Utf8               valueChanged
   #28 = Utf8               ()Lcom/vaadin/flow/component/HasValue$ValueChangeListener;
   #29 = InterfaceMethodref #30.#31       // com/vaadin/flow/component/HasValue.addValueChangeListener:(Lcom/vaadin/flow/component/HasValue$ValueChangeListener;)Lcom/vaadin/flow/shared/Registration;
   #30 = Class              #32           // com/vaadin/flow/component/HasValue
   #31 = NameAndType        #33:#34       // addValueChangeListener:(Lcom/vaadin/flow/component/HasValue$ValueChangeListener;)Lcom/vaadin/flow/shared/Registration;
   #32 = Utf8               com/vaadin/flow/component/HasValue
   #33 = Utf8               addValueChangeListener
   #34 = Utf8               (Lcom/vaadin/flow/component/HasValue$ValueChangeListener;)Lcom/vaadin/flow/shared/Registration;
   #35 = Methodref          #36.#37       // java/lang/invoke/SerializedLambda.getImplMethodName:()Ljava/lang/String;
   #36 = Class              #38           // java/lang/invoke/SerializedLambda
   #37 = NameAndType        #39:#40       // getImplMethodName:()Ljava/lang/String;
   #38 = Utf8               java/lang/invoke/SerializedLambda
   #39 = Utf8               getImplMethodName
   #40 = Utf8               ()Ljava/lang/String;
   #41 = Methodref          #42.#43       // java/lang/String.hashCode:()I
   #42 = Class              #44           // java/lang/String
   #43 = NameAndType        #45:#46       // hashCode:()I
   #44 = Utf8               java/lang/String
   #45 = Utf8               hashCode
   #46 = Utf8               ()I
   #47 = String             #48           // lambda$new$3fab9f70$1
   #48 = Utf8               lambda$new$3fab9f70$1
   #49 = Methodref          #42.#50       // java/lang/String.equals:(Ljava/lang/Object;)Z
   #50 = NameAndType        #51:#52       // equals:(Ljava/lang/Object;)Z
   #51 = Utf8               equals
   #52 = Utf8               (Ljava/lang/Object;)Z
   #53 = Methodref          #36.#54       // java/lang/invoke/SerializedLambda.getImplMethodKind:()I
   #54 = NameAndType        #55:#46       // getImplMethodKind:()I
   #55 = Utf8               getImplMethodKind
   #56 = Methodref          #36.#57       // java/lang/invoke/SerializedLambda.getFunctionalInterfaceClass:()Ljava/lang/String;
   #57 = NameAndType        #58:#40       // getFunctionalInterfaceClass:()Ljava/lang/String;
   #58 = Utf8               getFunctionalInterfaceClass
   #59 = String             #60           // com/vaadin/flow/component/HasValue$ValueChangeListener
   #60 = Utf8               com/vaadin/flow/component/HasValue$ValueChangeListener
   #61 = Methodref          #62.#50       // java/lang/Object.equals:(Ljava/lang/Object;)Z
   #62 = Class              #63           // java/lang/Object
   #63 = Utf8               java/lang/Object
   #64 = Methodref          #36.#65       // java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodName:()Ljava/lang/String;
   #65 = NameAndType        #66:#40       // getFunctionalInterfaceMethodName:()Ljava/lang/String;
   #66 = Utf8               getFunctionalInterfaceMethodName
   #67 = String             #27           // valueChanged
   #68 = Methodref          #36.#69       // java/lang/invoke/SerializedLambda.getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
   #69 = NameAndType        #70:#40       // getFunctionalInterfaceMethodSignature:()Ljava/lang/String;
   #70 = Utf8               getFunctionalInterfaceMethodSignature
   #71 = String             #72           // (Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
   #72 = Utf8               (Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
   #73 = Methodref          #36.#74       // java/lang/invoke/SerializedLambda.getImplClass:()Ljava/lang/String;
   #74 = NameAndType        #75:#40       // getImplClass:()Ljava/lang/String;
   #75 = Utf8               getImplClass
   #76 = String             #10           // com/example/demo/TestPage
   #77 = Methodref          #36.#78       // java/lang/invoke/SerializedLambda.getImplMethodSignature:()Ljava/lang/String;
   #78 = NameAndType        #79:#40       // getImplMethodSignature:()Ljava/lang/String;
   #79 = Utf8               getImplMethodSignature
   #80 = Class              #81           // java/lang/IllegalArgumentException
   #81 = Utf8               java/lang/IllegalArgumentException
   #82 = String             #83           // Invalid lambda deserialization
   #83 = Utf8               Invalid lambda deserialization
   #84 = Methodref          #80.#85       // java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
   #85 = NameAndType        #5:#86        // "<init>":(Ljava/lang/String;)V
   #86 = Utf8               (Ljava/lang/String;)V
   #87 = Fieldref           #88.#89       // java/lang/System.out:Ljava/io/PrintStream;
   #88 = Class              #90           // java/lang/System
   #89 = NameAndType        #91:#92       // out:Ljava/io/PrintStream;
   #90 = Utf8               java/lang/System
   #91 = Utf8               out
   #92 = Utf8               Ljava/io/PrintStream;
   #93 = InterfaceMethodref #94.#95       // com/vaadin/flow/component/HasValue$ValueChangeEvent.getValue:()Ljava/lang/Object;
   #94 = Class              #96           // com/vaadin/flow/component/HasValue$ValueChangeEvent
   #95 = NameAndType        #97:#98       // getValue:()Ljava/lang/Object;
   #96 = Utf8               com/vaadin/flow/component/HasValue$ValueChangeEvent
   #97 = Utf8               getValue
   #98 = Utf8               ()Ljava/lang/Object;
   #99 = InvokeDynamic      #1:#100       // #1:makeConcatWithConstants:(Ljava/lang/Object;)Ljava/lang/String;
  #100 = NameAndType        #101:#102     // makeConcatWithConstants:(Ljava/lang/Object;)Ljava/lang/String;
  #101 = Utf8               makeConcatWithConstants
  #102 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;
  #103 = Methodref          #104.#105     // java/io/PrintStream.println:(Ljava/lang/String;)V
  #104 = Class              #106          // java/io/PrintStream
  #105 = NameAndType        #107:#86      // println:(Ljava/lang/String;)V
  #106 = Utf8               java/io/PrintStream
  #107 = Utf8               println
  #108 = Utf8               Code
  #109 = Utf8               LineNumberTable
  #110 = Utf8               LocalVariableTable
  #111 = Utf8               this
  #112 = Utf8               Lcom/example/demo/TestPage;
  #113 = Utf8               textField
  #114 = Utf8               Lcom/vaadin/flow/component/textfield/TextField;
  #115 = Utf8               hasValue
  #116 = Utf8               Lcom/vaadin/flow/component/HasValue;
  #117 = Utf8               LocalVariableTypeTable
  #118 = Utf8               Lcom/vaadin/flow/component/HasValue<**>;
  #119 = Utf8               $deserializeLambda$
  #120 = Utf8               (Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;
  #121 = Utf8               lambda
  #122 = Utf8               Ljava/lang/invoke/SerializedLambda;
  #123 = Utf8               StackMapTable
  #124 = Utf8               event
  #125 = Utf8               Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;
  #126 = Utf8               SourceFile
  #127 = Utf8               TestPage.java
  #128 = Utf8               RuntimeVisibleAnnotations
  #129 = Utf8               Lcom/vaadin/flow/router/Route;
  #130 = Utf8               value
  #131 = Utf8               test
  #132 = Utf8               BootstrapMethods
  #133 = MethodHandle       6:#134        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #134 = Methodref          #135.#136     // java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #135 = Class              #137          // java/lang/invoke/LambdaMetafactory
  #136 = NameAndType        #138:#139     // altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #137 = Utf8               java/lang/invoke/LambdaMetafactory
  #138 = Utf8               altMetafactory
  #139 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #140 = MethodType         #72           //  (Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
  #141 = MethodHandle       6:#142        // REF_invokeStatic com/example/demo/TestPage.lambda$new$3fab9f70$1:(Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
  #142 = Methodref          #8.#143       // com/example/demo/TestPage.lambda$new$3fab9f70$1:(Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
  #143 = NameAndType        #48:#72       // lambda$new$3fab9f70$1:(Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
  #144 = Integer            5
  #145 = Integer            0
  #146 = MethodHandle       6:#147        // REF_invokeStatic java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #147 = Methodref          #148.#149     // java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #148 = Class              #150          // java/lang/invoke/StringConcatFactory
  #149 = NameAndType        #101:#151     // makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #150 = Utf8               java/lang/invoke/StringConcatFactory
  #151 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
  #152 = String             #153          // change text value \u0001
  #153 = Utf8               change text value \u0001
  #154 = Utf8               InnerClasses
  #155 = Class              #60           // com/vaadin/flow/component/HasValue$ValueChangeListener
  #156 = Utf8               ValueChangeListener
  #157 = Utf8               ValueChangeEvent
  #158 = Class              #159          // java/lang/invoke/MethodHandles$Lookup
  #159 = Utf8               java/lang/invoke/MethodHandles$Lookup
  #160 = Class              #161          // java/lang/invoke/MethodHandles
  #161 = Utf8               java/lang/invoke/MethodHandles
  #162 = Utf8               Lookup
{
  public com.example.demo.TestPage();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
         0: aload_0
         1: invokespecial #1                  // Method com/vaadin/flow/component/orderedlayout/VerticalLayout."<init>":()V
         4: aload_0
         5: invokevirtual #7                  // Method setWidthFull:()V
         8: aload_0
         9: invokevirtual #12                 // Method setHeightFull:()V
        12: new           #15                 // class com/vaadin/flow/component/textfield/TextField
        15: dup
        16: invokespecial #17                 // Method com/vaadin/flow/component/textfield/TextField."<init>":()V
        19: astore_1
        20: aload_0
        21: iconst_1
        22: anewarray     #18                 // class com/vaadin/flow/component/Component
        25: dup
        26: iconst_0
        27: aload_1
        28: aastore
        29: invokevirtual #20                 // Method add:([Lcom/vaadin/flow/component/Component;)V
        32: aload_1
        33: invokevirtual #24                 // Method com/vaadin/flow/component/textfield/TextField.setWidthFull:()V
        36: aload_1
        37: astore_2
        38: aload_2
        39: invokedynamic #25,  0             // InvokeDynamic #0:valueChanged:()Lcom/vaadin/flow/component/HasValue$ValueChangeListener;
        44: invokeinterface #29,  2           // InterfaceMethod com/vaadin/flow/component/HasValue.addValueChangeListener:(Lcom/vaadin/flow/component/HasValue$ValueChangeListener;)Lcom/vaadin/flow/shared/Registration;
        49: pop
        50: return
      LineNumberTable:
        line 11: 0
        line 12: 4
        line 13: 8
        line 14: 12
        line 15: 20
        line 16: 32
        line 17: 36
        line 18: 38
        line 21: 50
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0      51     0  this   Lcom/example/demo/TestPage;
           20      31     1 textField   Lcom/vaadin/flow/component/textfield/TextField;
           38      13     2 hasValue   Lcom/vaadin/flow/component/HasValue;
      LocalVariableTypeTable:
        Start  Length  Slot  Name   Signature
           38      13     2 hasValue   Lcom/vaadin/flow/component/HasValue<**>;
}
SourceFile: "TestPage.java"
RuntimeVisibleAnnotations:
  0: #129(#130=s#131)
    com.vaadin.flow.router.Route(
      value="test"
    )
BootstrapMethods:
  0: #133 REF_invokeStatic java/lang/invoke/LambdaMetafactory.altMetafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
    Method arguments:
      #140 (Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
      #141 REF_invokeStatic com/example/demo/TestPage.lambda$new$3fab9f70$1:(Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
      #140 (Lcom/vaadin/flow/component/HasValue$ValueChangeEvent;)V
      #144 5
      #145 0
  1: #146 REF_invokeStatic java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
    Method arguments:
      #152 change text value \u0001
InnerClasses:
  public static #156= #155 of #30;        // ValueChangeListener=class com/vaadin/flow/component/HasValue$ValueChangeListener of class com/vaadin/flow/component/HasValue
  public static #157= #94 of #30;         // ValueChangeEvent=class com/vaadin/flow/component/HasValue$ValueChangeEvent of class com/vaadin/flow/component/HasValue
  public static final #162= #158 of #160; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles
snjeza commented 1 year ago

@Aleksey2093 Could you attach a project example reproducing the error?

Aleksey2093 commented 1 year ago

Could you attach a project example reproducing the error?

@snjeza demo.zip

snjeza commented 1 year ago

This is an upstream jdt.core issue. A related bug - https://bugs.eclipse.org/bugs/show_bug.cgi?id=546161 A workaround:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import com.vaadin.flow.component.HasValue;
import com.vaadin.flow.component.HasValue.ValueChangeEvent;
import com.vaadin.flow.component.HasValue.ValueChangeListener;
import com.vaadin.flow.component.textfield.TextField;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        TextField textField = new TextField();
        HasValue<?, ?> hasValue = textField;
        hasValue.addValueChangeListener((ValueChangeListener<ValueChangeEvent<?>>)event -> {
            System.out.println("change text value " + event.getValue());
        });
        SpringApplication.run(DemoApplication.class, args);
    }

}
Aleksey2093 commented 1 year ago

This is an upstream jdt.core issue. A related bug - https://bugs.eclipse.org/bugs/show_bug.cgi?id=546161 A workaround:

Is the problem being solved in another project?