[Soot-list] Soot enquiries

ikpeme ikpeme at gatech.edu
Wed Feb 9 12:23:24 EST 2011


Hi Eric

Thank you for your quick response. I ran the command as described and observed that there is no java.lang.CharacterData but I was able to get beyond this problem in a way. I tried running my program on linux and instead got a similar error as the earlier one I sent. The error is shown below:

Exception in thread "main" soot.AbstractSootMethodRef$ClassResolutionFailedException: Class java.lang.CharacterDataLatin1 doesn't have method getType([int]) : int; failed to resolve in superclasses and interfacesLooking in java.lang.CharacterDataLatin1 which has methods []

        at soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:135)
        at soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:95)
        at soot.jimple.internal.AbstractInvokeExpr.getMethod(AbstractInvokeExpr.java:54)
        at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.getImplicitTargets(OnFlyCallGraphBuilder.java:234)
        at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:182)
        at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:81)
        at soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:84)
        at soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:80)
        at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:83)
        at soot.SceneTransformer.transform(SceneTransformer.java:39)

 
I ran the javap command and I observed that the rt.jar contains java.lang.CharacterDataLatin1 and that class contains getType. So I am not sure what is going on. I decided to try running my program on a mac and instead I get a completely different error: 


Exception in thread "main" soot.AbstractSootFieldRef$FieldResolutionFailedException: Class javax.management.openmbean.SimpleType doesn't have field DATE : javax.management.openmbean.SimpleType; failed to resolve in superclasses and interfacesLooking in javax.management.openmbean.SimpleType which has fields [<javax.management.openmbean.SimpleType: long serialVersionUID>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType BIGDECIMAL>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType BIGINTEGER>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType BOOLEAN>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType BYTE>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType CHARACTER>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType DOUBLE>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType FLOAT>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType INTEGER>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType LONG>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType OBJECTNAME>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType SHORT>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType STRING>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType VOID>, <javax.management.openmbean.SimpleType: int m_hashCode>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$String>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$math$BigDecimal>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$math$BigInteger>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Boolean>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Byte>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Character>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Double>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Float>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Integer>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Long>, <javax.management.openmbean.SimpleType: java.lang.Class class$javax$management$ObjectName>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Short>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Void>]
Looking in java.io.Serializable which has fields []
Looking in javax.management.openmbean.OpenType which has fields [<javax.management.openmbean.OpenType: long serialVersionUID>, <javax.management.openmbean.OpenType: java.lang.String[] ALLOWED_CLASSNAMES>, <javax.management.openmbean.OpenType: java.lang.String className>, <javax.management.openmbean.OpenType: java.lang.String typeName>, <javax.management.openmbean.OpenType: java.lang.String description>, <javax.management.openmbean.OpenType: java.lang.Class class$javax$management$openmbean$CompositeData>, <javax.management.openmbean.OpenType: java.lang.Class class$javax$management$openmbean$TabularData>]
Looking in java.io.Serializable which has fields []
Looking in java.lang.Object which has fields []

	at soot.AbstractSootFieldRef.resolve(AbstractSootFieldRef.java:112)
	at soot.AbstractSootFieldRef.resolve(AbstractSootFieldRef.java:73)
	at soot.jimple.StaticFieldRef.getField(StaticFieldRef.java:75)
	at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval_(AugEvalFunction.java:189)
	at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval(AugEvalFunction.java:41)
	at soot.jimple.toolkits.typing.fast.TypeResolver.applyAssignmentConstraints(TypeResolver.java:402)
	at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:113)
	at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:93)
	at soot.BodyTransformer.transform(BodyTransformer.java:51)
	at soot.Transform.apply(Transform.java:104)
	at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:66)
	at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
	at soot.Pack.apply(Pack.java:124)
	at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:117)
	at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:82)
	at soot.SootMethod.retrieveActiveBody(SootMethod.java:329)
	at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:181)
	at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:81)
	at soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:84)
	at soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:80)
	at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:83)
	at soot.SceneTransformer.transform(SceneTransformer.java:39)

I also checked the class SimpleType in classes.jar (linux equivalent of rt.jar) and found the field DATE. Any help you can offer is greatly appreciated.

Thanks

----- Original Message -----
From: "Eric Bodden" <bodden at st.informatik.tu-darmstadt.de>
To: "ikpeme" <ikpeme at gatech.edu>
Cc: soot-list at sable.mcgill.ca
Sent: Wednesday, February 9, 2011 3:17:14 AM
Subject: Re: Soot enquiries

Hello.

> Hi Eric

There's certainly more people on this list willing to help you out.

> Exception in thread "main" soot.AbstractSootMethodRef$ClassResolutionFailedException: Class java.lang.CharacterData doesn't have method of([int]) : java.lang.CharacterData; failed to resolve in superclasses and interfaces Looking in java.lang.CharacterData which has methods []

Typically you get this exception when using an inconsistent set of
class files, and because the Java runtime library is usually
consistent with itself I have actually never seen this issue on a
java.lang.* class.

What happens when you type the following?

javap -private -classpath <your rt.jar> java.lang.CharacterData

You should be seeing the contents of java.lang.CharacterData. Does the
method of([int]) show up?

Eric
-- 
Dr. Eric Bodden, http://bodden.de/
Principal Investigator in Secure Services at CASED
Coordinator of the CASED Advisory Board of Study Affairs
PostDoc at Software Technology Group, Technische Universität Darmstadt
Tel: +49 6151 16-5478    Fax: +49 6151 16-5410
Mailing Address: S2|02 A209, Hochschulstraße 10, 64289 Darmstadt


More information about the Soot-list mailing list