[Soot-list] ClassCastException while reading in fop class

David Mohr dmohr at cs.unm.edu
Mon Nov 2 11:57:06 EST 2009


On Wed, Oct 28, 2009 at 1:33 AM, Eric Bodden
<bodden at st.informatik.tu-darmstadt.de> wrote:
> Thanks David for the error report. Would it be possible to still send
> us a link to the exact fop JAR file that you are using? (the TAR only
> contains the support JARs from what I can see)

Yes, of course.

You can grab the dacapo jar at:
  http://digamma.cs.unm.edu/~dmohr/dacapo-20081126.jar
and again the url for the support classes:
  http://digamma.cs.unm.edu/~dmohr/fop-support.tar

I then ran soot like this:
CLASSPATH=dacapo-20081126.jar:JimiProClasses.zip:ant.jar:jai-core-1.1.3-alpha.jar:jai_codec-1.1.3-alpha.jar:$SOOT_CP
\
soot.Main -pp -p jb use-original-names -f J org.apache.fop.image.BmpImage

While playing around with this, I noticed that the exception only gets
thrown when I specify use-original-names.

~David

> Thanks,
> Eric
>
> --
> Eric Bodden
> Software Technology Group, Technische Universität Darmstadt, Germany
> Tel: +49 6151 16-5478    Fax: +49 6151 16-5410
> Mailing Address: S2|02 A209, Hochschulstraße 10, 64289 Darmstadt
>
>
>
> 2009/10/27 David Mohr <dmohr at cs.unm.edu>:
>> Hi,
>> I'm trying to run fop through soot 2.3.0, but I'm getting a
>> ClassCastException. I narrowed it down to the
>> org.apache.fop.image.BmpImage class.
>>
>> ---SNIP---
>> Soot started on Tue Oct 27 11:11:58 MDT 2009
>> Exception in thread "main" java.lang.ClassCastException:
>> soot.jimple.toolkits.typing.fast.BottomType cannot be cast to
>> soot.ArrayType
>>       at soot.jimple.toolkits.typing.fast.UseChecker.caseAssignStmt(UseChecker.java:156)
>>       at soot.jimple.internal.JAssignStmt.apply(JAssignStmt.java:221)
>>       at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:55)
>>       at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:345)
>>       at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:355)
>>       at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:116)
>>       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.PackManager.retrieveAllBodies(PackManager.java:966)
>>       at soot.PackManager.runPacks(PackManager.java:333)
>>       at soot.Main.run(Main.java:202)
>>       at soot.Main.main(Main.java:145)
>> ---SNAP---
>>
>> I have the support jars on the classpath, and run soot with '-pp -p jb
>> use-original-names -f J'. I used fop from the dacapo benchmark, and to
>> save anyone who wants to try this time, the support jars can be found
>> at http://digamma.cs.unm.edu/~dmohr/fop-support.tar .
>>
>> Does anyone have an idea why this is happening?
>>
>> Thanks,
>> ~David
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>
>


More information about the Soot-list mailing list