Class InternalProvisionException
- All Implemented Interfaces:
Serializable
This is the internal dual of ProvisionException
, similar to the relationship between
ConfigurationException
and ErrorsException
. This is useful for
several reasons:
- Since it is a checked exception, we get some assistance from the java compiler in ensuring that we correctly handle it everywhere. ProvisionException is unchecked.
- Since this is an internal package, we can add useful construction and mutation APIs that would be undesirable in a public supported API.
This exception will be thrown when errors are encountered during provisioning, ErrorsException
will continue to be used for errors that are encountered during provisioning and both make use of
the Message
as the core model.
NOTE: this object stores a list of messages but in the most common case the cardinality will
be 1. The only time that multiple errors might be reported via this mechanism is when errorInUserCode(com.google.inject.internal.ErrorId, java.lang.Throwable, java.lang.String, java.lang.Object...)
is called with an exception that holds multiple errors (like
ProvisionException).
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final com.google.common.collect.ImmutableList<Message>
private static final Logger
private static final Set<Dependency<?>>
-
Constructor Summary
ConstructorsModifierConstructorDescription(package private)
private
InternalProvisionException
(Iterable<Message> errors) -
Method Summary
Modifier and TypeMethodDescription(package private) InternalProvisionException
Prepends the givensource
to the stack of binding sources for the errors reported in this exception.static InternalProvisionException
cannotProxyClass
(Class<?> expectedType) static InternalProvisionException
circularDependenciesDisabled
(Class<?> expectedType) static InternalProvisionException
static InternalProvisionException
static InternalProvisionException
errorInjectingMethod
(Throwable cause) static InternalProvisionException
errorInProvider
(Throwable cause) static InternalProvisionException
errorInUserCode
(ErrorId errorId, Throwable cause, String messageFormat, Object... arguments) static InternalProvisionException
errorInUserInjector
(MembersInjector<?> listener, TypeLiteral<?> type, RuntimeException cause) static InternalProvisionException
errorNotifyingInjectionListener
(InjectionListener<?> listener, TypeLiteral<?> type, RuntimeException cause) (package private) com.google.common.collect.ImmutableList<Message>
static InternalProvisionException
jitDisabled
(Key<?> key) (package private) static void
onNullInjectedIntoNonNullableDependency
(Object source, Dependency<?> dependency) Returnsvalue
if it is non-null or allowed to be null.static InternalProvisionException
subtypeNotProvided
(Class<? extends javax.inject.Provider<?>> providerType, Class<?> type) Returns this exception convered to a ProvisionException.Methods inherited from class java.lang.Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
-
Field Details
-
logger
-
warnedDependencies
-
sourcesToPrepend
-
errors
-
-
Constructor Details
-
InternalProvisionException
InternalProvisionException(Message error) -
InternalProvisionException
-
-
Method Details
-
circularDependenciesDisabled
-
cannotProxyClass
-
create
public static InternalProvisionException create(ErrorId errorId, String format, Object... arguments) -
errorInUserCode
public static InternalProvisionException errorInUserCode(ErrorId errorId, Throwable cause, String messageFormat, Object... arguments) -
subtypeNotProvided
public static InternalProvisionException subtypeNotProvided(Class<? extends javax.inject.Provider<?>> providerType, Class<?> type) -
errorInProvider
-
errorInjectingMethod
-
errorInjectingConstructor
-
errorInUserInjector
public static InternalProvisionException errorInUserInjector(MembersInjector<?> listener, TypeLiteral<?> type, RuntimeException cause) -
jitDisabled
-
errorNotifyingInjectionListener
public static InternalProvisionException errorNotifyingInjectionListener(InjectionListener<?> listener, TypeLiteral<?> type, RuntimeException cause) -
onNullInjectedIntoNonNullableDependency
static void onNullInjectedIntoNonNullableDependency(Object source, Dependency<?> dependency) throws InternalProvisionException Returnsvalue
if it is non-null or allowed to be null. Otherwise a message is added and anInternalProvisionException
is thrown.- Throws:
InternalProvisionException
-
addSource
Prepends the givensource
to the stack of binding sources for the errors reported in this exception.It is expected that this method is called as the exception propagates up the stack.
- Parameters:
source
-- Returns:
this
-
getErrors
com.google.common.collect.ImmutableList<Message> getErrors() -
toProvisionException
Returns this exception convered to a ProvisionException.
-