<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Thanks Eric,</p>
<p style="margin-top:0;margin-bottom:0">I greatly appreciate your response!  </p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">When you say the config file, are you talking about the play-out-agent's poa.properties file?  I have not found any configuration options regarding enabling/disabling via "<span>dontNormalize"</span>.  Otherwise, I have
 set the transformations to only enable the first 4 (ClassForName, ClassNewInstance, ConstructorNewInstance and MethodInvoke).</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">I'm reviewing the paper again
 taking special note to the sections on normalization. I have looked it over briefly and it will certainly be helpful. I will follow up after I've studied the paper carefully.</span><br>
</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Best,</p>
<p style="margin-top:0;margin-bottom:0">David</p>
<br>
<div style="color: rgb(0, 0, 0);">
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Eric Bodden <eric.bodden@uni-paderborn.de><br>
<b>Sent:</b> Thursday, April 25, 2019 9:10 AM<br>
<b>To:</b> David Diepenbrock; soot-list@cs.mcgill.ca<br>
<b>Subject:</b> Re: [Soot-list] Tamiflex reflection log lambda entries</font>
<div> </div>
</div>
<div>
<div id="x_d_1556201418443" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12.0pt; color:#1F497D">
<p dir="ltr" style="margin-top:0; margin-bottom:0">Hi David.</p>
<br>
<p dir="ltr" style="margin-top:0; margin-bottom:0">Sorry about the late response. In the paper you should find a section on normalizing names. The names of the classes need to be normalized. To configure which names Tamiflex does normalize, you need to edit
 the appropriate entries in the config file.</p>
<br>
<p dir="ltr" style="margin-top:0; margin-bottom:0">Does that help?</p>
<br>
<p dir="ltr" style="margin-top:0; margin-bottom:0">Cheers</p>
<p dir="ltr" style="margin-top:0; margin-bottom:0">Eric</p>
<br>
<div id="x_signature-x" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12.0pt; color:#1F497D">
--<br>
Sent from my mobile<br>
</div>
</div>
<div class="x_quoted_separate_body">
<div id="x_quoted_header" style="clear:both">
<hr style="border:none; height:1px; color:#E1E1E1; background-color:#E1E1E1">
<div style="border:none; padding:3.0pt 0cm 0cm 0cm"><span style="font-size:11.0pt; font-family:Calibri,Arial,Helvetica,sans-serif"><b>Von:</b> David Diepenbrock <ddiepenbrock@pjrcorp.com><br>
<b>Gesendet:</b> Dienstag, 16. April 2019 23:56<br>
<b>An:</b> soot-list@cs.mcgill.ca<br>
<b>Betreff:</b> [Soot-list] Tamiflex reflection log lambda entries <br>
</span></div>
</div>
<br type="attribution">
<div id="x_quoted_body">
<p dir="ltr">Hello Soot community, <br>
<br>
I am having an issue with Soot's reflection log processing and I'm hoping someone might be able to provide some information or guidance. I'm using Tamiflex's play-out-agent to generate a reflection log and that seems to work well. However, when importing the
 log Soot is throwing an exception. It seems the problem I'm having is similar to those described in these older postings, to which I did not find any responses:
<br>
    https://mailman.cs.mcgill.ca/pipermail/soot-list/2016-October/008587.html <br>
    https://mailman.cs.mcgill.ca/pipermail/soot-list/2016-March/008418.html <br>
<br>
The specific issue is that lambda usage results in a Constructor.newInstance call such as this being added to the reflection log:
<br>
<br>
Constructor.newInstance;<java.awt.GraphicsEnvironment$$Lambda$1.1480010240: void <init>()>;java.lang.invoke.InnerClassLambdaMetafactory.buildCallSite;215;isAccessible=true;
<br>
<br>
Here is an excerpt of the exception during the Soot processing when it attempts to parse the above line of the reflection log (which is the first such Lambda entry).
<br>
<br>
java.lang.RuntimeException: Unknown method for signature: <java.awt.GraphicsEnvironment$$Lambda$1.1480010240: void <init>()>
<br>
at soot.jimple.toolkits.reflection.ReflectionTraceInfo.<init>(ReflectionTraceInfo.java:113) ~[soot-3.1.0.jar:?]
<br>
at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder$TraceBasedReflectionModel.<init>(OnFlyCallGraphBuilder.java:1038) ~[soot-3.1.0.jar:?]
<br>
at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder$TraceBasedReflectionModel.<init>(OnFlyCallGraphBuilder.java:1025) ~[soot-3.1.0.jar:?]
<br>
at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.<init>(OnFlyCallGraphBuilder.java:224) ~[soot-3.1.0.jar:?]
<br>
at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.<init>(OnFlyCallGraphBuilder.java:230) ~[soot-3.1.0.jar:?]
<br>
at soot.jimple.spark.solver.OnFlyCallGraph.<init>(OnFlyCallGraph.java:75) ~[soot-3.1.0.jar:?]
<br>
at soot.jimple.spark.builder.ContextInsensitiveBuilder.setup(ContextInsensitiveBuilder.java:81) ~[soot-3.1.0.jar:?]
<br>
at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:93) ~[soot-3.1.0.jar:?]
<br>
at soot.SceneTransformer.transform(SceneTransformer.java:39) ~[soot-3.1.0.jar:?] <br>
... <br>
<br>
If I remove all of the lines from the log containing "$$Lambda$" then soot is able to process the reflection log and I do find that the callgraph has edges from reflection that otherwise were missing. In other words, the reflection log is certainly being processed
 and doing what I was hoping/expecting. <br>
<br>
As noted in the above exception trace, I'm currently using the soot release version 3.1.0. I have also tried with version 3.3.0 with the same results.
<br>
<br>
I'm wondering if there is some option or setting that I am might be missing, or perhaps there is a general lack of support for lambda (and perhaps other InvokeDynamic related reflection)?
<br>
<br>
Thanks in advance for any information that can be shared on this topic. <br>
<br>
Best, <br>
David <br>
_______________________________________________ <br>
Soot-list mailing list <br>
Soot-list@CS.McGill.CA <br>
https://mailman.CS.McGill.CA/mailman/listinfo/soot-list <br>
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>