Hi Tim,

I'm certainly interested in more details. I haven't heard of that problem
but I suspect although we have some regression tests for generics we don't
have a lot exercising multiple bounds. I'll have a look in the code but as
you say, a sample that exhibits the problem will enable me to fix it much
quicker (or sort out a temporary workaround - maybe something silly like
reordering the bounds in the source code).  Please raise a bug and share
any more info there or with me on email.

cheers,
Andy

On 26 January 2016 at 03:26, Tim Webster <tim.webs...@gmail.com> wrote:

> Hi,
>
> I'm seeing a problem where a class with multiple bounds is 'losing' one of
> its bounds after weaving occurs.
>
> Even more strange is that it is only happening on a specific platform.
>
> a brief outline of the problem:
>
> Source class:
>
> public class ExistenceByIdSpecification<D extends AbstractDomainObject &
> Identifiable> extends ExistenceSpecification<D> implements
> IExistenceByIdSpecification
>
> What happens is the 'AbstractDomainObject' bound (which is a class) is
> disappearing, and in the bytecode we end up with something like this:
>
> public class ExistenceByIdSpecification<D extends Identifiable> extends
> ExistenceSpecification<D> implements IExistenceByIdSpecification,
> org.springframework.beans.factory.aspectj.ConfigurableObject
>
>
> this results is a runtime error whenever the constructor is called (I've
> removed package names - this is from a unit test):
>
>
> ExistenceByIdSpecification.&lt;init&gt;(L/Identifiable;)V"
> type="java.lang.NoSuchMethodError"><![CDATA[java.lang.NoSuchMethodError:
> ExistenceByIdSpecification.<init>(L/Identifiable;)V
>         at
> ExistenceByIdSpecificationTest.<init>(ExistenceByIdSpecificationTest.java:33)
>
>
>
> Also, the bytecode for the class is quite a bit larger on the environment
> where this isn't working properly - it looks like stuff related to
> @Configurable is repeated.
>
> I'm suspecting AspectJ here because when I compile the code with AspectJ
> disabled, the bytecode looks correct.
>
> The environments details I've tried are:
>
> *works properly:*
> Windows 7
> Manjaro Linux (current version)
> Oracle JDK 1.7.0_79
> AspectJ 1.8.6
>
> *Doesn't work:*
> CentOS 7
> Oracle JDK 1.7.0_79, Oracle JDK 1.8.0_65, OpenJDK 1.7.0
> AspectJ 1.8.6, 1.8.8
>
> Unfortunately we want to target CentOS as a build platform, so that's why
> this is a problem for us!
>
> I've only included basic details here to see if anyone has heard of this
> problem.  I'm happy to provide more detail if required.  I know that a
> sample project is ideal, but I may struggle to reproduce that (although I
> will try).
>
> Thanks,
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@eclipse.org
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to