Re: [abc-users] Re: XML attributes in a reweaving analysis

From: Nathan Weston <>
Date: Thu, 28 May 2009 10:48:03 +0100

Hi Eric,

Thanks for your reply - I'd been using
abc.weaving.weaver.Weaver.rebind(Object), so thanks for putting me
right! However, now I've changed it to reverseRebind, I'm getting a
NullPointerException at line 120 in the Weaver class:

            Object result= reverseUnitBindings.get(unitTrapOrLocal);

unitTrapOrLocal is certainly not null, so I can only assume it's the
reverseUnitBindings map which isn't being initialised. Is there
another method I have to call on the weaver to get this to work?

Many thanks for your help,

2009/5/21 Eric Bodden <>:
> Hi Nathan.
> Interesting question. Would be nice to see this working... I am not
> quite sure about the exception that you are seeing but I think I have
> an explanation for why your tags get lost on the way. The problem is
> that after you added the tags in your reweaving analysis, abc will (1)
> replace all method bodies with the bodies that existed before weaving
> and then (2) do the weaving over again. As you can imagine, (1) also
> removes your tags.
> There is however a way to work around this. The method
> abc.weaving.weaver.Weaver.reverseRebind(Object) gives you for every
> unit, trap or local that you "see" in the reweaving analysis the
> corresponding unit, trap or local that you had before weaving (except
> for those units, traps or local that were introduced through the
> weaving process, of course). When you attach your tags to those units
> instead then I believe that abc should preserve them.
> Hope that helps,
> Eric
> 2009/5/21 Nathan Weston <>:
>> Apologies, I should have said I'm using Eclipse 3.4.2, Soot Plugin 2.3.0 and
>> abc 1.3.0.
>> Thanks,
>> Nathan
>> Nathan Weston wrote:
>>> Hello all,
>>> I've implemented a new reweaving analysis which I've hooked in to abc as a
>>> new reweaving pass.  All seems to work well except that I'd like it to
>>> integrate with the Soot Eclipse plugin by providing visualisations in terms
>>> of Color and Link Tags.  In my reweaving pass I add these tags to Units in
>>> the method bodies, and I've added the Soot arguments "-xml-attributes" and
>>> "-f J".
>>> The XML files get generated and placed in an attributes folder under
>>> sootOutput in the appropriate project folder.  However, these XML files do
>>> not contain the Link and Color tags I've added, though they do contain
>>> InPreinitializationTags.    As well as this, trying to load the Jimple in
>>> Eclipse throws the following exception:
>>> java.lang.NullPointerException
>>>    at
>>> ca.mcgill.sable.soot.attributes.AttributeDomProcessor.processNode(
>>>    at
>>> ca.mcgill.sable.soot.attributes.AttributeDomProcessor.processAttributesDom(
>>>    at
>>> ca.mcgill.sable.soot.attributes.SootAttributeFilesReader.readFile(
>>>    at
>>> ca.mcgill.sable.soot.attributes.AbstractAttributesComputer.computeAttributes(
>>>    at
>>> ca.mcgill.sable.soot.attributes.AbstractAttributesComputer.getHandler(
>>>    at
>>> ca.mcgill.sable.soot.attributes.AbstractAttributesComputer.getAttributesHandler(
>>>    at
>>> ca.mcgill.sable.soot.resources.SootPartManager.updatePart(
>>>    at
>>> ca.mcgill.sable.soot.resources.EditorActivationListener.partActivated(
>>>    at
>>> org.eclipse.ui.internal.PartListenerList$
>>>    at
>>>    at
>>>    ... lots more
>>> Any help as to where I'm going wrong would be greatly appreciated!
>>> nathan
> --
> Eric Bodden
> Sable Research Group, McGill University
> Montréal, Québec, Canada
Received on Thu May 28 2009 - 10:48:26 BST

This archive was generated by hypermail 2.2.0 : Thu May 28 2009 - 16:10:12 BST