follow this workaround solves the problem (temporarily)
Workaround: use -Xsam-conversions=class

https://youtrack.jetbrains.com/issue/KT-46359#focus=Comments-27-4862857.0-0

<plugins>
  <plugin>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-maven-plugin</artifactId>
    <version>${kotlin.version}</version>
    <configuration>
      <args>
        <arg>-Xsam-conversions=class</arg>
      </args>
    </configuration>
  </plugin>
</plugins>


Bas Gooren <b...@iswd.nl> 於 2021年5月3日 週一 下午4:22寫道:

> Hi!
>
> Probably related to this:
>
> https://youtrack.jetbrains.com/issue/KT-46373
>
> "Since 1.5, SAM-converted lambdas are generated using invokedynamic with
> bootstrap method from java.lang.invoke.LambdaMetafactory.
> Resulting proxy classes are not Serializable by default.”
>
> So your lambda’s in WizardPage are no longer serializable by default due
> to your upgrade to kotlin 1.5.0.
>
> So I’d recommend downgrading your Kotlin for now.
>
> (I’m not an active user of kotlin, so I found this information with 10
> minutes of Googling)
>
> Met vriendelijke groet,
> Kind regards,
>
> Bas Gooren
>
> Op 30 april 2021 bij 07:06:45, smallufo (small...@gmail.com) schreef:
>
> more detail log :
>
> 2021-04-30 12:43:44.076 [http-nio-8080-exec-2] WARN
> o.a.w.c.u.o.c.CheckingObjectOutputStream.internalCheck - error delegating
> to writeObject : Non-serializable lambda, path: /children/[write:1]/data
> 2021-04-30 12:43:44.078 [http-nio-8080-exec-2] WARN
> o.a.w.c.u.o.c.CheckingObjectOutputStream.internalCheck - error delegating
> to writeObject : Non-serializable lambda, path: /children/[write:2]
> 2021-04-30 12:43:44.079 [http-nio-8080-exec-2] WARN
> o.a.w.c.u.o.c.CheckingObjectOutputStream.internalCheck - error delegating
> to writeObject : Non-serializable lambda, path: /children
> 2021-04-30 12:43:44.099 [http-nio-8080-exec-2] ERROR
> o.a.w.s.j.JavaSerializer.serialize - Error serializing object class
> destiny.WizardPage [object=[Page class = destiny.WizardPage, id = 1,
> render
> count = 1]]
> org.apache.wicket.WicketRuntimeException: A problem occurred while trying
> to collect debug information about not serializable object
> at
> org.apache.wicket.serialize.java.JavaSerializer$SerializationCheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:390)
>
> at
> java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
>
> at
> org.apache.wicket.serialize.java.JavaSerializer.serialize(JavaSerializer.java:82)
>
> at
> org.apache.wicket.pageStore.AbstractPageStore.serializePage(AbstractPageStore.java:133)
>
> at
> org.apache.wicket.pageStore.DefaultPageStore.createSerializedPage(DefaultPageStore.java:281)
>
> at
> org.apache.wicket.pageStore.DefaultPageStore.storePage(DefaultPageStore.java:61)
>
> at
> org.apache.wicket.page.PageStoreManager$PersistentRequestAdapter.storeTouchedPages(PageStoreManager.java:482)
>
> at
> org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:214)
>
>
> smallufo <small...@gmail.com> 於 2021年4月30日 週五 下午12:52寫道:
>
> > I was using Kotlin 1.4.32 with wicket 8.11
> > but after upgrading to Kotlin 1.5.0 , it throws :
> >
> > Caused by: java.io.NotSerializableException: Non-serializable lambda
> > at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> > Method)
> > at
> >
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
>
> > at
> >
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> > at java.base/java.lang.reflect.Method.invoke(Method.java:564)
> > at
> >
> java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1196)
>
> > at
> >
> java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1523)
>
> > at
> >
> java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1444)
>
> > at
> >
> java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1187)
>
> > at
> >
> java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1579)
>
> >
> >
> > what may go wrong here ?
> >
> > The wicket mode is DEPLOYMENT
> >
> > <filter>
> > <filter-name>wicket</filter-name>
> >
> <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
> > <init-param>
> > <param-name>applicationClassName</param-name>
> > <param-value>foo.bar.MyApplication</param-value>
> > </init-param>
> > <init-param>
> > <param-name>configuration</param-name>
> > <param-value>DEPLOYMENT</param-value>
> > </init-param>
> > </filter>
> > <filter-mapping>
> > <filter-name>wicket</filter-name>
> > <url-pattern>/app/*</url-pattern>
> > </filter-mapping>
> >
> >
> > @MacMiniM1  ~  java -version
> > openjdk version "15.0.2" 2021-01-19
> > OpenJDK Runtime Environment Zulu15.29+15-CA (build 15.0.2+7)
> > OpenJDK 64-Bit Server VM Zulu15.29+15-CA (build 15.0.2+7, mixed mode)
> >
> >
> >
> > Thanks
> >
> >
>
>

Reply via email to