<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<!-- MHonArc v2.6.10 -->
	<channel>
		<title>aspectj-dev</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/maillist.html</link>
		<description>aspectj-dev</description>
		<language>en-us</language>
		<pubDate>Tue, 08 May 2012 14:40:11 GMT</pubDate>
		<lastBuildDate>Tue, 08 May 2012 14:40:11 GMT</lastBuildDate>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<generator>MHonArc RSS 2.0 RCFile</generator>
		<managingEditor>webmaster@eclipse.org (Webmaster)</managingEditor>
		<webMaster>webmaster@eclipse.org (Webmaster)</webMaster>
		<image>
			<title>aspectj-dev</title>
			<url>http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg</url>
			<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/maillist.html</link>
		</image>
 

	<item>
		<title>Re: [aspectj-dev] NPE at org.aspectj.weaver.bcel.LazyMethodGen.remap(LazyMethodGen.java:1415) - AspectJ 1.6.11</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02976.html</link>
		<description> </description>
		<content:encoded><![CDATA[<pre>Hi,

There are a couple of old issues related to CGLIB:
<a  href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120372">https://bugs.eclipse.org/bugs/show_bug.cgi?id=120372</a>
<a  href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117854">https://bugs.eclipse.org/bugs/show_bug.cgi?id=117854</a>

Basically, CGLIB bytecode is 'unusual' - valid but unusual.  However,
typically you don't want to weave into these things.  I haven't seen
the particular manifestation you are showing here though, I'd need a
simple sample to recreate if you want me to investigate further but
the reason CGLIB weaving hasn't been fully addressed is because
usually weaving it is accidental and undesirable - so the solution is
to exclude it.  I seem to recall the implementation effort to fix the
proxy weaving case was very costly and difficult to justify when the
answer is that it shouldn't be woven.

Having said that I've seen problems with the generated proxies in the
past, not with the FastClass objects, so this might be something new.
Are you sure you need to weave them?

Feel free to raise an issue for the NPE though - obviously it
shouldn't NPE - but the cheap fix for that might be a message
indicating you should exclude CGLIB stuff because it cannot be
reliably woven.

cheers,
Andy

On 7 May 2012 19:44, Choudary Kothapalli &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt; My product MaintainJ uses AspectJ 1.6.11 to load time weave Java
&gt; applications. When instrumenting Spring based applications, sometimes I get
&gt; exceptions like the one below:
&gt;
&gt; May 7, 2012 10:51:22 PM org.aspectj.weaver.tools.Jdk14Trace error
&gt; SEVERE: com/xxx/yyy/zzz/Abc$$FastClassByCGLIB$$161e674
&gt; java.lang.NullPointerException
&gt; &#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyMethodGen.remap(LazyMethodGen.java:1415)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.aspectj.weaver.bcel.LazyMethodGen.addExceptionHandlers(LazyMethodGen.java:1269)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.aspectj.weaver.bcel.LazyMethodGen.packBody(LazyMethodGen.java:1067)
&gt; &#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyMethodGen.pack(LazyMethodGen.java:968)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.aspectj.weaver.bcel.LazyMethodGen.getMethod(LazyMethodGen.java:462)
&gt; &#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyClassGen.writeBack(LazyClassGen.java:492)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.aspectj.weaver.bcel.LazyClassGen.getJavaClassBytesIncludingReweavable(LazyClassGen.java:674)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.aspectj.weaver.bcel.BcelWeaver.getClassFilesFor(BcelWeaver.java:1436)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1398)
&gt; &#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1180)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:467)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:318)
&gt; &#xA0;&#xA0;&#xA0; at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:96)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54)
&gt; &#xA0;&#xA0;&#xA0; at sun.instrument.TransformerManager.transform(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at sun.instrument.InstrumentationImpl.transform(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at java.lang.ClassLoader.defineClass1(Native Method)
&gt; &#xA0;&#xA0;&#xA0; at java.lang.ClassLoader.defineClassCond(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at java.lang.ClassLoader.defineClass(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at java.lang.reflect.Method.invoke(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.reflect.FastClass$Generator.create(FastClass.java:64)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.MethodProxy.helper(MethodProxy.java:81)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.MethodProxy.create(MethodProxy.java:46)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; com.fl.sas3.render.engine.PreviewRenderer$$EnhancerByCGLIB$$a285e30b.CGLIB$STATICHOOK13(&lt;generated&gt;)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; com.fl.sas3.render.engine.PreviewRenderer$$EnhancerByCGLIB$$a285e30b.&lt;clinit&gt;(&lt;generated&gt;)
&gt; &#xA0;&#xA0;&#xA0; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&gt; &#xA0;&#xA0;&#xA0; at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at java.lang.reflect.Method.invoke(Unknown Source)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.setCallbacksHelper(Enhancer.java:616)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.setThreadCallbacks(Enhancer.java:609)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.createUsingReflection(Enhancer.java:631)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.firstInstance(Enhancer.java:538)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:225)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
&gt; &#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:201)
&gt; &#xA0;&#xA0;&#xA0; at
&gt; org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
&gt; ...
&gt;
&gt; The errors are pretty consistent - all of them are at the same line
&gt; LazyMethodGen.java:1415. Is this something that can be fixed? Is this
&gt; related to this bug?
&gt;
&gt; I currently ask my users to exclude that class. Any fix for this will be of
&gt; great help.
&gt;
&gt; Thanks,
&gt; Choudary Kothapalli.
&gt;
&gt; _______________________________________________
&gt; aspectj-dev mailing list
&gt; aspectj-dev@xxxxxxxxxxx
&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;

</pre>]]></content:encoded>
		<pubDate>Tue, 08 May 2012 14:39:18 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02976.html</guid>
		<author>andrew.clement@xxxxxxx (Andy Clement)</author>
	</item>


	<item>
		<title>[aspectj-dev] NPE at org.aspectj.weaver.bcel.LazyMethodGen.remap(LazyMethodGen.java:1415) - AspectJ 1.6.11</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02975.html</link>
		<description>My product MaintainJ uses AspectJ 1.6.11 to load time weave Java applications. When instrumenting Spring based applications, sometimes I get exceptions like the one below:May 7, 2012 10:51:22 PM org.aspectj.weaver.tools.Jdk14Trace error SEVERE: com/xxx/yyy...</description>
		<content:encoded><![CDATA[My product MaintainJ uses AspectJ 1.6.11 to load time weave Java applications. When instrumenting Spring based applications, sometimes I get exceptions like the one below:<br><br>May 7, 2012 10:51:22 PM org.aspectj.weaver.tools.Jdk14Trace error<br>
SEVERE: com/xxx/yyy/zzz/Abc$$FastClassByCGLIB$$161e674<br>java.lang.NullPointerException<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyMethodGen.remap(<b>LazyMethodGen.java:1415</b>)<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyMethodGen.addExceptionHandlers(LazyMethodGen.java:1269)<br>
&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyMethodGen.packBody(LazyMethodGen.java:1067)<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyMethodGen.pack(LazyMethodGen.java:968)<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyMethodGen.getMethod(LazyMethodGen.java:462)<br>
&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyClassGen.writeBack(LazyClassGen.java:492)<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.LazyClassGen.getJavaClassBytesIncludingReweavable(LazyClassGen.java:674)<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.BcelWeaver.getClassFilesFor(BcelWeaver.java:1436)<br>
&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1398)<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1180)<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:467)<br>
&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:318)<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:96)<br>&#xA0;&#xA0;&#xA0; at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54)<br>
&#xA0;&#xA0;&#xA0; at sun.instrument.TransformerManager.transform(Unknown Source)<br>&#xA0;&#xA0;&#xA0; at sun.instrument.InstrumentationImpl.transform(Unknown Source)<br>&#xA0;&#xA0;&#xA0; at java.lang.ClassLoader.defineClass1(Native Method)<br>&#xA0;&#xA0;&#xA0; at java.lang.ClassLoader.defineClassCond(Unknown Source)<br>
&#xA0;&#xA0;&#xA0; at java.lang.ClassLoader.defineClass(Unknown Source)<br>&#xA0;&#xA0;&#xA0; at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)<br>&#xA0;&#xA0;&#xA0; at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>&#xA0;&#xA0;&#xA0; at java.lang.reflect.Method.invoke(Unknown Source)<br>
&#xA0;&#xA0;&#xA0; at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)<br>&#xA0;&#xA0;&#xA0; at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)<br>&#xA0;&#xA0;&#xA0; at net.sf.cglib.reflect.FastClass$Generator.create(FastClass.java:64)<br>
&#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.MethodProxy.helper(MethodProxy.java:81)<br>&#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.MethodProxy.create(MethodProxy.java:46)<br>&#xA0;&#xA0;&#xA0; at com.fl.sas3.render.engine.PreviewRenderer$$EnhancerByCGLIB$$a285e30b.CGLIB$STATICHOOK13(&lt;generated&gt;)<br>
&#xA0;&#xA0;&#xA0; at com.fl.sas3.render.engine.PreviewRenderer$$EnhancerByCGLIB$$a285e30b.&lt;clinit&gt;(&lt;generated&gt;)<br>&#xA0;&#xA0;&#xA0; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>&#xA0;&#xA0;&#xA0; at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>
&#xA0;&#xA0;&#xA0; at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>&#xA0;&#xA0;&#xA0; at java.lang.reflect.Method.invoke(Unknown Source)<br>&#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.setCallbacksHelper(Enhancer.java:616)<br>&#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.setThreadCallbacks(Enhancer.java:609)<br>
&#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.createUsingReflection(Enhancer.java:631)<br>&#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.firstInstance(Enhancer.java:538)<br>&#xA0;&#xA0;&#xA0; at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:225)<br>
&#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)<br>&#xA0;&#xA0;&#xA0; at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)<br>&#xA0;&#xA0;&#xA0; at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:201)<br>
&#xA0;&#xA0;&#xA0; at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)<br>...<br><br>The errors are pretty consistent - all of them are at the same line LazyMethodGen.java:1415. Is this something that can be fixed? Is this related to <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39479">this bug</a>?<br>
<br>I currently ask my users to exclude that class. Any fix for this will be of great help.<br><br>Thanks,<br>Choudary Kothapalli.<br>
]]></content:encoded>
		<pubDate>Tue, 08 May 2012 02:44:08 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02975.html</guid>
		<author>choudary.kothapalli@xxxxxxx (Choudary Kothapalli)</author>
	</item>


	<item>
		<title>[aspectj-dev] Project meta data is out of date for tools.aspectj</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02974.html</link>
		<description>Adrian, Projects are required to keep meta data up to date using the MyFoundation Portal (http://portal.eclipse.org/). The following problems were found with this project's meta-data: * Project home page does not exist (projecturl = http://eclipse.org/aspe...</description>
		<content:encoded><![CDATA[<pre>Adrian,
Projects are required to keep meta data up to date using the MyFoundation
Portal (<a  href="http://portal.eclipse.org/">http://portal.eclipse.org/</a>).  The following problems were found
with this project's meta-data:

* Project home page does not exist (projecturl =
<a  href="http://eclipse.org/aspectj/">http://eclipse.org/aspectj/</a> returns a 404)


</pre>]]></content:encoded>
		<pubDate>Sat, 05 May 2012 04:00:16 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02974.html</guid>
		<author>emo@xxxxxxx (portal on behalf of emo)</author>
	</item>


	<item>
		<title>[aspectj-dev] maven repo for AspectJ jars?</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02973.html</link>
		<description>I was on the AspectJ website and a &amp;lt;dependency&amp;gt; section was not listed on the &amp;quot;Downloads&amp;quot; page that I could cut and paste into my Maven pom. It is also not in the FAQ under &amp;quot;How do I download AspectJ&amp;quot;. I searched around and found some reference to the 1.5....</description>
		<content:encoded><![CDATA[<tt>I was on the AspectJ website and a &lt;dependency&gt; section was not listed 
on the &quot;Downloads&quot; page that I could cut and paste into my Maven pom.  
It is also not in the FAQ under &quot;How do I download AspectJ&quot;.</tt><br>
<br>
<tt>I searched around and found some reference to the 1.5.4 in a repo but 
not the latest release.  What is the projects goals or options for 
distribution for no-nonsense downloads by publishing a snippet of code 
that could be put in a pom and distribution via this method?</tt><br>
<br>
<pre style="margin: 0em;"><br>J.V.</pre><br>
]]></content:encoded>
		<pubDate>Tue, 17 Apr 2012 21:59:01 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02973.html</guid>
		<author>jvsrvcs@xxxxxxx (J.V.)</author>
	</item>


	<item>
		<title>Re: [aspectj-dev] NotSerializableException:	org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02972.html</link>
		<description> </description>
		<content:encoded><![CDATA[Yes, I was dropping the jars though I was suspecting it might not work. <br><br>I just installed the AJDT from the dev stream and it works fine.<br><br>Thank you,<br>Choudary.<br><br><br><div class="gmail_quote">On Thu, Apr 12, 2012 at 4:18 PM, Andy Clement <span dir="ltr">&lt;<a href="mailto:andrew.clement@xxxxxxxxx" target="_blank">andrew.clement@xxxxxxxxx</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ok, I just tried it and it worked for me, I was using a recent dev<br>
build. &#xA0;I then upgraded again just to make sure it still worked on the<br>
latest and it does (3.7 dev stream). &#xA0;I compiled this program and ran<br>
it:<br>
<br>
===<br>
import java.lang.reflect.Field;<br>
import java.lang.reflect.Modifier;<br>
<br>
<br>
public class Foo {<br>
 &#xA0; &#xA0; &#xA0; &#xA0;public static void main(String[] args) throws Exception {<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;Foo foo = new Foo();<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;foo.a();<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;foo.b();<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;foo.c();<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;Field[] fs = Foo.class.getDeclaredFields();<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;for (Field f: fs) {<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;if (f.getName().startsWith(&quot;ajc$&quot;)) {<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;System.out.println(f+&quot; transient?&quot;+Modifier.isTransient(f.getModifiers()));<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;}<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;}<br>
 &#xA0; &#xA0; &#xA0; &#xA0;}<br>
<br>
 &#xA0; &#xA0; &#xA0; &#xA0;public void a() { &#xA0; &#xA0; &#xA0; }<br>
 &#xA0; &#xA0; &#xA0; &#xA0;public void b() { &#xA0; &#xA0; &#xA0; }<br>
 &#xA0; &#xA0; &#xA0; &#xA0;public void c() { &#xA0; &#xA0; &#xA0; }<br>
}<br>
<br>
aspect Advisor {<br>
 &#xA0; &#xA0; &#xA0; &#xA0;before(): execution(* Foo.*(..)) {<br>
 &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;System.out.println(thisJoinPointStaticPart);<br>
 &#xA0; &#xA0; &#xA0; &#xA0;}<br>
}<br>
<br>
With the option set it prints:<br>
<br>
execution(void Foo.main(String[]))<br>
execution(void Foo.a())<br>
execution(void Foo.b())<br>
execution(void Foo.c())<br>
private static final transient org.aspectj.lang.JoinPoint$StaticPart<br>
Foo.ajc$tjp_0 transient?true<br>
private static final transient org.aspectj.lang.JoinPoint$StaticPart<br>
Foo.ajc$tjp_1 transient?true<br>
private static final transient org.aspectj.lang.JoinPoint$StaticPart<br>
Foo.ajc$tjp_2 transient?true<br>
private static final transient org.aspectj.lang.JoinPoint$StaticPart<br>
Foo.ajc$tjp_3 transient?true<br>
<br>
<br>
The option being -Xset:makeTjpFieldsTransient=true, and I set that in<br>
the project properties &quot;AspectJ Compiler&quot; &gt; Other &gt; &quot;Non-standard<br>
compiler options&quot;<br>
<br>
How were you trying it? (taking jars from an AJ and dropping them into<br>
an AJDT doesn&#39;t work very well as the packaging is different in AJDT)<br>
<br>
cheers,<br>
Andy<br>
<br>
On 12 April 2012 06:39, Choudary Kothapalli<br>
<div><div>&lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx" target="_blank">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt; Yes, I have tried, but it does not seem to work. I am using AJDT to compile.<br>
&gt; I replaced the original aspectjrt.jar and aspectjweaver.jar with the ones<br>
&gt; from your dev build.<br>
&gt;<br>
&gt; Is there a corresponding AJDT dev build that I can try with?<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Choudary.<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Apr 11, 2012 at 8:46 PM, Andy Clement &lt;<a href="mailto:andrew.clement@xxxxxxxxx" target="_blank">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; As it was added as an -Xset option, it should just work for compile<br>
&gt;&gt; time weaving too. Have you tried it?<br>
&gt;&gt;<br>
&gt;&gt; cheers<br>
&gt;&gt; Andy<br>
&gt;&gt;<br>
&gt;&gt; On 11 April 2012 15:45, Choudary Kothapalli<br>
&gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx" target="_blank">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt; Andy,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; You added an option to make the synthetic JoinPointImpl$StaticPartImpl<br>
&gt;&gt; &gt; fields transient for load time weaved classes and it&#39;s working fine. Can<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; same thing be done for compile time weaved classes too? I mean, can you<br>
&gt;&gt; &gt; add<br>
&gt;&gt; &gt; an option to the compile time weaver so that the<br>
&gt;&gt; &gt; JoinPointImpl$StaticPartImpl fields are marked&#xA0; transient?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt; Choudary Kothapalli.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Fri, Mar 2, 2012 at 2:02 PM, Andy Clement &lt;<a href="mailto:andrew.clement@xxxxxxxxx" target="_blank">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I checked the code and suid calculations ignore private static and<br>
&gt;&gt; &gt;&gt; private transient fields. &#xA0;So even right now the SUIDs will be the<br>
&gt;&gt; &gt;&gt; same for a class with/without these (as they are private static)<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; if you raise an issue about making them transient, I&#39;ll have a look at<br>
&gt;&gt; &gt;&gt; doing it.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; cheers,<br>
&gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On 2 March 2012 10:43, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx" target="_blank">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt; Yes, that seems to be the cleaner solution.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; 1. When the load time woven classes are involved in both serializing<br>
&gt;&gt; &gt;&gt; &gt; and<br>
&gt;&gt; &gt;&gt; &gt; deserializing: The transient fields are not serialized and when the<br>
&gt;&gt; &gt;&gt; &gt; during<br>
&gt;&gt; &gt;&gt; &gt; deserialization these fields are initialized in ajc$preClinit().<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; 2. When serialized by a woven class and deserialized by a regular<br>
&gt;&gt; &gt;&gt; &gt; class:<br>
&gt;&gt; &gt;&gt; &gt; What will happen if SUID is not defined in the class? Wouldn&#39;t the<br>
&gt;&gt; &gt;&gt; &gt; generated<br>
&gt;&gt; &gt;&gt; &gt; SUID&#39;s be different?<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; 3. When serialized by a regular class and deserialized by a woven<br>
&gt;&gt; &gt;&gt; &gt; class:<br>
&gt;&gt; &gt;&gt; &gt; Again, would the SUID&#39;s match if they are not already defined?<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; My problem is more of scenario 1 and it should be solved by making<br>
&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt; synthetic fields transient.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 1:28 PM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx" target="_blank">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Sorry, I was just saying that if you need to reinitialize those<br>
&gt;&gt; &gt;&gt; &gt;&gt; fields<br>
&gt;&gt; &gt;&gt; &gt;&gt; at any time then that is the method you need to call, but yes the<br>
&gt;&gt; &gt;&gt; &gt;&gt; clinit for the class sets them up the first time. &#xA0;Are we back to<br>
&gt;&gt; &gt;&gt; &gt;&gt; just<br>
&gt;&gt; &gt;&gt; &gt;&gt; considering transient as a suitable fix for your situation then?<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; On 2 March 2012 09:57, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx" target="_blank">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; I am checking the decompiled version of a load time woven class<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; and<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; this<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; what I see.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; The ajc$preClinit() seems to the place where the &#39;ajc$tjp_x&#39;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; fields<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; are<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; initialized. The ajc$preClinit() is called in a static block as<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; below:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; static {<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ajc$preClinit();<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; }<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; If this is the case, why do you say that it should be called just<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; after<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; deserialization? Wouldn&#39;t it be called as soon as the class is<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; loaded<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; anyway?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 11:07 AM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx" target="_blank">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I think all the fields mentioned that aren&#39;t basic strings are<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; populated &#39;on-demand&#39; based on the string data &#xA0;(or other factors<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; that<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; don&#39;t need serializing). &#xA0;That includes method/class fields and<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Cache field you mention - so making those transient is fine.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; As John points out you will have incompatibilities between<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; weaved/unweaved if the fields are included in the serialized<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; object.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Interestingly this is not a new problem, and I have no bugzillas<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; relating to it being an issue so I guess it really doesn&#39;t come<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; up<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; very often.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; If you want to rebuild the values for the fields, the target<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; types<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; containing them should all have a method in like this:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; private static void ajc$preClinit();<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; which you could invoke to do so. &#xA0;But you&#39;d have to ensure it<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; gets<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; called just after deserialization. &#xA0;I would need to check what<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; else<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit() might do but I&#39;m pretty sure it is just those tjp<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; values.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I can see arguments both ways: making tjp fields transient and<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; calling<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit or making them serializable if it is tricky to get<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit called at the right time. &#xA0;If compile time weaving<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; it<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; doesn&#39;t seem as much of an issue for incompatibility between<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; weaved/unweaved form because the unweaved form is gone. &#xA0;With ltw<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; maybe there is more chance of encountering the unwoven form again<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; sometime later.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; On 2 March 2012 07:34, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx" target="_blank">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;Would it be possible to have these fields set to transient but<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; set<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; them<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; on-demand when deserialized (one time only) ?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; If you are talking about the following field, Andy may be the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; better<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; person<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; to answer. It looks possible to me and it&#xA0; might be the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; cleanest<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; solution to<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; this problem.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; private static final org.aspectj.lang.JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; /*<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; synthetic field */<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;Choudary, does your product require transparency in<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; deserializing<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; instrumented objects (from an uninstrumented instance of the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; application)?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; At least my current problem involves using the same<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; instrumented<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; classes<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; while serializing and deserializing. I didn&#39;t really think of<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; scenario<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; of needing to deserialize using the uninstrumented classes,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; which<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; might<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; occur.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; So I think it would be a better idea to make the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; &#39;JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;&#39; fields transient and to set them on demand, if it&#39;s<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; possible<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; to<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; do so.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 9:58 AM, John Kew &lt;<a href="mailto:jkew@xxxxxxxxxx" target="_blank">jkew@xxxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; If I understand the use-case/problem correctly, there are not<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; many<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; great<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; solutions to this problem.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Either we serialize StaticPart along with the object and make<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; serialized class incompatible with an unweaved application, or<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; we<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; it<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; transient and risk an inconsistent or unexpected state after<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; object<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; rehydrated.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Would it be possible to have these fields set to transient but<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; set<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; them<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; on-demand when deserialized (one time only) ? Choudary, does<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; your<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; product<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; require transparency in deserializing the instrumented objects<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; (from<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; an<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; uninstrumented instance of the application)?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; -John<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; From: &quot;Choudary Kothapalli&quot; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx" target="_blank">choudary.kothapalli@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; To: &quot;AspectJ developer discussions&quot; &lt;<a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Sent: Friday, March 2, 2012 6:22:38 AM<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Subject: Re: [aspectj-dev]<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; NotSerializableException:&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Hi Andy,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I will try to give you the patch, but here is what I notice<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; after<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; taking a<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; deeper look into the JoinPointImpl.StaticPartImpl class.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Not all fields in this class are primitives and Serializable<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; classes.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; For<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; example, the Signature implementation classes like<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; AdviceSignatureImpl<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; have<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Method as a field, which is not Serializable. But I think we<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; can<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; safely<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; this a transient field.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; The same applies to Cache field in the SignatureImpl class. I<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; think<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; we<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; can<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make it transient too.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Shall I go ahead and do these changes or do you have any<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; reservations?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; On Thu, Mar 1, 2012 at 11:05 AM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx" target="_blank">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; Sure, and if you want to give me a patch that does it, even<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; better<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; :)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; cheers,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; On 29 February 2012 16:52, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx" target="_blank">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Shall I raise a request to make JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; serializable,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; then? It<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; would solve the problem of serialization.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; On Wed, Feb 29, 2012 at 6:03 PM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx" target="_blank">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Making them serializable is also reasonable. &#xA0;There is<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; nothing<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; special<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; in them - mostly strings/ints.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; There is no option to weave the classes with no synthetic<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; fields.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &#xA0;It<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; is feasible but they aren&#39;t necessarily cheap to construct<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; and<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; inlining their construction where they are used would<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; damage<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; performance to some degree.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; On 29 February 2012 14:12, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx" target="_blank">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On second thoughts, making them transient may not be a<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; good<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; idea<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; because<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; deserialization may fail.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Do you think you can make JoinPoint.StaticPart and its<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; contents<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Serializable? I am not sure if that would be correct,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; but<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; just<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; asking.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Or, is there any option to weave the classes so that the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; synthetic<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; fields do<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; not exist at all?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I know that I&#39;m asking for something that may not be a<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; requirement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; for<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; most<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; usage scenarios or the actual intended usage of AspectJ.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; But I<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; am<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; stuck<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; with<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; this problem and just checking if there is a way out.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Thanks for your time.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On Wed, Feb 29, 2012 at 4:39 PM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx" target="_blank">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; I can provide you an option to make them transient, but<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; I&#39;m<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; hesitant<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; to just change the default to transient. &#xA0;If you want<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; an<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; option<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; like<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; that, please open a bugzilla:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ" target="_blank">https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ</a><br>


&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; and I&#39;ll take a look.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; cheers,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; On 28 February 2012 14:35, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx" target="_blank">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; My product MaintainJ uses AspectJ load time weaving<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; to<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; capture<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; call<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; trace at runtime. When weaving an application, the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; following<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; exception<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; seen.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Caused by: java.io.NotSerializableException:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; java.io.ObjectOutputStream.writeObject0(Unknown<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at java.io.ObjectOutputStream.writeObject(Unknown<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; xxx.yyyyy.ZZZClass.writeExternal_aroundBody4(ZZZClass.java:70)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; AspectJ LTW seems to insert many fields as below in<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; class<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; files<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; and<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; serializing them seems to be failing.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; private static final<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; org.aspectj.lang.JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; /*<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; synthetic field */<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Is there any quick fix for this? Can AspectJ make<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; these<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; fields<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; transient<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; without any other issues?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; MaintainJ Inc.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; aspectj-dev mailing list<br>
&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;<br>
_______________________________________________<br>
aspectj-dev mailing list<br>
<a href="mailto:aspectj-dev@xxxxxxxxxxx" target="_blank">aspectj-dev@xxxxxxxxxxx</a><br>
<a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
</div></div></blockquote></div><br>
]]></content:encoded>
		<pubDate>Thu, 12 Apr 2012 21:01:19 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02972.html</guid>
		<author>choudary.kothapalli@xxxxxxx (Choudary Kothapalli)</author>
	</item>
	<item>
		<title>Re: [aspectj-dev] NotSerializableException:	org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02971.html</link>
		<description> </description>
		<content:encoded><![CDATA[<pre>Ok, I just tried it and it worked for me, I was using a recent dev
build.  I then upgraded again just to make sure it still worked on the
latest and it does (3.7 dev stream).  I compiled this program and ran
it:

===
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;


public class Foo {
	public static void main(String[] args) throws Exception {
		Foo foo = new Foo();
		foo.a();
		foo.b();
		foo.c();
		Field[] fs = Foo.class.getDeclaredFields();
		for (Field f: fs) {
			if (f.getName().startsWith(&quot;ajc$&quot;)) {
				System.out.println(f+&quot; transient?&quot;+Modifier.isTransient(f.getModifiers()));
			}
		}
	}
	
	public void a() {	}
	public void b() {	}
	public void c() {	}
}

aspect Advisor {
	before(): execution(* Foo.*(..)) {
		System.out.println(thisJoinPointStaticPart);
	}
}

With the option set it prints:

execution(void Foo.main(String[]))
execution(void Foo.a())
execution(void Foo.b())
execution(void Foo.c())
private static final transient org.aspectj.lang.JoinPoint$StaticPart
Foo.ajc$tjp_0 transient?true
private static final transient org.aspectj.lang.JoinPoint$StaticPart
Foo.ajc$tjp_1 transient?true
private static final transient org.aspectj.lang.JoinPoint$StaticPart
Foo.ajc$tjp_2 transient?true
private static final transient org.aspectj.lang.JoinPoint$StaticPart
Foo.ajc$tjp_3 transient?true


The option being -Xset:makeTjpFieldsTransient=true, and I set that in
the project properties &quot;AspectJ Compiler&quot; &gt; Other &gt; &quot;Non-standard
compiler options&quot;

How were you trying it? (taking jars from an AJ and dropping them into
an AJDT doesn't work very well as the packaging is different in AJDT)

cheers,
Andy

On 12 April 2012 06:39, Choudary Kothapalli
&lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt; Yes, I have tried, but it does not seem to work. I am using AJDT to compile.
&gt; I replaced the original aspectjrt.jar and aspectjweaver.jar with the ones
&gt; from your dev build.
&gt;
&gt; Is there a corresponding AJDT dev build that I can try with?
&gt;
&gt; Thanks,
&gt; Choudary.
&gt;
&gt;
&gt; On Wed, Apr 11, 2012 at 8:46 PM, Andy Clement &lt;andrew.clement@xxxxxxxxx&gt;
&gt; wrote:
&gt;&gt;
&gt;&gt; Hi,
&gt;&gt;
&gt;&gt; As it was added as an -Xset option, it should just work for compile
&gt;&gt; time weaving too. Have you tried it?
&gt;&gt;
&gt;&gt; cheers
&gt;&gt; Andy
&gt;&gt;
&gt;&gt; On 11 April 2012 15:45, Choudary Kothapalli
&gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt; Andy,
&gt;&gt; &gt;
&gt;&gt; &gt; You added an option to make the synthetic JoinPointImpl$StaticPartImpl
&gt;&gt; &gt; fields transient for load time weaved classes and it's working fine. Can
&gt;&gt; &gt; the
&gt;&gt; &gt; same thing be done for compile time weaved classes too? I mean, can you
&gt;&gt; &gt; add
&gt;&gt; &gt; an option to the compile time weaver so that the
&gt;&gt; &gt; JoinPointImpl$StaticPartImpl fields are marked&#xA0; transient?
&gt;&gt; &gt;
&gt;&gt; &gt; Thanks,
&gt;&gt; &gt; Choudary Kothapalli.
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt; On Fri, Mar 2, 2012 at 2:02 PM, Andy Clement &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; I checked the code and suid calculations ignore private static and
&gt;&gt; &gt;&gt; private transient fields. &#xA0;So even right now the SUIDs will be the
&gt;&gt; &gt;&gt; same for a class with/without these (as they are private static)
&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; if you raise an issue about making them transient, I'll have a look at
&gt;&gt; &gt;&gt; doing it.
&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; cheers,
&gt;&gt; &gt;&gt; Andy
&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; On 2 March 2012 10:43, Choudary Kothapalli
&gt;&gt; &gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt; Yes, that seems to be the cleaner solution.
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; 1. When the load time woven classes are involved in both serializing
&gt;&gt; &gt;&gt; &gt; and
&gt;&gt; &gt;&gt; &gt; deserializing: The transient fields are not serialized and when the
&gt;&gt; &gt;&gt; &gt; during
&gt;&gt; &gt;&gt; &gt; deserialization these fields are initialized in ajc$preClinit().
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; 2. When serialized by a woven class and deserialized by a regular
&gt;&gt; &gt;&gt; &gt; class:
&gt;&gt; &gt;&gt; &gt; What will happen if SUID is not defined in the class? Wouldn't the
&gt;&gt; &gt;&gt; &gt; generated
&gt;&gt; &gt;&gt; &gt; SUID's be different?
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; 3. When serialized by a regular class and deserialized by a woven
&gt;&gt; &gt;&gt; &gt; class:
&gt;&gt; &gt;&gt; &gt; Again, would the SUID's match if they are not already defined?
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; My problem is more of scenario 1 and it should be solved by making
&gt;&gt; &gt;&gt; &gt; the
&gt;&gt; &gt;&gt; &gt; synthetic fields transient.
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; Thanks,
&gt;&gt; &gt;&gt; &gt; Choudary.
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 1:28 PM, Andy Clement
&gt;&gt; &gt;&gt; &gt; &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; Sorry, I was just saying that if you need to reinitialize those
&gt;&gt; &gt;&gt; &gt;&gt; fields
&gt;&gt; &gt;&gt; &gt;&gt; at any time then that is the method you need to call, but yes the
&gt;&gt; &gt;&gt; &gt;&gt; clinit for the class sets them up the first time. &#xA0;Are we back to
&gt;&gt; &gt;&gt; &gt;&gt; just
&gt;&gt; &gt;&gt; &gt;&gt; considering transient as a suitable fix for your situation then?
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; Andy
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; On 2 March 2012 09:57, Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt; I am checking the decompiled version of a load time woven class
&gt;&gt; &gt;&gt; &gt;&gt; &gt; and
&gt;&gt; &gt;&gt; &gt;&gt; &gt; this
&gt;&gt; &gt;&gt; &gt;&gt; &gt; is
&gt;&gt; &gt;&gt; &gt;&gt; &gt; what I see.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; The ajc$preClinit() seems to the place where the 'ajc$tjp_x'
&gt;&gt; &gt;&gt; &gt;&gt; &gt; fields
&gt;&gt; &gt;&gt; &gt;&gt; &gt; are
&gt;&gt; &gt;&gt; &gt;&gt; &gt; initialized. The ajc$preClinit() is called in a static block as
&gt;&gt; &gt;&gt; &gt;&gt; &gt; below:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; static {
&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ajc$preClinit();
&gt;&gt; &gt;&gt; &gt;&gt; &gt; }
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; If this is the case, why do you say that it should be called just
&gt;&gt; &gt;&gt; &gt;&gt; &gt; after
&gt;&gt; &gt;&gt; &gt;&gt; &gt; deserialization? Wouldn't it be called as soon as the class is
&gt;&gt; &gt;&gt; &gt;&gt; &gt; loaded
&gt;&gt; &gt;&gt; &gt;&gt; &gt; anyway?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 11:07 AM, Andy Clement
&gt;&gt; &gt;&gt; &gt;&gt; &gt; &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I think all the fields mentioned that aren't basic strings are
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; populated 'on-demand' based on the string data &#xA0;(or other factors
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; that
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; don't need serializing). &#xA0;That includes method/class fields and
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Cache field you mention - so making those transient is fine.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; As John points out you will have incompatibilities between
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; weaved/unweaved if the fields are included in the serialized
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; object.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Interestingly this is not a new problem, and I have no bugzillas
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; relating to it being an issue so I guess it really doesn't come
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; up
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; very often.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; If you want to rebuild the values for the fields, the target
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; types
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; containing them should all have a method in like this:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; private static void ajc$preClinit();
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; which you could invoke to do so. &#xA0;But you'd have to ensure it
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; gets
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; called just after deserialization. &#xA0;I would need to check what
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; else
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit() might do but I'm pretty sure it is just those tjp
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; values.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I can see arguments both ways: making tjp fields transient and
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; calling
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit or making them serializable if it is tricky to get
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit called at the right time. &#xA0;If compile time weaving
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; it
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; doesn't seem as much of an issue for incompatibility between
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; weaved/unweaved form because the unweaved form is gone. &#xA0;With ltw
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; maybe there is more chance of encountering the unwoven form again
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; sometime later.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Andy
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; On 2 March 2012 07:34, Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;Would it be possible to have these fields set to transient but
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; set
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; them
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; on-demand when deserialized (one time only) ?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; If you are talking about the following field, Andy may be the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; better
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; person
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; to answer. It looks possible to me and it&#xA0; might be the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; cleanest
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; solution to
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; this problem.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; private static final org.aspectj.lang.JoinPoint.StaticPart
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; /*
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; synthetic field */
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;Choudary, does your product require transparency in
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; deserializing
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; instrumented objects (from an uninstrumented instance of the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; application)?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; At least my current problem involves using the same
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; instrumented
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; classes
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; while serializing and deserializing. I didn't really think of
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; scenario
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; of needing to deserialize using the uninstrumented classes,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; which
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; might
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; occur.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; So I think it would be a better idea to make the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; 'JoinPoint.StaticPart
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;' fields transient and to set them on demand, if it's
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; possible
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; to
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; do so.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 9:58 AM, John Kew &lt;jkew@xxxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; If I understand the use-case/problem correctly, there are not
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; many
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; great
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; solutions to this problem.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Either we serialize StaticPart along with the object and make
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; serialized class incompatible with an unweaved application, or
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; we
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; it
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; transient and risk an inconsistent or unexpected state after
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; object
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; is
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; rehydrated.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Would it be possible to have these fields set to transient but
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; set
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; them
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; on-demand when deserialized (one time only) ? Choudary, does
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; your
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; product
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; require transparency in deserializing the instrumented objects
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; (from
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; an
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; uninstrumented instance of the application)?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; -John
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; From: &quot;Choudary Kothapalli&quot; &lt;choudary.kothapalli@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; To: &quot;AspectJ developer discussions&quot; &lt;aspectj-dev@xxxxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Sent: Friday, March 2, 2012 6:22:38 AM
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Subject: Re: [aspectj-dev]
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; NotSerializableException:&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Hi Andy,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I will try to give you the patch, but here is what I notice
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; after
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; taking a
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; deeper look into the JoinPointImpl.StaticPartImpl class.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Not all fields in this class are primitives and Serializable
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; classes.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; For
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; example, the Signature implementation classes like
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; AdviceSignatureImpl
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; have
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Method as a field, which is not Serializable. But I think we
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; can
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; safely
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; this a transient field.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; The same applies to Cache field in the SignatureImpl class. I
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; think
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; we
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; can
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make it transient too.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Shall I go ahead and do these changes or do you have any
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; reservations?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Thanks,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Choudary.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; On Thu, Mar 1, 2012 at 11:05 AM, Andy Clement
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; Sure, and if you want to give me a patch that does it, even
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; better
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; :)
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; cheers,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; Andy
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; On 29 February 2012 16:52, Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Shall I raise a request to make JoinPoint.StaticPart
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; serializable,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; then? It
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; would solve the problem of serialization.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Choudary.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; On Wed, Feb 29, 2012 at 6:03 PM, Andy Clement
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Making them serializable is also reasonable. &#xA0;There is
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; nothing
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; special
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; in them - mostly strings/ints.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; There is no option to weave the classes with no synthetic
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; fields.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &#xA0;It
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; is feasible but they aren't necessarily cheap to construct
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; and
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; inlining their construction where they are used would
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; damage
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; performance to some degree.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Andy
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; On 29 February 2012 14:12, Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On second thoughts, making them transient may not be a
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; good
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; idea
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; because
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; deserialization may fail.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Do you think you can make JoinPoint.StaticPart and its
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; contents
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Serializable? I am not sure if that would be correct,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; but
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; just
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; asking.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Or, is there any option to weave the classes so that the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; synthetic
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; fields do
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; not exist at all?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I know that I'm asking for something that may not be a
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; requirement
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; for
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; most
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; usage scenarios or the actual intended usage of AspectJ.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; But I
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; am
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; stuck
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; with
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; this problem and just checking if there is a way out.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Thanks for your time.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Choudary.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On Wed, Feb 29, 2012 at 4:39 PM, Andy Clement
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; I can provide you an option to make them transient, but
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; I'm
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; hesitant
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; to just change the default to transient. &#xA0;If you want
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; an
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; option
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; like
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; that, please open a bugzilla:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ">https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; and I'll take a look.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; cheers,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; Andy
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; On 28 February 2012 14:35, Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; My product MaintainJ uses AspectJ load time weaving
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; to
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; capture
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; call
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; trace at runtime. When weaving an application, the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; following
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; exception
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; is
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; seen.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Caused by: java.io.NotSerializableException:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; java.io.ObjectOutputStream.writeObject0(Unknown
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at java.io.ObjectOutputStream.writeObject(Unknown
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; xxx.yyyyy.ZZZClass.writeExternal_aroundBody4(ZZZClass.java:70)
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; AspectJ LTW seems to insert many fields as below in
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; class
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; files
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; and
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; serializing them seems to be failing.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; private static final
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; org.aspectj.lang.JoinPoint.StaticPart
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; /*
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; synthetic field */
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Is there any quick fix for this? Can AspectJ make
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; these
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; fields
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; transient
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; without any other issues?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; MaintainJ Inc.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;
&gt;&gt; _______________________________________________
&gt;&gt; aspectj-dev mailing list
&gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;
&gt;
&gt;
&gt; _______________________________________________
&gt; aspectj-dev mailing list
&gt; aspectj-dev@xxxxxxxxxxx
&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;

</pre>]]></content:encoded>
		<pubDate>Thu, 12 Apr 2012 20:18:52 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02971.html</guid>
		<author>andrew.clement@xxxxxxx (Andy Clement)</author>
	</item>
	<item>
		<title>Re: [aspectj-dev] NotSerializableException:	org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02970.html</link>
		<description></description>
		<content:encoded><![CDATA[Yes, I have tried, but it does not seem to work. I am using AJDT to compile. I replaced the original aspectjrt.jar and aspectjweaver.jar with the ones from your dev build.<br><br>Is there a corresponding AJDT dev build that I can try with?<br>
<br>Thanks,<br>Choudary.<br><br><div class="gmail_quote">On Wed, Apr 11, 2012 at 8:46 PM, Andy Clement <span dir="ltr">&lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
As it was added as an -Xset option, it should just work for compile<br>
time weaving too. Have you tried it?<br>
<br>
cheers<br>
Andy<br>
<br>
On 11 April 2012 15:45, Choudary Kothapalli<br>
<div class="HOEnZb"><div class="h5">&lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt; Andy,<br>
&gt;<br>
&gt; You added an option to make the synthetic JoinPointImpl$StaticPartImpl<br>
&gt; fields transient for load time weaved classes and it&#39;s working fine. Can the<br>
&gt; same thing be done for compile time weaved classes too? I mean, can you add<br>
&gt; an option to the compile time weaver so that the<br>
&gt; JoinPointImpl$StaticPartImpl fields are marked&#xA0; transient?<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Choudary Kothapalli.<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Mar 2, 2012 at 2:02 PM, Andy Clement &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I checked the code and suid calculations ignore private static and<br>
&gt;&gt; private transient fields. &#xA0;So even right now the SUIDs will be the<br>
&gt;&gt; same for a class with/without these (as they are private static)<br>
&gt;&gt;<br>
&gt;&gt; if you raise an issue about making them transient, I&#39;ll have a look at<br>
&gt;&gt; doing it.<br>
&gt;&gt;<br>
&gt;&gt; cheers,<br>
&gt;&gt; Andy<br>
&gt;&gt;<br>
&gt;&gt; On 2 March 2012 10:43, Choudary Kothapalli<br>
&gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt; Yes, that seems to be the cleaner solution.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1. When the load time woven classes are involved in both serializing and<br>
&gt;&gt; &gt; deserializing: The transient fields are not serialized and when the<br>
&gt;&gt; &gt; during<br>
&gt;&gt; &gt; deserialization these fields are initialized in ajc$preClinit().<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 2. When serialized by a woven class and deserialized by a regular class:<br>
&gt;&gt; &gt; What will happen if SUID is not defined in the class? Wouldn&#39;t the<br>
&gt;&gt; &gt; generated<br>
&gt;&gt; &gt; SUID&#39;s be different?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 3. When serialized by a regular class and deserialized by a woven class:<br>
&gt;&gt; &gt; Again, would the SUID&#39;s match if they are not already defined?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; My problem is more of scenario 1 and it should be solved by making the<br>
&gt;&gt; &gt; synthetic fields transient.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Fri, Mar 2, 2012 at 1:28 PM, Andy Clement &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Sorry, I was just saying that if you need to reinitialize those fields<br>
&gt;&gt; &gt;&gt; at any time then that is the method you need to call, but yes the<br>
&gt;&gt; &gt;&gt; clinit for the class sets them up the first time. &#xA0;Are we back to just<br>
&gt;&gt; &gt;&gt; considering transient as a suitable fix for your situation then?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On 2 March 2012 09:57, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt; I am checking the decompiled version of a load time woven class and<br>
&gt;&gt; &gt;&gt; &gt; this<br>
&gt;&gt; &gt;&gt; &gt; is<br>
&gt;&gt; &gt;&gt; &gt; what I see.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; The ajc$preClinit() seems to the place where the &#39;ajc$tjp_x&#39; fields<br>
&gt;&gt; &gt;&gt; &gt; are<br>
&gt;&gt; &gt;&gt; &gt; initialized. The ajc$preClinit() is called in a static block as<br>
&gt;&gt; &gt;&gt; &gt; below:<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; static {<br>
&gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ajc$preClinit();<br>
&gt;&gt; &gt;&gt; &gt; }<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; If this is the case, why do you say that it should be called just<br>
&gt;&gt; &gt;&gt; &gt; after<br>
&gt;&gt; &gt;&gt; &gt; deserialization? Wouldn&#39;t it be called as soon as the class is loaded<br>
&gt;&gt; &gt;&gt; &gt; anyway?<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 11:07 AM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; I think all the fields mentioned that aren&#39;t basic strings are<br>
&gt;&gt; &gt;&gt; &gt;&gt; populated &#39;on-demand&#39; based on the string data &#xA0;(or other factors<br>
&gt;&gt; &gt;&gt; &gt;&gt; that<br>
&gt;&gt; &gt;&gt; &gt;&gt; don&#39;t need serializing). &#xA0;That includes method/class fields and the<br>
&gt;&gt; &gt;&gt; &gt;&gt; Cache field you mention - so making those transient is fine.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; As John points out you will have incompatibilities between<br>
&gt;&gt; &gt;&gt; &gt;&gt; weaved/unweaved if the fields are included in the serialized object.<br>
&gt;&gt; &gt;&gt; &gt;&gt; Interestingly this is not a new problem, and I have no bugzillas<br>
&gt;&gt; &gt;&gt; &gt;&gt; relating to it being an issue so I guess it really doesn&#39;t come up<br>
&gt;&gt; &gt;&gt; &gt;&gt; very often.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; If you want to rebuild the values for the fields, the target types<br>
&gt;&gt; &gt;&gt; &gt;&gt; containing them should all have a method in like this:<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; private static void ajc$preClinit();<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; which you could invoke to do so. &#xA0;But you&#39;d have to ensure it gets<br>
&gt;&gt; &gt;&gt; &gt;&gt; called just after deserialization. &#xA0;I would need to check what else<br>
&gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit() might do but I&#39;m pretty sure it is just those tjp<br>
&gt;&gt; &gt;&gt; &gt;&gt; values.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; I can see arguments both ways: making tjp fields transient and<br>
&gt;&gt; &gt;&gt; &gt;&gt; calling<br>
&gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit or making them serializable if it is tricky to get<br>
&gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit called at the right time. &#xA0;If compile time weaving it<br>
&gt;&gt; &gt;&gt; &gt;&gt; doesn&#39;t seem as much of an issue for incompatibility between<br>
&gt;&gt; &gt;&gt; &gt;&gt; weaved/unweaved form because the unweaved form is gone. &#xA0;With ltw<br>
&gt;&gt; &gt;&gt; &gt;&gt; maybe there is more chance of encountering the unwoven form again<br>
&gt;&gt; &gt;&gt; &gt;&gt; sometime later.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; On 2 March 2012 07:34, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;Would it be possible to have these fields set to transient but<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; set<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; them<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; on-demand when deserialized (one time only) ?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; If you are talking about the following field, Andy may be the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; better<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; person<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; to answer. It looks possible to me and it&#xA0; might be the cleanest<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; solution to<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; this problem.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; private static final org.aspectj.lang.JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; /*<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; synthetic field */<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;Choudary, does your product require transparency in deserializing<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; instrumented objects (from an uninstrumented instance of the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; application)?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; At least my current problem involves using the same instrumented<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; classes<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; while serializing and deserializing. I didn&#39;t really think of the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; scenario<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; of needing to deserialize using the uninstrumented classes, which<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; might<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; occur.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; So I think it would be a better idea to make the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#39;JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;&#39; fields transient and to set them on demand, if it&#39;s<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; possible<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; to<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; do so.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 9:58 AM, John Kew &lt;<a href="mailto:jkew@xxxxxxxxxx">jkew@xxxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; If I understand the use-case/problem correctly, there are not<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; many<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; great<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; solutions to this problem.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Either we serialize StaticPart along with the object and make the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; serialized class incompatible with an unweaved application, or we<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; it<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; transient and risk an inconsistent or unexpected state after the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; object<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; rehydrated.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Would it be possible to have these fields set to transient but<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; set<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; them<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; on-demand when deserialized (one time only) ? Choudary, does your<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; product<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; require transparency in deserializing the instrumented objects<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; (from<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; an<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; uninstrumented instance of the application)?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; -John<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; From: &quot;Choudary Kothapalli&quot; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; To: &quot;AspectJ developer discussions&quot; &lt;<a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Sent: Friday, March 2, 2012 6:22:38 AM<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Subject: Re: [aspectj-dev]<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; NotSerializableException:&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Hi Andy,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I will try to give you the patch, but here is what I notice after<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; taking a<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; deeper look into the JoinPointImpl.StaticPartImpl class.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Not all fields in this class are primitives and Serializable<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; classes.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; For<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; example, the Signature implementation classes like<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; AdviceSignatureImpl<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; have<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Method as a field, which is not Serializable. But I think we can<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; safely<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; this a transient field.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; The same applies to Cache field in the SignatureImpl class. I<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; think<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; we<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; can<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make it transient too.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Shall I go ahead and do these changes or do you have any<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; reservations?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; On Thu, Mar 1, 2012 at 11:05 AM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; Sure, and if you want to give me a patch that does it, even<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; better<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; :)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; cheers,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; On 29 February 2012 16:52, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Shall I raise a request to make JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; serializable,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; then? It<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; would solve the problem of serialization.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; On Wed, Feb 29, 2012 at 6:03 PM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Making them serializable is also reasonable. &#xA0;There is<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; nothing<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; special<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; in them - mostly strings/ints.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; There is no option to weave the classes with no synthetic<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; fields.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &#xA0;It<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; is feasible but they aren&#39;t necessarily cheap to construct<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; and<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; inlining their construction where they are used would damage<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; performance to some degree.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; On 29 February 2012 14:12, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On second thoughts, making them transient may not be a good<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; idea<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; because<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; deserialization may fail.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Do you think you can make JoinPoint.StaticPart and its<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; contents<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Serializable? I am not sure if that would be correct, but<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; just<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; asking.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Or, is there any option to weave the classes so that the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; synthetic<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; fields do<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; not exist at all?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I know that I&#39;m asking for something that may not be a<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; requirement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; for<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; most<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; usage scenarios or the actual intended usage of AspectJ.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; But I<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; am<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; stuck<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; with<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; this problem and just checking if there is a way out.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Thanks for your time.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On Wed, Feb 29, 2012 at 4:39 PM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; I can provide you an option to make them transient, but<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; I&#39;m<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; hesitant<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; to just change the default to transient. &#xA0;If you want an<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; option<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; like<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; that, please open a bugzilla:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ" target="_blank">https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; and I&#39;ll take a look.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; cheers,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; On 28 February 2012 14:35, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; My product MaintainJ uses AspectJ load time weaving to<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; capture<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; call<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; trace at runtime. When weaving an application, the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; following<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; exception<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; seen.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Caused by: java.io.NotSerializableException:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at java.io.ObjectOutputStream.writeObject0(Unknown<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at java.io.ObjectOutputStream.writeObject(Unknown<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; xxx.yyyyy.ZZZClass.writeExternal_aroundBody4(ZZZClass.java:70)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; AspectJ LTW seems to insert many fields as below in the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; class<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; files<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; and<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; serializing them seems to be failing.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; private static final<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; org.aspectj.lang.JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; /*<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; synthetic field */<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Is there any quick fix for this? Can AspectJ make these<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; fields<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; transient<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; without any other issues?<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; MaintainJ Inc.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; aspectj-dev mailing list<br>
&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;<br>
_______________________________________________<br>
aspectj-dev mailing list<br>
<a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
<a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
</div></div></blockquote></div><br>
]]></content:encoded>
		<pubDate>Thu, 12 Apr 2012 13:39:17 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02970.html</guid>
		<author>choudary.kothapalli@xxxxxxx (Choudary Kothapalli)</author>
	</item>


	<item>
		<title>Re: [aspectj-dev] NotSerializableException:	org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02969.html</link>
		<description> </description>
		<content:encoded><![CDATA[<pre>Hi,

As it was added as an -Xset option, it should just work for compile
time weaving too. Have you tried it?

cheers
Andy

On 11 April 2012 15:45, Choudary Kothapalli
&lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt; Andy,
&gt;
&gt; You added an option to make the synthetic JoinPointImpl$StaticPartImpl
&gt; fields transient for load time weaved classes and it's working fine. Can the
&gt; same thing be done for compile time weaved classes too? I mean, can you add
&gt; an option to the compile time weaver so that the
&gt; JoinPointImpl$StaticPartImpl fields are marked&#xA0; transient?
&gt;
&gt; Thanks,
&gt; Choudary Kothapalli.
&gt;
&gt;
&gt; On Fri, Mar 2, 2012 at 2:02 PM, Andy Clement &lt;andrew.clement@xxxxxxxxx&gt;
&gt; wrote:
&gt;&gt;
&gt;&gt; I checked the code and suid calculations ignore private static and
&gt;&gt; private transient fields. &#xA0;So even right now the SUIDs will be the
&gt;&gt; same for a class with/without these (as they are private static)
&gt;&gt;
&gt;&gt; if you raise an issue about making them transient, I'll have a look at
&gt;&gt; doing it.
&gt;&gt;
&gt;&gt; cheers,
&gt;&gt; Andy
&gt;&gt;
&gt;&gt; On 2 March 2012 10:43, Choudary Kothapalli
&gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt; Yes, that seems to be the cleaner solution.
&gt;&gt; &gt;
&gt;&gt; &gt; 1. When the load time woven classes are involved in both serializing and
&gt;&gt; &gt; deserializing: The transient fields are not serialized and when the
&gt;&gt; &gt; during
&gt;&gt; &gt; deserialization these fields are initialized in ajc$preClinit().
&gt;&gt; &gt;
&gt;&gt; &gt; 2. When serialized by a woven class and deserialized by a regular class:
&gt;&gt; &gt; What will happen if SUID is not defined in the class? Wouldn't the
&gt;&gt; &gt; generated
&gt;&gt; &gt; SUID's be different?
&gt;&gt; &gt;
&gt;&gt; &gt; 3. When serialized by a regular class and deserialized by a woven class:
&gt;&gt; &gt; Again, would the SUID's match if they are not already defined?
&gt;&gt; &gt;
&gt;&gt; &gt; My problem is more of scenario 1 and it should be solved by making the
&gt;&gt; &gt; synthetic fields transient.
&gt;&gt; &gt;
&gt;&gt; &gt; Thanks,
&gt;&gt; &gt; Choudary.
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt; On Fri, Mar 2, 2012 at 1:28 PM, Andy Clement &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; Sorry, I was just saying that if you need to reinitialize those fields
&gt;&gt; &gt;&gt; at any time then that is the method you need to call, but yes the
&gt;&gt; &gt;&gt; clinit for the class sets them up the first time. &#xA0;Are we back to just
&gt;&gt; &gt;&gt; considering transient as a suitable fix for your situation then?
&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; Andy
&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; On 2 March 2012 09:57, Choudary Kothapalli
&gt;&gt; &gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt; I am checking the decompiled version of a load time woven class and
&gt;&gt; &gt;&gt; &gt; this
&gt;&gt; &gt;&gt; &gt; is
&gt;&gt; &gt;&gt; &gt; what I see.
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; The ajc$preClinit() seems to the place where the 'ajc$tjp_x' fields
&gt;&gt; &gt;&gt; &gt; are
&gt;&gt; &gt;&gt; &gt; initialized. The ajc$preClinit() is called in a static block as
&gt;&gt; &gt;&gt; &gt; below:
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; static {
&gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ajc$preClinit();
&gt;&gt; &gt;&gt; &gt; }
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; If this is the case, why do you say that it should be called just
&gt;&gt; &gt;&gt; &gt; after
&gt;&gt; &gt;&gt; &gt; deserialization? Wouldn't it be called as soon as the class is loaded
&gt;&gt; &gt;&gt; &gt; anyway?
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; Thanks,
&gt;&gt; &gt;&gt; &gt; Choudary.
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 11:07 AM, Andy Clement
&gt;&gt; &gt;&gt; &gt; &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; I think all the fields mentioned that aren't basic strings are
&gt;&gt; &gt;&gt; &gt;&gt; populated 'on-demand' based on the string data &#xA0;(or other factors
&gt;&gt; &gt;&gt; &gt;&gt; that
&gt;&gt; &gt;&gt; &gt;&gt; don't need serializing). &#xA0;That includes method/class fields and the
&gt;&gt; &gt;&gt; &gt;&gt; Cache field you mention - so making those transient is fine.
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; As John points out you will have incompatibilities between
&gt;&gt; &gt;&gt; &gt;&gt; weaved/unweaved if the fields are included in the serialized object.
&gt;&gt; &gt;&gt; &gt;&gt; Interestingly this is not a new problem, and I have no bugzillas
&gt;&gt; &gt;&gt; &gt;&gt; relating to it being an issue so I guess it really doesn't come up
&gt;&gt; &gt;&gt; &gt;&gt; very often.
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; If you want to rebuild the values for the fields, the target types
&gt;&gt; &gt;&gt; &gt;&gt; containing them should all have a method in like this:
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; private static void ajc$preClinit();
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; which you could invoke to do so. &#xA0;But you'd have to ensure it gets
&gt;&gt; &gt;&gt; &gt;&gt; called just after deserialization. &#xA0;I would need to check what else
&gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit() might do but I'm pretty sure it is just those tjp
&gt;&gt; &gt;&gt; &gt;&gt; values.
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; I can see arguments both ways: making tjp fields transient and
&gt;&gt; &gt;&gt; &gt;&gt; calling
&gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit or making them serializable if it is tricky to get
&gt;&gt; &gt;&gt; &gt;&gt; ajc$preClinit called at the right time. &#xA0;If compile time weaving it
&gt;&gt; &gt;&gt; &gt;&gt; doesn't seem as much of an issue for incompatibility between
&gt;&gt; &gt;&gt; &gt;&gt; weaved/unweaved form because the unweaved form is gone. &#xA0;With ltw
&gt;&gt; &gt;&gt; &gt;&gt; maybe there is more chance of encountering the unwoven form again
&gt;&gt; &gt;&gt; &gt;&gt; sometime later.
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; Andy
&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; On 2 March 2012 07:34, Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;Would it be possible to have these fields set to transient but
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; set
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; them
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; on-demand when deserialized (one time only) ?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; If you are talking about the following field, Andy may be the
&gt;&gt; &gt;&gt; &gt;&gt; &gt; better
&gt;&gt; &gt;&gt; &gt;&gt; &gt; person
&gt;&gt; &gt;&gt; &gt;&gt; &gt; to answer. It looks possible to me and it&#xA0; might be the cleanest
&gt;&gt; &gt;&gt; &gt;&gt; &gt; solution to
&gt;&gt; &gt;&gt; &gt;&gt; &gt; this problem.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; private static final org.aspectj.lang.JoinPoint.StaticPart
&gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; /*
&gt;&gt; &gt;&gt; &gt;&gt; &gt; synthetic field */
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;Choudary, does your product require transparency in deserializing
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; instrumented objects (from an uninstrumented instance of the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; application)?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; At least my current problem involves using the same instrumented
&gt;&gt; &gt;&gt; &gt;&gt; &gt; classes
&gt;&gt; &gt;&gt; &gt;&gt; &gt; while serializing and deserializing. I didn't really think of the
&gt;&gt; &gt;&gt; &gt;&gt; &gt; scenario
&gt;&gt; &gt;&gt; &gt;&gt; &gt; of needing to deserialize using the uninstrumented classes, which
&gt;&gt; &gt;&gt; &gt;&gt; &gt; might
&gt;&gt; &gt;&gt; &gt;&gt; &gt; occur.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; So I think it would be a better idea to make the
&gt;&gt; &gt;&gt; &gt;&gt; &gt; 'JoinPoint.StaticPart
&gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;' fields transient and to set them on demand, if it's
&gt;&gt; &gt;&gt; &gt;&gt; &gt; possible
&gt;&gt; &gt;&gt; &gt;&gt; &gt; to
&gt;&gt; &gt;&gt; &gt;&gt; &gt; do so.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 9:58 AM, John Kew &lt;jkew@xxxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; If I understand the use-case/problem correctly, there are not
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; many
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; great
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; solutions to this problem.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Either we serialize StaticPart along with the object and make the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; serialized class incompatible with an unweaved application, or we
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; it
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; transient and risk an inconsistent or unexpected state after the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; object
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; is
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; rehydrated.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Would it be possible to have these fields set to transient but
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; set
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; them
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; on-demand when deserialized (one time only) ? Choudary, does your
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; product
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; require transparency in deserializing the instrumented objects
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; (from
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; an
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; uninstrumented instance of the application)?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; -John
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; ________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; From: &quot;Choudary Kothapalli&quot; &lt;choudary.kothapalli@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; To: &quot;AspectJ developer discussions&quot; &lt;aspectj-dev@xxxxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Sent: Friday, March 2, 2012 6:22:38 AM
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Subject: Re: [aspectj-dev]
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; NotSerializableException:&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Hi Andy,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I will try to give you the patch, but here is what I notice after
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; taking a
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; deeper look into the JoinPointImpl.StaticPartImpl class.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Not all fields in this class are primitives and Serializable
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; classes.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; For
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; example, the Signature implementation classes like
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; AdviceSignatureImpl
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; have
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Method as a field, which is not Serializable. But I think we can
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; safely
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; this a transient field.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; The same applies to Cache field in the SignatureImpl class. I
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; think
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; we
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; can
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; make it transient too.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Shall I go ahead and do these changes or do you have any
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; reservations?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Thanks,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Choudary.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; On Thu, Mar 1, 2012 at 11:05 AM, Andy Clement
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; Sure, and if you want to give me a patch that does it, even
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; better
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; :)
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; cheers,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; Andy
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; On 29 February 2012 16:52, Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Shall I raise a request to make JoinPoint.StaticPart
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; serializable,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; then? It
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; would solve the problem of serialization.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Choudary.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; On Wed, Feb 29, 2012 at 6:03 PM, Andy Clement
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Making them serializable is also reasonable. &#xA0;There is
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; nothing
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; special
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; in them - mostly strings/ints.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; There is no option to weave the classes with no synthetic
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; fields.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &#xA0;It
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; is feasible but they aren't necessarily cheap to construct
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; and
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; inlining their construction where they are used would damage
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; performance to some degree.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Andy
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; On 29 February 2012 14:12, Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On second thoughts, making them transient may not be a good
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; idea
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; because
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; deserialization may fail.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Do you think you can make JoinPoint.StaticPart and its
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; contents
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Serializable? I am not sure if that would be correct, but
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; just
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; asking.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Or, is there any option to weave the classes so that the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; synthetic
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; fields do
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; not exist at all?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I know that I'm asking for something that may not be a
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; requirement
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; for
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; most
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; usage scenarios or the actual intended usage of AspectJ.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; But I
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; am
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; stuck
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; with
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; this problem and just checking if there is a way out.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Thanks for your time.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Choudary.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On Wed, Feb 29, 2012 at 4:39 PM, Andy Clement
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; &lt;andrew.clement@xxxxxxxxx&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; I can provide you an option to make them transient, but
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; I'm
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; hesitant
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; to just change the default to transient. &#xA0;If you want an
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; option
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; like
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; that, please open a bugzilla:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ">https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; and I'll take a look.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; cheers,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; Andy
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; On 28 February 2012 14:35, Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &lt;choudary.kothapalli@xxxxxxxxx&gt; wrote:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; My product MaintainJ uses AspectJ load time weaving to
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; capture
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; call
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; trace at runtime. When weaving an application, the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; following
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; exception
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; is
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; seen.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Caused by: java.io.NotSerializableException:
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at java.io.ObjectOutputStream.writeObject0(Unknown
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at java.io.ObjectOutputStream.writeObject(Unknown
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; xxx.yyyyy.ZZZClass.writeExternal_aroundBody4(ZZZClass.java:70)
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; AspectJ LTW seems to insert many fields as below in the
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; class
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; files
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; and
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; serializing them seems to be failing.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; private static final
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; org.aspectj.lang.JoinPoint.StaticPart
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; /*
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; synthetic field */
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Is there any quick fix for this? Can AspectJ make these
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; fields
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; transient
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; without any other issues?
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary Kothapalli
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; MaintainJ Inc.
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;&gt; &gt;
&gt;&gt; &gt;&gt; _______________________________________________
&gt;&gt; &gt;&gt; aspectj-dev mailing list
&gt;&gt; &gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt;
&gt;&gt; &gt; _______________________________________________
&gt;&gt; &gt; aspectj-dev mailing list
&gt;&gt; &gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; &gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;&gt; &gt;
&gt;&gt; _______________________________________________
&gt;&gt; aspectj-dev mailing list
&gt;&gt; aspectj-dev@xxxxxxxxxxx
&gt;&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;
&gt;
&gt;
&gt; _______________________________________________
&gt; aspectj-dev mailing list
&gt; aspectj-dev@xxxxxxxxxxx
&gt; <a  href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a>
&gt;

</pre>]]></content:encoded>
		<pubDate>Thu, 12 Apr 2012 00:46:58 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02969.html</guid>
		<author>andrew.clement@xxxxxxx (Andy Clement)</author>
	</item>
	<item>
		<title>Re: [aspectj-dev] NotSerializableException:	org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02968.html</link>
		<description> </description>
		<content:encoded><![CDATA[Andy,<br><br>You added an option to make the synthetic JoinPointImpl$StaticPartImpl fields transient for load time weaved classes and it&#39;s working fine. Can the same thing be done for compile time weaved classes too? I mean, can you add an option to the compile time weaver so that the JoinPointImpl$StaticPartImpl fields are marked&#xA0; transient?<br>
<br>Thanks,<br>Choudary Kothapalli.<br><br><div class="gmail_quote">On Fri, Mar 2, 2012 at 2:02 PM, Andy Clement <span dir="ltr">&lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I checked the code and suid calculations ignore private static and<br>
private transient fields. &#xA0;So even right now the SUIDs will be the<br>
same for a class with/without these (as they are private static)<br>
<br>
if you raise an issue about making them transient, I&#39;ll have a look at doing it.<br>
<br>
cheers,<br>
Andy<br>
<br>
On 2 March 2012 10:43, Choudary Kothapalli<br>
<div class="HOEnZb"><div class="h5">&lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt; Yes, that seems to be the cleaner solution.<br>
&gt;<br>
&gt; 1. When the load time woven classes are involved in both serializing and<br>
&gt; deserializing: The transient fields are not serialized and when the during<br>
&gt; deserialization these fields are initialized in ajc$preClinit().<br>
&gt;<br>
&gt; 2. When serialized by a woven class and deserialized by a regular class:<br>
&gt; What will happen if SUID is not defined in the class? Wouldn&#39;t the generated<br>
&gt; SUID&#39;s be different?<br>
&gt;<br>
&gt; 3. When serialized by a regular class and deserialized by a woven class:<br>
&gt; Again, would the SUID&#39;s match if they are not already defined?<br>
&gt;<br>
&gt; My problem is more of scenario 1 and it should be solved by making the<br>
&gt; synthetic fields transient.<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Choudary.<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Mar 2, 2012 at 1:28 PM, Andy Clement &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Sorry, I was just saying that if you need to reinitialize those fields<br>
&gt;&gt; at any time then that is the method you need to call, but yes the<br>
&gt;&gt; clinit for the class sets them up the first time. &#xA0;Are we back to just<br>
&gt;&gt; considering transient as a suitable fix for your situation then?<br>
&gt;&gt;<br>
&gt;&gt; Andy<br>
&gt;&gt;<br>
&gt;&gt; On 2 March 2012 09:57, Choudary Kothapalli<br>
&gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt; I am checking the decompiled version of a load time woven class and this<br>
&gt;&gt; &gt; is<br>
&gt;&gt; &gt; what I see.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; The ajc$preClinit() seems to the place where the &#39;ajc$tjp_x&#39; fields are<br>
&gt;&gt; &gt; initialized. The ajc$preClinit() is called in a static block as below:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; static {<br>
&gt;&gt; &gt; &#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ajc$preClinit();<br>
&gt;&gt; &gt; }<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; If this is the case, why do you say that it should be called just after<br>
&gt;&gt; &gt; deserialization? Wouldn&#39;t it be called as soon as the class is loaded<br>
&gt;&gt; &gt; anyway?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Fri, Mar 2, 2012 at 11:07 AM, Andy Clement &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I think all the fields mentioned that aren&#39;t basic strings are<br>
&gt;&gt; &gt;&gt; populated &#39;on-demand&#39; based on the string data &#xA0;(or other factors that<br>
&gt;&gt; &gt;&gt; don&#39;t need serializing). &#xA0;That includes method/class fields and the<br>
&gt;&gt; &gt;&gt; Cache field you mention - so making those transient is fine.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; As John points out you will have incompatibilities between<br>
&gt;&gt; &gt;&gt; weaved/unweaved if the fields are included in the serialized object.<br>
&gt;&gt; &gt;&gt; Interestingly this is not a new problem, and I have no bugzillas<br>
&gt;&gt; &gt;&gt; relating to it being an issue so I guess it really doesn&#39;t come up<br>
&gt;&gt; &gt;&gt; very often.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; If you want to rebuild the values for the fields, the target types<br>
&gt;&gt; &gt;&gt; containing them should all have a method in like this:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; private static void ajc$preClinit();<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; which you could invoke to do so. &#xA0;But you&#39;d have to ensure it gets<br>
&gt;&gt; &gt;&gt; called just after deserialization. &#xA0;I would need to check what else<br>
&gt;&gt; &gt;&gt; ajc$preClinit() might do but I&#39;m pretty sure it is just those tjp<br>
&gt;&gt; &gt;&gt; values.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I can see arguments both ways: making tjp fields transient and calling<br>
&gt;&gt; &gt;&gt; ajc$preClinit or making them serializable if it is tricky to get<br>
&gt;&gt; &gt;&gt; ajc$preClinit called at the right time. &#xA0;If compile time weaving it<br>
&gt;&gt; &gt;&gt; doesn&#39;t seem as much of an issue for incompatibility between<br>
&gt;&gt; &gt;&gt; weaved/unweaved form because the unweaved form is gone. &#xA0;With ltw<br>
&gt;&gt; &gt;&gt; maybe there is more chance of encountering the unwoven form again<br>
&gt;&gt; &gt;&gt; sometime later.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On 2 March 2012 07:34, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;Would it be possible to have these fields set to transient but set<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; them<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; on-demand when deserialized (one time only) ?<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; If you are talking about the following field, Andy may be the better<br>
&gt;&gt; &gt;&gt; &gt; person<br>
&gt;&gt; &gt;&gt; &gt; to answer. It looks possible to me and it&#xA0; might be the cleanest<br>
&gt;&gt; &gt;&gt; &gt; solution to<br>
&gt;&gt; &gt;&gt; &gt; this problem.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; private static final org.aspectj.lang.JoinPoint.StaticPart ajc$tjp_0;<br>
&gt;&gt; &gt;&gt; &gt; /*<br>
&gt;&gt; &gt;&gt; &gt; synthetic field */<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;Choudary, does your product require transparency in deserializing<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; instrumented objects (from an uninstrumented instance of the<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; application)?<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; At least my current problem involves using the same instrumented<br>
&gt;&gt; &gt;&gt; &gt; classes<br>
&gt;&gt; &gt;&gt; &gt; while serializing and deserializing. I didn&#39;t really think of the<br>
&gt;&gt; &gt;&gt; &gt; scenario<br>
&gt;&gt; &gt;&gt; &gt; of needing to deserialize using the uninstrumented classes, which<br>
&gt;&gt; &gt;&gt; &gt; might<br>
&gt;&gt; &gt;&gt; &gt; occur.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; So I think it would be a better idea to make the<br>
&gt;&gt; &gt;&gt; &gt; &#39;JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt; ajc$tjp_0;&#39; fields transient and to set them on demand, if it&#39;s<br>
&gt;&gt; &gt;&gt; &gt; possible<br>
&gt;&gt; &gt;&gt; &gt; to<br>
&gt;&gt; &gt;&gt; &gt; do so.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; On Fri, Mar 2, 2012 at 9:58 AM, John Kew &lt;<a href="mailto:jkew@xxxxxxxxxx">jkew@xxxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; If I understand the use-case/problem correctly, there are not many<br>
&gt;&gt; &gt;&gt; &gt;&gt; great<br>
&gt;&gt; &gt;&gt; &gt;&gt; solutions to this problem.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Either we serialize StaticPart along with the object and make the<br>
&gt;&gt; &gt;&gt; &gt;&gt; serialized class incompatible with an unweaved application, or we<br>
&gt;&gt; &gt;&gt; &gt;&gt; make<br>
&gt;&gt; &gt;&gt; &gt;&gt; it<br>
&gt;&gt; &gt;&gt; &gt;&gt; transient and risk an inconsistent or unexpected state after the<br>
&gt;&gt; &gt;&gt; &gt;&gt; object<br>
&gt;&gt; &gt;&gt; &gt;&gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt; rehydrated.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Would it be possible to have these fields set to transient but set<br>
&gt;&gt; &gt;&gt; &gt;&gt; them<br>
&gt;&gt; &gt;&gt; &gt;&gt; on-demand when deserialized (one time only) ? Choudary, does your<br>
&gt;&gt; &gt;&gt; &gt;&gt; product<br>
&gt;&gt; &gt;&gt; &gt;&gt; require transparency in deserializing the instrumented objects (from<br>
&gt;&gt; &gt;&gt; &gt;&gt; an<br>
&gt;&gt; &gt;&gt; &gt;&gt; uninstrumented instance of the application)?<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; -John<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; ________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; From: &quot;Choudary Kothapalli&quot; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; To: &quot;AspectJ developer discussions&quot; &lt;<a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Sent: Friday, March 2, 2012 6:22:38 AM<br>
&gt;&gt; &gt;&gt; &gt;&gt; Subject: Re: [aspectj-dev]<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; NotSerializableException:&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Hi Andy,<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; I will try to give you the patch, but here is what I notice after<br>
&gt;&gt; &gt;&gt; &gt;&gt; taking a<br>
&gt;&gt; &gt;&gt; &gt;&gt; deeper look into the JoinPointImpl.StaticPartImpl class.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Not all fields in this class are primitives and Serializable<br>
&gt;&gt; &gt;&gt; &gt;&gt; classes.<br>
&gt;&gt; &gt;&gt; &gt;&gt; For<br>
&gt;&gt; &gt;&gt; &gt;&gt; example, the Signature implementation classes like<br>
&gt;&gt; &gt;&gt; &gt;&gt; AdviceSignatureImpl<br>
&gt;&gt; &gt;&gt; &gt;&gt; have<br>
&gt;&gt; &gt;&gt; &gt;&gt; Method as a field, which is not Serializable. But I think we can<br>
&gt;&gt; &gt;&gt; &gt;&gt; safely<br>
&gt;&gt; &gt;&gt; &gt;&gt; make<br>
&gt;&gt; &gt;&gt; &gt;&gt; this a transient field.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; The same applies to Cache field in the SignatureImpl class. I think<br>
&gt;&gt; &gt;&gt; &gt;&gt; we<br>
&gt;&gt; &gt;&gt; &gt;&gt; can<br>
&gt;&gt; &gt;&gt; &gt;&gt; make it transient too.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Shall I go ahead and do these changes or do you have any<br>
&gt;&gt; &gt;&gt; &gt;&gt; reservations?<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; On Thu, Mar 1, 2012 at 11:05 AM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; Sure, and if you want to give me a patch that does it, even better<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; :)<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; cheers,<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; On 29 February 2012 16:52, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Shall I raise a request to make JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; serializable,<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; then? It<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; would solve the problem of serialization.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; On Wed, Feb 29, 2012 at 6:03 PM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Making them serializable is also reasonable. &#xA0;There is nothing<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; special<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; in them - mostly strings/ints.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; There is no option to weave the classes with no synthetic<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; fields.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &#xA0;It<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; is feasible but they aren&#39;t necessarily cheap to construct and<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; inlining their construction where they are used would damage<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; performance to some degree.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; On 29 February 2012 14:12, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On second thoughts, making them transient may not be a good<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; idea<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; because<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; deserialization may fail.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Do you think you can make JoinPoint.StaticPart and its<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; contents<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Serializable? I am not sure if that would be correct, but just<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; asking.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Or, is there any option to weave the classes so that the<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; synthetic<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; fields do<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; not exist at all?<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I know that I&#39;m asking for something that may not be a<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; requirement<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; for<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; most<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; usage scenarios or the actual intended usage of AspectJ. But I<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; am<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; stuck<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; with<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; this problem and just checking if there is a way out.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Thanks for your time.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Choudary.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; On Wed, Feb 29, 2012 at 4:39 PM, Andy Clement<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; &lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; I can provide you an option to make them transient, but I&#39;m<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; hesitant<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; to just change the default to transient. &#xA0;If you want an<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; option<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; like<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; that, please open a bugzilla:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ" target="_blank">https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; and I&#39;ll take a look.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; cheers,<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; Andy<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; On 28 February 2012 14:35, Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &lt;<a href="mailto:choudary.kothapalli@xxxxxxxxx">choudary.kothapalli@xxxxxxxxx</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; My product MaintainJ uses AspectJ load time weaving to<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; capture<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; call<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; trace at runtime. When weaving an application, the<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; following<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; exception<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; seen.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Caused by: java.io.NotSerializableException:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at java.io.ObjectOutputStream.writeObject0(Unknown<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at java.io.ObjectOutputStream.writeObject(Unknown<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Source)<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; &#xA0;&#xA0;&#xA0; at<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; xxx.yyyyy.ZZZClass.writeExternal_aroundBody4(ZZZClass.java:70)<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; AspectJ LTW seems to insert many fields as below in the<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; class<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; files<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; and<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; serializing them seems to be failing.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; private static final org.aspectj.lang.JoinPoint.StaticPart<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; ajc$tjp_0;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; /*<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; synthetic field */<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Is there any quick fix for this? Can AspectJ make these<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; fields<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; transient<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; without any other issues?<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Choudary Kothapalli<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; MaintainJ Inc.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; aspectj-dev mailing list<br>
&gt;&gt; &gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; &gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; aspectj-dev mailing list<br>
&gt;&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt;&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; aspectj-dev mailing list<br>
&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;<br>
_______________________________________________<br>
aspectj-dev mailing list<br>
<a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
<a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
</div></div></blockquote></div><br>
]]></content:encoded>
		<pubDate>Wed, 11 Apr 2012 22:45:52 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02968.html</guid>
		<author>choudary.kothapalli@xxxxxxx (Choudary Kothapalli)</author>
	</item>


	<item>
		<title>Re: [aspectj-dev] Discrepancies in the git eclipse aspectj	repository</title>
		<link>http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02967.html</link>
		<description></description>
		<content:encoded><![CDATA[Thinking back all that ... very long... time ago to when I last used CVS in anger, I&#39;d not really expect anything other than tags to be of much use.<br><br>Having been using Git for 2 years now, it amazes me just how much productivity we managed to screw out of CVS over the years :)<br>
<br><div class="gmail_quote">On 9 April 2012 22:36, Andy Clement <span dir="ltr">&lt;<a href="mailto:andrew.clement@xxxxxxxxx">andrew.clement@xxxxxxxxx</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I&#39;m afraid you are at the mercy of the import operation that was used<br>
to move the CVS repo to GIT - (which I think was git-cvsimport -i -p<br>
-x).<br>
<br>
After the webmaster ran it, I noticed mistakes in the git repo and had<br>
to just patch them up manually and move on. &#xA0;I&#39;ve not had much reason<br>
to go back and checkout older versions recently, so don&#39;t know how<br>
damaged things are in the past.<br>
<div class="im"><br>
&gt; Some files are changed added removed copied or renamed. Thus, If i take the<br>
&gt; snapshot of the repository at revID-1 and combine that info with the changes<br>
&gt; made in revision revID, then the snapshot at revID of the repository<br>
&gt; calculated in this way should be consistent with an independently captured<br>
&gt; snapshot of the repository at revID. Am I correct?<br>
<br>
</div>that seems a reasonable expectation to me.<br>
<br>
Andy<br>
<div><div class="h5"><br>
On 9 April 2012 14:04, Shivani Rao &lt;<a href="mailto:raoshivani@xxxxxxxxx">raoshivani@xxxxxxxxx</a>&gt; wrote:<br>
&gt; Hello,<br>
&gt;<br>
&gt; I am noticing a ton of discrepancies in the&#xA0; git eclipse aspectj repository.<br>
&gt; I am mining this repository for mining purposes.<br>
&gt; Of all the error this one is beyond my capacity to fix.<br>
&gt;<br>
&gt; Some files are changed added removed copied or renamed. Thus, If i take the<br>
&gt; snapshot of the repository at revID-1 and combine that info with the changes<br>
&gt; made in revision revID, then the snapshot at revID of the repository<br>
&gt; calculated in this way should be consistent with an independently captured<br>
&gt; snapshot of the repository at revID. Am I correct?<br>
&gt;<br>
&gt; Well, this is not the case of ASPECT. Some files are deleted in earlier<br>
&gt; revisions but magically re-appear in the snapshot at a later time.<br>
&gt;<br>
&gt; Has anybody else encountered this? What is the workaround?<br>
&gt;<br>
&gt; Shivani<br>
&gt;<br>
&gt; --<br>
&gt; Research Scholar,<br>
&gt; School of Electrical and Computer Engineering<br>
&gt; Purdue University<br>
&gt; West Lafayette IN<br>
&gt; <a href="http://web.ics.purdue.edu/%7Esgrao" target="_blank">web.ics.purdue.edu/~sgrao</a><br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; aspectj-dev mailing list<br>
&gt; <a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
&gt; <a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
&gt;<br>
_______________________________________________<br>
aspectj-dev mailing list<br>
<a href="mailto:aspectj-dev@xxxxxxxxxxx">aspectj-dev@xxxxxxxxxxx</a><br>
<a href="https://dev.eclipse.org/mailman/listinfo/aspectj-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/aspectj-dev</a><br>
</blockquote></div><br>
]]></content:encoded>
		<pubDate>Tue, 10 Apr 2012 07:41:28 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/aspectj-dev/msg02967.html</guid>
		<author>neale.upstone@xxxxxxx (Neale Upstone)</author>
	</item>

 
	</channel>
	</rss>
<!-- MHonArc v2.6.10 -->

