Ok... And is a methodinterceptor reentrant? In other words, can the instance of MethodInvocation provided to the invoke method be updated?
Anthony 2011/1/24 Colin Decker <[email protected]>: > This is not an issue to be "fixed". You just have to consider the > thread-safety of interceptors like you would any other object you write, > with additional consideration to the fact that a single interceptor can be > intercepting for multiple objects at the same time depending on what it's > set up to intercept and how those bindings are scoped. Generally, you should > probably write interceptors that are completely thread-safe. > Colin > > > On Mon, Jan 24, 2011 at 10:17 AM, Anthony MULLER <[email protected]> > wrote: >> >> Thanks very much for your reply. Do you know if this issue is tracked? >> >> Is it fixed in Guice 2.0? >> >> Regards, >> Anthony MÜLLER >> >> >> 2011/1/24 Fred Faber <[email protected]>: >> > Your suspicions are correct: an interceptor may be invoked by several >> > threads concurrently. For instance: >> > class TimingInterceptor implements MethodInterceptor { >> > private final Stopwatch stopwatch; >> > >> > TimingInterceptor(Stopwatch stopwatch) { >> > this.stopwatch = stopwatch; >> > } >> > @Override Object invoke(MethodInvocation i) throws Throwable { >> > stopwatch.reset(); >> > try { >> > return i.proceed(); >> > } finally { >> > System.err.println("Invocation time: " + stopwatch.get()); >> > } >> > } >> > Is going to break, because the stopwatch is shared among threads. >> > -Fred >> > On Mon, Jan 24, 2011 at 9:46 AM, Anthony MULLER >> > <[email protected]> >> > wrote: >> >> >> >> Hello, >> >> >> >> I'm using "method interceptor" mechanisms with Guice 1.0 and I wish to >> >> know if it is thread-safe? (I have some strange behaviours in >> >> multithreading environment) >> >> >> >> Regards, >> >> Anthony MÜLLER >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> >> Groups >> >> "google-guice" group. >> >> To post to this group, send email to [email protected]. >> >> To unsubscribe from this group, send email to >> >> [email protected]. >> >> For more options, visit this group at >> >> http://groups.google.com/group/google-guice?hl=en. >> >> >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups >> > "google-guice" group. >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> > [email protected]. >> > For more options, visit this group at >> > http://groups.google.com/group/google-guice?hl=en. >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "google-guice" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/google-guice?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
