diff --git a/core/src/com/google/inject/internal/InjectionRequestProcessor.java b/core/src/com/google/inject/internal/InjectionRequestProcessor.java index 4877a3e961..b9592cad64 100644 --- a/core/src/com/google/inject/internal/InjectionRequestProcessor.java +++ b/core/src/com/google/inject/internal/InjectionRequestProcessor.java @@ -137,8 +137,7 @@ void validate() { } void injectMembers() { - InternalContext context = injector.enterContext(); - try { + try (InternalContext context = injector.enterContext()) { boolean isStageTool = injector.options.stage == Stage.TOOL; for (SingleMemberInjector memberInjector : memberInjectors) { // Run injections if we're not in tool stage (ie, PRODUCTION or DEV), @@ -151,8 +150,6 @@ void injectMembers() { } } } - } finally { - context.close(); } } } diff --git a/core/src/com/google/inject/internal/InjectorImpl.java b/core/src/com/google/inject/internal/InjectorImpl.java index 25a3dc74c0..3f69a98cda 100644 --- a/core/src/com/google/inject/internal/InjectorImpl.java +++ b/core/src/com/google/inject/internal/InjectorImpl.java @@ -1143,14 +1143,11 @@ Provider getProviderOrThrow(final Dependency dependency, Errors errors return new Provider() { @Override public T get() { - InternalContext currentContext = enterContext(); - try { + try (InternalContext currentContext = enterContext()) { T t = internalFactory.get(currentContext, dependency, false); return t; } catch (InternalProvisionException e) { throw e.addSource(dependency).toProvisionException(); - } finally { - currentContext.close(); } } diff --git a/core/src/com/google/inject/internal/InternalInjectorCreator.java b/core/src/com/google/inject/internal/InternalInjectorCreator.java index cf55c8fa25..735f6ffc67 100644 --- a/core/src/com/google/inject/internal/InternalInjectorCreator.java +++ b/core/src/com/google/inject/internal/InternalInjectorCreator.java @@ -204,8 +204,8 @@ void loadEagerSingletons(InjectorImpl injector, Stage stage, final Errors errors // jit bindings must be accessed while holding the lock. candidateBindings.addAll(injector.getJitBindingData().getJitBindings().values()); } - InternalContext context = injector.enterContext(); - try { + + try (InternalContext context = injector.enterContext()) { for (BindingImpl binding : candidateBindings) { if (isEagerSingleton(injector, binding, stage)) { Dependency dependency = Dependency.get(binding.getKey()); @@ -216,8 +216,6 @@ void loadEagerSingletons(InjectorImpl injector, Stage stage, final Errors errors } } } - } finally { - context.close(); } } diff --git a/core/src/com/google/inject/internal/MembersInjectorImpl.java b/core/src/com/google/inject/internal/MembersInjectorImpl.java index 57a62c74b7..6e803bf044 100644 --- a/core/src/com/google/inject/internal/MembersInjectorImpl.java +++ b/core/src/com/google/inject/internal/MembersInjectorImpl.java @@ -85,8 +85,7 @@ void injectAndNotify( if (instance == null) { return; } - final InternalContext context = injector.enterContext(); - try { + try (InternalContext context = injector.enterContext()) { if (provisionCallback != null && provisionCallback.hasListeners()) { provisionCallback.provision( context, @@ -100,8 +99,6 @@ public T call() throws InternalProvisionException { } else { injectMembers(instance, context, toolableOnly); } - } finally { - context.close(); } // TODO: We *could* notify listeners too here, diff --git a/core/src/com/google/inject/internal/ProviderToInternalFactoryAdapter.java b/core/src/com/google/inject/internal/ProviderToInternalFactoryAdapter.java index 490684dc82..82555a7ac8 100644 --- a/core/src/com/google/inject/internal/ProviderToInternalFactoryAdapter.java +++ b/core/src/com/google/inject/internal/ProviderToInternalFactoryAdapter.java @@ -32,8 +32,7 @@ public ProviderToInternalFactoryAdapter( @Override public T get() { - InternalContext context = injector.enterContext(); - try { + try (InternalContext context = injector.enterContext()) { // Always pretend that we are a linked binding, to support // scoping implicit bindings. If we are not actually a linked // binding, we'll fail properly elsewhere in the chain. @@ -41,8 +40,6 @@ public T get() { return t; } catch (InternalProvisionException e) { throw e.toProvisionException(); - } finally { - context.close(); } }