[
https://issues.apache.org/jira/browse/CXF-7371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16115937#comment-16115937
]
ASF GitHub Bot commented on CXF-7371:
-------------------------------------
Github user bbodnar commented on the issue:
https://github.com/apache/cxf/pull/300
There is no good solution for reading classes with ASM without direct
coding against concrete ASM-classes (the "normal" (visitor-based) way isn't
usable with reflection/proxying, because the visitors are in ASM >v3 classes
(no longer interfaces); the non-visitor-based ways (tree, SAX-events) require
optional ASM-libraries, whose existence must here surely not be assumed).
I see under this circumstances the only reasonable solution to extend the
current (self-made) byte-code-parser to handle the Java8-constants.
> Error creating a webservice with lambdas in the implementing class
> ------------------------------------------------------------------
>
> Key: CXF-7371
> URL: https://issues.apache.org/jira/browse/CXF-7371
> Project: CXF
> Issue Type: Bug
> Affects Versions: 3.1.11
> Reporter: Barnabas Bodnar
> Attachments: CXF-7371.zip
>
>
> Attempting to create a webservice, where the implementing class uses lambdas
> in the method-bodies, fails with the following error:
> {quote}
> java.lang.IllegalStateException
> at
> org.apache.cxf.wsdl.service.factory.ClassReader.readCpool(ClassReader.java:358)
> at
> org.apache.cxf.wsdl.service.factory.ParamReader.<init>(ParamReader.java:79)
> at
> org.apache.cxf.wsdl.service.factory.ParamReader.<init>(ParamReader.java:58)
> at
> org.apache.cxf.wsdl.service.factory.ParamReader.getParameterNamesFromDebugInfo(ParamReader.java:131)
> at
> org.apache.cxf.wsdl.service.factory.DefaultServiceConfiguration.createName(DefaultServiceConfiguration.java:128)
> at
> org.apache.cxf.wsdl.service.factory.DefaultServiceConfiguration.getDefaultLocalName(DefaultServiceConfiguration.java:119)
> at
> org.apache.cxf.wsdl.service.factory.DefaultServiceConfiguration.getInParameterName(DefaultServiceConfiguration.java:94)
> at
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.getInParameterName(ReflectionServiceFactoryBean.java:2228)
> at
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.createMessageParts(ReflectionServiceFactoryBean.java:1507)
> at
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.createOperation(ReflectionServiceFactoryBean.java:988)
> at
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.createInterface(ReflectionServiceFactoryBean.java:965)
> at
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:460)
> at
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:529)
> at
> org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:262)
> {quote}
> The class-constant not understood here is *18 (InvokeDynamic)*.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)