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" );