[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-dev] NotSerializableException: org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl

Shall I raise a request to make JoinPoint.StaticPart serializable, then? It would solve the problem of serialization.

Choudary.

On Wed, Feb 29, 2012 at 6:03 PM, Andy Clement <andrew.clement@xxxxxxxxx> wrote:
Making them serializable is also reasonable.  There is nothing special
in them - mostly strings/ints.

There is no option to weave the classes with no synthetic fields.  It
is feasible but they aren't necessarily cheap to construct and
inlining their construction where they are used would damage
performance to some degree.

Andy

On 29 February 2012 14:12, Choudary Kothapalli
<choudary.kothapalli@xxxxxxxxx> wrote:
> On second thoughts, making them transient may not be a good idea because the
> deserialization may fail.
>
> Do you think you can make JoinPoint.StaticPart and its contents
> Serializable? I am not sure if that would be correct, but just asking.
>
> Or, is there any option to weave the classes so that the synthetic fields do
> not exist at all?
>
> I know that I'm asking for something that may not be a requirement for most
> usage scenarios or the actual intended usage of AspectJ. But I am stuck with
> this problem and just checking if there is a way out.
>
> Thanks for your time.
>
> Choudary.
>
>
> On Wed, Feb 29, 2012 at 4:39 PM, Andy Clement <andrew.clement@xxxxxxxxx>
> wrote:
>>
>> I can provide you an option to make them transient, but I'm hesitant
>> to just change the default to transient.  If you want an option like
>> that, please open a bugzilla:
>> https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
>>
>> and I'll take a look.
>>
>> cheers,
>> Andy
>>
>> On 28 February 2012 14:35, Choudary Kothapalli
>> <choudary.kothapalli@xxxxxxxxx> wrote:
>> > My product MaintainJ uses AspectJ load time weaving to capture the call
>> > trace at runtime. When weaving an application, the following exception
>> > is
>> > seen.
>> >
>> > Caused by: java.io.NotSerializableException:
>> > org.aspectj.runtime.reflect.JoinPointImpl$StaticPartImpl
>> >     at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>> >     at java.io.ObjectOutputStream.writeObject(Unknown Source)
>> >     at xxx.yyyyy.ZZZClass.writeExternal_aroundBody4(ZZZClass.java:70)
>> >
>> > AspectJ LTW seems to insert many fields as below in the class files and
>> > serializing them seems to be failing.
>> >
>> > private static final org.aspectj.lang.JoinPoint.StaticPart ajc$tjp_0; /*
>> > synthetic field */
>> >
>> > Is there any quick fix for this? Can AspectJ make these fields transient
>> > without any other issues?
>> >
>> > Thanks,
>> > Choudary Kothapalli
>> > MaintainJ Inc.
>> >
>> > _______________________________________________
>> > aspectj-dev mailing list
>> > aspectj-dev@xxxxxxxxxxx
>> > https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>> >
>> _______________________________________________
>> aspectj-dev mailing list
>> aspectj-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>
>
>
> _______________________________________________
> aspectj-dev mailing list
> aspectj-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>
_______________________________________________
aspectj-dev mailing list
aspectj-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-dev