<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">Can you please check if version 3.3.1-SNAPSHOT solves your problem?</span>
<div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class="">
</div>
<div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">You have to include Maven Central’s snapshot repository to acquire that version:</div>
<div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class="">
</div>
<div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">
<pre class="" style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; background-color: rgb(246, 248, 250); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; color: rgb(36, 41, 46); font-variant-ligatures: normal; orphans: 2; widows: 2;"><<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">dependencies</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">dependency</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">groupId</span>>ca.mcgill.sable</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">groupId</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">artifactId</span>>soot</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">artifactId</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">version</span>>3.3.1-SNAPSHOT</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">version</span>>
</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">dependency</span>>
</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">dependencies</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">repositories</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">repository</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">id</span>>sonatype-snapshots</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">id</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">url</span>><a href="https://oss.sonatype.org/content/repositories/snapshots" class="">https://oss.sonatype.org/content/repositories/snapshots</a></<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">url</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">releases</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">enabled</span>>false</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">enabled</span>>
</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">releases</span>>
</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">repository</span>>
</<span class="pl-ent" style="box-sizing: border-box; color: rgb(34, 134, 58);">repositories</span></pre>
</div>
<div class=""><br class="">
</div>
<div style=""><br class="">
<blockquote type="cite" class="">
<div class="">Am 13.06.2019 um 01:17 schrieb Daniel Peebles <<a href="mailto:pumpkingod@gmail.com" class="">pumpkingod@gmail.com</a>>:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">
<div class="">[Sorry, I accidentally didn't reply to all before but I'm running 3.3.0]</div>
<div class=""><br class="">
</div>
I've been unable to construct a minimal repro of the issue, but here's the stack trace I get out of soot on my class. Does this help clarify where things are going wrong?
<div class=""><br class="">
</div>
<div class="">java.lang.RuntimeException: Failed to convert <com.blah.MyClass java.util.function.Function foo(com.blah.SomeClass)><br class="">
at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2040)<br class="">
at soot.SootMethod.retrieveActiveBody(SootMethod.java:402)<br class="">
at soot.jimple.toolkits.annotation.LineNumberAdder.internalTransform(LineNumberAdder.java:64)<br class="">
at soot.PackManager.runPacksNormally(PackManager.java:491)<br class="">
at soot.PackManager.runPacks(PackManager.java:419)<br class="">
at soot.Main.run(Main.java:269)<br class="">
at soot.Main.main(Main.java:141)<br class="">
at SootTests$.main(SootTests.scala:130)<br class="">
at SootTests.main(SootTests.scala)<br class="">
Caused by: java.lang.RuntimeException: Trying to create virtual invoke expression for interface type (com.blah.MyClass in file null). Use JInterfaceInvokeExpr instead!<br class="">
at soot.jimple.internal.JVirtualInvokeExpr.<init>(JVirtualInvokeExpr.java:49)<br class="">
at soot.jimple.Jimple.newVirtualInvokeExpr(Jimple.java:469)<br class="">
at soot.LambdaMetaFactory$ThunkMethodSource._invokeImplMethod(LambdaMetaFactory.java:699)<br class="">
at soot.LambdaMetaFactory$ThunkMethodSource.invokeImplMethod(LambdaMetaFactory.java:646)<br class="">
at soot.LambdaMetaFactory$ThunkMethodSource.getInvokeBody(LambdaMetaFactory.java:483)<br class="">
at soot.LambdaMetaFactory$ThunkMethodSource.getBody(LambdaMetaFactory.java:334)<br class="">
at soot.SootMethod.retrieveActiveBody(SootMethod.java:402)<br class="">
at soot.LambdaMetaFactory.makeLambdaHelper(LambdaMetaFactory.java:239)<br class="">
at soot.asm.AsmMethodSource.convertInvokeDynamicInsn(AsmMethodSource.java:1420)<br class="">
at soot.asm.AsmMethodSource.convert(AsmMethodSource.java:1791)<br class="">
at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2038)<br class="">
... 8 more<br class="">
<br class="">
</div>
</div>
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Jun 12, 2019 at 10:46 AM David Diepenbrock <<a href="mailto:ddiepenbrock@pjrcorp.com" class="">ddiepenbrock@pjrcorp.com</a>> wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr" class="">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
Dan,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
<br class="">
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
From my experience the latest 3.3.0 release has several commits that improve soot's ability to process lambdas. If you're on an older release give upgrading a try. I can tell you that 3.3.0 vs. 3.1.0 I see functionality that otherwise was broken after processing
now works as expected.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
<br class="">
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
Here's some of the changes in 3.3.0 that I tracked down when I was working soot processing with lambdas recently:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
<a href="https://github.com/Sable/soot/pull/1078" id="gmail-m_1162042272601806350LPlnk258334" target="_blank" class="">https://github.com/Sable/soot/pull/1078</a><br class="">
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
<a href="https://github.com/Sable/soot/pull/1090" id="gmail-m_1162042272601806350LPNoLP934649" target="_blank" class="">https://github.com/Sable/soot/pull/1090</a><br class="">
</div>
<br class="">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
<span style="font-family:Calibri,Arial,Helvetica,sans-serif;background-color:rgb(255,255,255);display:inline" class="">If you're already on 3.3.0 or newer then I'll have to punt.</span><br class="">
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
<br class="">
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
Best,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
David</div>
<div id="gmail-m_1162042272601806350appendonsend" class=""></div>
<hr style="display:inline-block;width:98%" class="">
<div id="gmail-m_1162042272601806350divRplyFwdMsg" dir="ltr" class=""><font face="Calibri, sans-serif" style="font-size:11pt" class=""><b class="">From:</b> Soot-list <<a href="mailto:soot-list-bounces@CS.McGill.CA" target="_blank" class="">soot-list-bounces@CS.McGill.CA</a>>
on behalf of Daniel Peebles <<a href="mailto:pumpkingod@gmail.com" target="_blank" class="">pumpkingod@gmail.com</a>><br class="">
<b class="">Sent:</b> Wednesday, June 12, 2019 9:28 AM<br class="">
<b class="">To:</b> <a href="mailto:soot-list@cs.mcgill.ca" target="_blank" class="">
soot-list@cs.mcgill.ca</a><br class="">
<b class="">Subject:</b> [Soot-list] Current state of invokedynamic support in soot</font>
<div class=""> </div>
</div>
<div class="gmail-m_1162042272601806350BodyFragment"><font size="2" class=""><span style="font-size:11pt" class="">
<div class="gmail-m_1162042272601806350PlainText">Hi all,<br class="">
<br class="">
I’m running soot on a jar and it’s barfing with an error saying “Failed to convert” on a method that returns a java.util.function.Function from a lambda expression. The bytecode involves invokedynamic and I’m wondering if soot has trouble on that sort of code,
and if so, what a good approach to dealing with it is.<br class="">
<br class="">
Unfortunately I can’t share the code in question but might be able to reduce it later if it helps or if this behavior is unexpected.<br class="">
<br class="">
Thanks,<br class="">
Dan<br class="">
_______________________________________________<br class="">
Soot-list mailing list<br class="">
<a href="mailto:Soot-list@CS.McGill.CA" target="_blank" class="">Soot-list@CS.McGill.CA</a><br class="">
<a href="https://mailman.cs.mcgill.ca/mailman/listinfo/soot-list" target="_blank" class="">https://mailman.CS.McGill.CA/mailman/listinfo/soot-list</a><br class="">
</div>
</span></font></div>
</div>
</blockquote>
</div>
_______________________________________________<br class="">
Soot-list mailing list<br class="">
<a href="mailto:Soot-list@CS.McGill.CA" class="">Soot-list@CS.McGill.CA</a><br class="">
https://mailman.CS.McGill.CA/mailman/listinfo/soot-list<br class="">
</div>
</blockquote>
</div>
<br class="">
</body>
</html>