If I'm understanding you correctly, no. Each time an intercepted method is called a new (effectively immutable) MethodInvocation object is created and passed to the chain of MethodInterceptors that match that method.
Colin On Mon, Jan 24, 2011 at 10:53 AM, Anthony MULLER <[email protected]>wrote: > 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]<google-guice%[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]<google-guice%[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]<google-guice%[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]<google-guice%[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]<google-guice%[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.
