NP - I'll try to put up a patch today (Monday EDT). It's going to be a bit
cumbersome for the current versions of Weld, as we need to use reflection - unfortunately
the current implementation of jboss-interceptors simply doesn't account for this use
case, but at least we can get something working.
Hopefully, future versions of Weld will be able to support this in a much smoother
----- Original Message -----
From: "Peter Royle" <howardmoon(a)screamingcoder.com>
To: "Marius Bogoevici" <mariusb(a)redhat.com>
Cc: "Seam-Dev" <seam-dev(a)lists.jboss.org>, "Weld-Dev"
Sent: Monday, May 16, 2011 2:15:49 AM
Subject: Re: [weld-dev] WELD-862 and Seam Cron
Thanks, that's hugely helpful. I hadn't realised that my implementation was
outside the Interceptors spec. I guess in that case the ideal solution is one which works
within the bounds of the spec (ie: the deep-copy "workaround"). I will try that
out as soon as you are able to provide the patch/sample for how to do so (I had a dig
around but couldn't work it out unfortunately). If I notice any significant
performance implications with that approach I'll report back here for further advice.
On 14/05/2011, at 2:31 AM, Marius Bogoevici wrote:
Creating a separate thread from an @AroundInvoke interceptor and using that to proceed()
is not actually supported by the Interceptors spec.
"Around-invoke methods run in the same Java call stack as the associated target
method." (page 6) - which is clearly not the case here
Nevertheless, I'll try to improve the handling in jboss-interceptors (which is used by
weld) to handle this use case properly. The invocationcontext is not serializable, but it
can be cloned using specific stuff from jboss-interceptors, so we can activate that as a
workaround for extant versions of JBoss/Glasssfish/Weld. I'll send a patch on how to
do that on the issue itself.
Hope this helps,
----- Original Message -----
From: "Peter Royle" < howardmoon(a)screamingcoder.com >
To: "Weld-Dev" < weld-dev(a)lists.jboss.org >
Cc: "Seam-Dev" < seam-dev(a)lists.jboss.org >
Sent: Friday, May 13, 2011 8:22:54 AM
Subject: [weld-dev] WELD-862 and Seam Cron
I'm aiming to make a release of Seam Cron available within the next two weeks.
Currently there is an outstanding issue ( https://issues.jboss.org/browse/WELD-862
prevents Cron from running properly with Weld. I have been able to carry on developing
Cron by testing it against OpenWebBeans, but obviously if we are to release a Seam module
it should work against Weld.
It would be nice if WELD-862 could be fixed as soon a possible so that all future versions
will work well with Cron.
But more importantly I also probably need to do something special in Cron so that it will
work with the version of Weld already deployed in JBoss AS and Glassfish, which will
contain the bug. The workaround mentioned in the bug report is to deep copy the
InvocationContext. I attempted to do this by serialising and unserialising the
InvocationContext but couldn't due to UnserializableExceptions. Does anyone have any
advice for me about how I might be able to work around this bug to support existing
versions of Weld?
weld-dev mailing list