[Soot-list] A little problem when run a "wjtp" Transformer

Eric Bodden eric.bodden at uni-paderborn.de
Tue Nov 13 05:54:16 EST 2018


Hello.

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.

If it’s really an interface type then this seems to be a bug in Soot which you kindly should report here:
https://github.com/Sable/soot/issues

In that case please include detailed instructions on how to reproduce the problem.

Cheers
Eric

> On 13. Nov 2018, at 05:54, 周书林 <zhoushulin1992 at gmail.com> wrote:
> 
> 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).
> 
> I wrote a Transformer to analyse some Java software. But there comes a problem. The attachment is the stack information.
> 
> 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:
> 
> 
> package org.apache.hadoop.hbase.regionserver;
> 
> import org.apache.hadoop.hbase.io.MetricsIOSource;
> import org.apache.hadoop.hbase.io.MetricsIOWrapper;
> import org.apache.yetus.audience.InterfaceAudience;
> 
> /**
>  * Interface of a factory to create Metrics Sources used inside of regionservers.
>  */
> @InterfaceAudience.Private
> public interface MetricsRegionServerSourceFactory {
> 
>   /**
>    * Given a wrapper create a MetricsRegionServerSource.
>    *
>    * @param regionServerWrapper The wrapped region server
>    * @return a Metrics Source.
>    */
>   MetricsRegionServerSource createServer(MetricsRegionServerWrapper regionServerWrapper);
> 
>   /**
>    * Create a MetricsRegionSource from a MetricsRegionWrapper.
>    *
>    * @param wrapper The wrapped region
>    * @return A metrics region source
>    */
>   MetricsRegionSource createRegion(MetricsRegionWrapper wrapper);
> 
>   /**
>    * Create a MetricsTableSource from a MetricsTableWrapper.
>    *
>    * @param table The table name
>    * @param wrapper The wrapped table aggregate
>    * @return A metrics table source
>    */
>   MetricsTableSource createTable(String table, MetricsTableWrapperAggregate wrapper);
> 
>   /**
>    * Get a MetricsTableAggregateSource
>    *
>    * @return A metrics table aggregate source
>    */
>   MetricsTableAggregateSource getTableAggregate();
> 
>   /**
>    * Get a MetricsHeapMemoryManagerSource
>    * @return A metrics heap memory manager source
>    */
>   MetricsHeapMemoryManagerSource getHeapMemoryManager();
> 
>   /**
>    * Create a MetricsIOSource from a MetricsIOWrapper.
>    *
>    * @return A metrics IO source
>    */
>   MetricsIOSource createIO(MetricsIOWrapper wrapper);
> }
> 
> So, what should I do with soot? 
> 
> Sincerely hope for suggestions from you! Thank you very much!
> 
> <attachment>_______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list



More information about the Soot-list mailing list