[Soot-list] Class java.util.HashMap doesn't have method hash([int])?

Xinwei Xie xinweix at cse.unsw.edu.au
Fri Aug 3 08:19:17 EDT 2012


Hi Eric,
Thanks for your reply.
I just use the default JDK in the system (actually it is OSX Lion). What
else can I specify to avoid the problem rather than using the latest one
from Git repository. Thanks.

On Fri, Aug 3, 2012 at 10:10 PM, Eric Bodden <eric.bodden at ec-spride.de>wrote:

> Hello.
>
> Yes it seems that you are analyzing your program with the wrong JDK on
> Soot's classpath. If you don't really care about the method then you
> can download the current version of Soot from Git and use the option
> -ire. This should ignore such resolution errors.
>
> Eric
>
> On 3 August 2012 10:30, Xinwei Xie <xinweix at cse.unsw.edu.au> wrote:
> > What happened to this. I ran it on my Macbook Pro with java version
> 1.6.0_33
> > and soot 2.5.0
> >
> > java -Xmx4G -jar lib/soot-2.5.0.jar  -w -app -cp
> >
> .:/Users/xinweix/Documents/workspace/hedc/bin/:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jce.jar
> > -p cg.spark  enabled:true Tester
> >
> > I got the following error: (is it because the incorrect version of java
> I am
> > using?)
> >
> > [Spark] Type masks in 3.2 seconds.
> > [Spark] Pointer Graph simplified in 0.0 seconds.
> > Exception in thread "main"
> > soot.SootMethodRefImpl$ClassResolutionFailedException: Class
> > java.util.HashMap doesn't have method hash([int]) : int; failed to
> resolve
> > in superclasses and interfacesLooking in java.util.HashMap which has
> methods
> > [<java.util.HashMap: void <init>()>, <java.util.HashMap: void
> > <init>(java.util.Map)>, <java.util.HashMap: void <init>(int)>,
> > <java.util.HashMap: void <init>(int,float)>, <java.util.HashMap: int
> > size()>, <java.util.HashMap: boolean isEmpty()>, <java.util.HashMap:
> boolean
> > containsValue(java.lang.Object)>, <java.util.HashMap: boolean
> > containsKey(java.lang.Object)>, <java.util.HashMap: java.lang.Object
> > get(java.lang.Object)>, <java.util.HashMap: java.lang.Object
> > put(java.lang.Object,java.lang.Object)>, <java.util.HashMap:
> > java.lang.Object remove(java.lang.Object)>, <java.util.HashMap: void
> > putAll(java.util.Map)>, <java.util.HashMap: void clear()>,
> > <java.util.HashMap: java.lang.Object clone()>, <java.util.HashMap:
> > java.util.Set keySet()>, <java.util.HashMap: java.util.Collection
> values()>,
> > <java.util.HashMap: java.util.Set entrySet()>, <java.util.HashMap: int
> > hash(java.lang.Object)>, <java.util.HashMap: java.util.HashMap$Entry
> > getEntry(java.util.Map$Entry)>, <java.util.HashMap: void rehash()>,
> > <java.util.HashMap: java.util.HashMap$Entry
> > access$0(java.util.HashMap,java.util.Map$Entry)>]
> > Looking in java.util.AbstractMap which has methods
> [<java.util.AbstractMap:
> > void <init>()>, <java.util.AbstractMap: void clear()>,
> > <java.util.AbstractMap: boolean containsKey(java.lang.Object)>,
> > <java.util.AbstractMap: boolean containsValue(java.lang.Object)>,
> > <java.util.AbstractMap: java.util.Set entrySet()>,
> <java.util.AbstractMap:
> > boolean equals(java.lang.Object)>, <java.util.AbstractMap:
> java.lang.Object
> > get(java.lang.Object)>, <java.util.AbstractMap: int hashCode()>,
> > <java.util.AbstractMap: boolean isEmpty()>, <java.util.AbstractMap:
> > java.util.Set keySet()>, <java.util.AbstractMap: java.lang.Object
> > put(java.lang.Object,java.lang.Object)>, <java.util.AbstractMap: void
> > putAll(java.util.Map)>, <java.util.AbstractMap: java.lang.Object
> > remove(java.lang.Object)>, <java.util.AbstractMap: int size()>,
> > <java.util.AbstractMap: java.lang.String toString()>,
> > <java.util.AbstractMap: java.util.Collection values()>]
> > Looking in java.lang.Object which has methods [<java.lang.Object: void
> > <init>()>, <java.lang.Object: void registerNatives()>, <java.lang.Object:
> > java.lang.Class getClass()>, <java.lang.Object: int hashCode()>,
> > <java.lang.Object: boolean equals(java.lang.Object)>, <java.lang.Object:
> > java.lang.Object clone()>, <java.lang.Object: java.lang.String
> toString()>,
> > <java.lang.Object: void notify()>, <java.lang.Object: void notifyAll()>,
> > <java.lang.Object: void wait(long)>, <java.lang.Object: void
> > wait(long,int)>, <java.lang.Object: void wait()>, <java.lang.Object: void
> > finalize()>, <java.lang.Object: void <clinit>()>]
> > Looking in java.util.Map which has methods [<java.util.Map: void
> clear()>,
> > <java.util.Map: boolean containsKey(java.lang.Object)>, <java.util.Map:
> > boolean containsValue(java.lang.Object)>, <java.util.Map: java.util.Set
> > entrySet()>, <java.util.Map: boolean equals(java.lang.Object)>,
> > <java.util.Map: java.lang.Object get(java.lang.Object)>, <java.util.Map:
> > java.lang.Object put(java.lang.Object,java.lang.Object)>, <java.util.Map:
> > int hashCode()>, <java.util.Map: boolean isEmpty()>, <java.util.Map:
> > java.util.Set keySet()>, <java.util.Map: void putAll(java.util.Map)>,
> > <java.util.Map: java.lang.Object remove(java.lang.Object)>,
> <java.util.Map:
> > int size()>, <java.util.Map: java.util.Collection values()>]
> > Looking in java.lang.Cloneable which has methods []
> > Looking in java.io.Serializable which has methods []
> > Looking in java.util.Map which has methods [<java.util.Map: void
> clear()>,
> > <java.util.Map: boolean containsKey(java.lang.Object)>, <java.util.Map:
> > boolean containsValue(java.lang.Object)>, <java.util.Map: java.util.Set
> > entrySet()>, <java.util.Map: boolean equals(java.lang.Object)>,
> > <java.util.Map: java.lang.Object get(java.lang.Object)>, <java.util.Map:
> > java.lang.Object put(java.lang.Object,java.lang.Object)>, <java.util.Map:
> > int hashCode()>, <java.util.Map: boolean isEmpty()>, <java.util.Map:
> > java.util.Set keySet()>, <java.util.Map: void putAll(java.util.Map)>,
> > <java.util.Map: java.lang.Object remove(java.lang.Object)>,
> <java.util.Map:
> > int size()>, <java.util.Map: java.util.Collection values()>]
> >
> > at soot.SootMethodRefImpl.resolve(SootMethodRefImpl.java:183)
> > at soot.SootMethodRefImpl.resolve(SootMethodRefImpl.java:109)
> > at
> >
> soot.jimple.internal.AbstractInvokeExpr.getMethod(AbstractInvokeExpr.java:54)
> > at
> >
> soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.findReceivers(OnFlyCallGraphBuilder.java:553)
> > at
> >
> soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:533)
> > at
> >
> soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:426)
> > at soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:55)
> > at
> >
> soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java:123)
> > at soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:53)
> > at
> >
> soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:152)
> > at soot.SceneTransformer.transform(SceneTransformer.java:39)
> > at soot.Transform.apply(Transform.java:89)
> > at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
> > at
> >
> soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:49)
> > at soot.Pack.apply(Pack.java:114)
> > at soot.PackManager.runWholeProgramPacks(PackManager.java:417)
> > at soot.PackManager.runPacks(PackManager.java:336)
> > at soot.Main.run(Main.java:198)
> > at soot.Main.main(Main.java:141)
> >
> >
> > --
> > Xinwei XIE
> > PhD Candidate, School of Computer Science and Engineering
> > University of New South Wales, Sydney, Australia, 2052
> > Email: xinweix at cse.unsw.edu.au
> > Homepage: www.cse.unsw.edu.au/~xinweix
> > Mobile: +61 0432 679315
> >
> >
> > _______________________________________________
> > Soot-list mailing list
> > Soot-list at sable.mcgill.ca
> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >
>
>
>
> --
> Eric Bodden, Ph.D., http://bodden.de/
> Head of Secure Software Engineering Group at EC SPRIDE
> Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
> Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt
>



-- 
Xinwei XIE
PhD Candidate, School of Computer Science and Engineering
University of New South Wales, Sydney, Australia, 2052
Email: xinweix at cse.unsw.edu.au
Homepage: www.cse.unsw.edu.au/~xinweix
Mobile: +61 0432 679315
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20120803/663a9caf/attachment.html 


More information about the Soot-list mailing list