Thanks Jason!

Gary

On Wed, Feb 8, 2023, 19:31 Jason Copenhaver
<jason.copenha...@charthop.com.invalid> wrote:

> I've created a PR that repros at
> https://github.com/apache/commons-bcel/pull/205
>
> Jason C
>
> On Wed, Feb 8, 2023 at 3:33 PM Gary Gregory <garydgreg...@gmail.com>
> wrote:
>
> > Hi Jason,
> >
> > The best path forward would be for you to create a PR on GitHub with a
> > failing unit test. That will let us reproduce your issue in the simplest
> > fashion. Also make sure you are using the last version, 6.7.0.
> >
> > Thank you,
> > Gary
> >
> > On Wed, Feb 8, 2023, 11:14 Jason Copenhaver
> > <jason.copenha...@charthop.com.invalid> wrote:
> >
> > > I've run into an issue when using BCEL on the results of the below
> Kotlin
> > > code.
> > >
> > > class test {
> > >     fun takeABlock(a: () -> Unit) {
> > >         a()
> > >     }
> > >
> > >     fun `method name with () in it`() {
> > >         takeABlock { println("other test") }
> > >     }
> > >
> > >     fun `method name without parens`() {
> > >         takeABlock { println("other test") }
> > >     }
> > > }
> > >
> > > Three class files are produced.
> > >
> > > test$method name with () in it$1.class
> > > test$method name without parens$1.class
> > > test.class
> > >
> > > When i use the examples/JasminVisitor.java against `test$method name
> with
> > > () in it$1.class` with a small patch to add a `field.getType()` call to
> > the
> > > `visitField` method  I get the below stack trace.
> > >
> > > Exception in thread "main"
> > org.apache.bcel.classfile.ClassFormatException:
> > > Invalid method signature:  in it$1;
> > > at org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1284)
> > > at org.apache.bcel.generic.Type.getType(Type.java:227)
> > > at org.apache.bcel.generic.Type.getReturnType(Type.java:151)
> > > at org.apache.bcel.classfile.Field.getType(Field.java:150)
> > > at JasminVisitor.visitField(JasminVisitor.java:287)
> > > at org.apache.bcel.classfile.Field.accept(Field.java:113)
> > > at
> > >
> > >
> >
> org.apache.bcel.classfile.DescendingVisitor.visitField(DescendingVisitor.java:311)
> > > at org.apache.bcel.classfile.Field.accept(Field.java:113)
> > > at
> > >
> > >
> >
> org.apache.bcel.classfile.DescendingVisitor.lambda$accept$0(DescendingVisitor.java:44)
> > > at
> > >
> > >
> >
> java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
> > > at
> > >
> > >
> >
> java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
> > > at
> > >
> > >
> >
> org.apache.bcel.classfile.DescendingVisitor.accept(DescendingVisitor.java:44)
> > > at
> > >
> > >
> >
> org.apache.bcel.classfile.DescendingVisitor.visitJavaClass(DescendingVisitor.java:335)
> > > at org.apache.bcel.classfile.JavaClass.accept(JavaClass.java:251)
> > > at
> > >
> > >
> >
> org.apache.bcel.classfile.DescendingVisitor.visit(DescendingVisitor.java:77)
> > > at JasminVisitor.disassemble(JasminVisitor.java:109)
> > > at JasminVisitor.main(JasminVisitor.java:82)
> > >
> > > Thanks,
> > > Jason C
> > >
> >
>

Reply via email to