<div dir="ltr">Hi Eric,<div><br></div><div>Thank you very much!<br><div><br></div><div>This "org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactory" is in another jar "hbase-hadoop-compat.jar". So there is an exception in my analysis transformer. But I still have a problem, I have set "allow_phantom_refs" as "true", but this unknown class/interface is not resolved correctly. Is there any problem in soot?</div><div><br></div><div>Sincerely</div></div><div>Sep</div></div><br><div class="gmail_quote"><div dir="ltr">Eric Bodden <<a href="mailto:eric.bodden@uni-paderborn.de">eric.bodden@uni-paderborn.de</a>> 于2018年11月13日周二 下午6:54写道:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello.<br>
<br>
Are you absolutely sure that the type is also an interface type in the JAR file you are analyzing? You can try the command “javap -v —classpath <jarFile> org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactory” to find this out.<br>
<br>
If it’s really an interface type then this seems to be a bug in Soot which you kindly should report here:<br>
<a href="https://github.com/Sable/soot/issues" rel="noreferrer" target="_blank">https://github.com/Sable/soot/issues</a><br>
<br>
In that case please include detailed instructions on how to reproduce the problem.<br>
<br>
Cheers<br>
Eric<br>
<br>
> On 13. Nov 2018, at 05:54, 周书林 <<a href="mailto:zhoushulin1992@gmail.com" target="_blank">zhoushulin1992@gmail.com</a>> wrote:<br>
> <br>
> Hi, soot's developers and "experienced users", I'm new to soot and recently I've been using it to do some static analysis work on Java program(I'm also not familiar with static analysis, sorry about that).<br>
> <br>
> I wrote a Transformer to analyse some Java software. But there comes a problem. The attachment is the stack information.<br>
> <br>
> The detail is, this "org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactory" is indeed an interface defined in "hbase/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactory.java" as follows:<br>
> <br>
> <br>
> package org.apache.hadoop.hbase.regionserver;<br>
> <br>
> import <a href="http://org.apache.hadoop.hbase.io" target="_blank">org.apache.hadoop.hbase.io</a>.MetricsIOSource;<br>
> import <a href="http://org.apache.hadoop.hbase.io" target="_blank">org.apache.hadoop.hbase.io</a>.MetricsIOWrapper;<br>
> import org.apache.yetus.audience.InterfaceAudience;<br>
> <br>
> /**<br>
> * Interface of a factory to create Metrics Sources used inside of regionservers.<br>
> */<br>
> @InterfaceAudience.Private<br>
> public interface MetricsRegionServerSourceFactory {<br>
> <br>
> /**<br>
> * Given a wrapper create a MetricsRegionServerSource.<br>
> *<br>
> * @param regionServerWrapper The wrapped region server<br>
> * @return a Metrics Source.<br>
> */<br>
> MetricsRegionServerSource createServer(MetricsRegionServerWrapper regionServerWrapper);<br>
> <br>
> /**<br>
> * Create a MetricsRegionSource from a MetricsRegionWrapper.<br>
> *<br>
> * @param wrapper The wrapped region<br>
> * @return A metrics region source<br>
> */<br>
> MetricsRegionSource createRegion(MetricsRegionWrapper wrapper);<br>
> <br>
> /**<br>
> * Create a MetricsTableSource from a MetricsTableWrapper.<br>
> *<br>
> * @param table The table name<br>
> * @param wrapper The wrapped table aggregate<br>
> * @return A metrics table source<br>
> */<br>
> MetricsTableSource createTable(String table, MetricsTableWrapperAggregate wrapper);<br>
> <br>
> /**<br>
> * Get a MetricsTableAggregateSource<br>
> *<br>
> * @return A metrics table aggregate source<br>
> */<br>
> MetricsTableAggregateSource getTableAggregate();<br>
> <br>
> /**<br>
> * Get a MetricsHeapMemoryManagerSource<br>
> * @return A metrics heap memory manager source<br>
> */<br>
> MetricsHeapMemoryManagerSource getHeapMemoryManager();<br>
> <br>
> /**<br>
> * Create a MetricsIOSource from a MetricsIOWrapper.<br>
> *<br>
> * @return A metrics IO source<br>
> */<br>
> MetricsIOSource createIO(MetricsIOWrapper wrapper);<br>
> }<br>
> <br>
> So, what should I do with soot? <br>
> <br>
> Sincerely hope for suggestions from you! Thank you very much!<br>
> <br>
> <attachment>_______________________________________________<br>
> Soot-list mailing list<br>
> <a href="mailto:Soot-list@CS.McGill.CA" target="_blank">Soot-list@CS.McGill.CA</a><br>
> <a href="https://mailman.CS.McGill.CA/mailman/listinfo/soot-list" rel="noreferrer" target="_blank">https://mailman.CS.McGill.CA/mailman/listinfo/soot-list</a><br>
<br>
</blockquote></div>