You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@onami.apache.org by as...@apache.org on 2014/03/02 11:28:48 UTC
svn commit: r1573277 -
/onami/trunk/scopes/src/main/java/org/apache/onami/scopes/ConcurrentLazySingletonScopeImpl.java
Author: ash2k
Date: Sun Mar 2 10:28:48 2014
New Revision: 1573277
URL: http://svn.apache.org/r1573277
Log:
Do not use Guice internal APIs
Modified:
onami/trunk/scopes/src/main/java/org/apache/onami/scopes/ConcurrentLazySingletonScopeImpl.java
Modified: onami/trunk/scopes/src/main/java/org/apache/onami/scopes/ConcurrentLazySingletonScopeImpl.java
URL: http://svn.apache.org/viewvc/onami/trunk/scopes/src/main/java/org/apache/onami/scopes/ConcurrentLazySingletonScopeImpl.java?rev=1573277&r1=1573276&r2=1573277&view=diff
==============================================================================
--- onami/trunk/scopes/src/main/java/org/apache/onami/scopes/ConcurrentLazySingletonScopeImpl.java (original)
+++ onami/trunk/scopes/src/main/java/org/apache/onami/scopes/ConcurrentLazySingletonScopeImpl.java Sun Mar 2 10:28:48 2014
@@ -23,7 +23,6 @@ import com.google.inject.Key;
import com.google.inject.Provider;
import com.google.inject.ProvisionException;
import com.google.inject.Scope;
-import com.google.inject.internal.CircularDependencyProxy;
import java.util.HashMap;
import java.util.Map;
@@ -61,13 +60,24 @@ class ConcurrentLazySingletonScopeImpl
{
T provided = creator.get();
- // don't remember proxies; these exist only to serve circular dependencies
- if ( provided instanceof CircularDependencyProxy )
- {
- return provided;
- }
+ Object providedOrSentinel;
+ if ( provided == null )
+ {
+ providedOrSentinel = NULL;
+ }
+ else
+ {
+ for ( Class<?> clazz : provided.getClass().getInterfaces() )
+ {
+ // don't remember proxies; these exist only to serve circular dependencies
+ if ( clazz.getName().equals("com.google.inject.internal.CircularDependencyProxy") )
+ {
+ return provided;
+ }
+ }
+ providedOrSentinel = provided;
+ }
- Object providedOrSentinel = ( provided == null ) ? NULL : provided;
if ( ( instance != null ) && ( instance != providedOrSentinel ) )
{
throw new ProvisionException( "Provider was reentrant while creating a singleton" );