diff -ru sisu-inject-bootstrap.orig/org.eclipse.sisu.inject/src/org/eclipse/sisu/bean/BeanScheduler.java sisu-inject-bootstrap/org.eclipse.sisu.inject/src/org/eclipse/sisu/bean/BeanScheduler.java --- sisu-inject-bootstrap.orig/org.eclipse.sisu.inject/src/org/eclipse/sisu/bean/BeanScheduler.java 2014-07-22 20:36:53.223380900 -0400 +++ sisu-inject-bootstrap/org.eclipse.sisu.inject/src/org/eclipse/sisu/bean/BeanScheduler.java 2014-07-24 12:34:51.562456309 -0400 @@ -29,23 +29,7 @@ static { - Object activator; - try - { - // extra check in case we have both old and new versions of guice overlapping on the runtime classpath - Binder.class.getMethod( "bindListener", Matcher.class, com.google.inject.spi.ProvisionListener[].class ); - - activator = new Activator(); - } - catch ( final Exception e ) - { - activator = null; - } - catch ( final LinkageError e ) - { - activator = null; - } - ACTIVATOR = activator; + ACTIVATOR = null; } // ---------------------------------------------------------------------- @@ -60,10 +44,6 @@ { public void configure( final Binder binder ) { - if ( null != ACTIVATOR ) - { - binder.bindListener( Matchers.any(), (com.google.inject.spi.ProvisionListener) ACTIVATOR ); - } } }; @@ -84,21 +64,6 @@ */ public final void schedule( final Object bean ) { - if ( null != ACTIVATOR ) - { - final Object[] holder = getPendingHolder(); - final Object pending = holder[0]; - if ( pending == PLACEHOLDER ) - { - holder[0] = new Pending( bean ); - return; // will be activated later - } - else if ( pending instanceof Pending ) - { - ( (Pending) pending ).add( bean ); - return; // will be activated later - } - } activate( bean ); // no ProvisionListener, so activate immediately } @@ -157,34 +122,4 @@ } } } - - /** - * Listens to provisioning events in order to determine safe activation points. - */ - static final class Activator - implements com.google.inject.spi.ProvisionListener - { - public void onProvision( final ProvisionInvocation pi ) - { - final Object[] holder = getPendingHolder(); - if ( null == holder[0] ) - { - final Object pending; - holder[0] = PLACEHOLDER; - try - { - pi.provision(); // may involve nested calls/cycles - } - finally - { - pending = holder[0]; - holder[0] = null; - } - if ( pending instanceof Pending ) - { - ( (Pending) pending ).activate(); - } - } - } - } }