Package net.bytebuddy.agent.builder
Interface AgentBuilder.CircularityLock
- All Known Implementing Classes:
AgentBuilder.CircularityLock.Default,AgentBuilder.CircularityLock.Global,AgentBuilder.CircularityLock.Inactive
- Enclosing interface:
AgentBuilder
public static interface AgentBuilder.CircularityLock
A circularity lock is responsible for preventing that a
ClassFileLocator is used recursively.
This can happen when a class file transformation causes another class to be loaded. Without avoiding
such circularities, a class loading is aborted by a ClassCircularityError which causes the
class loading to fail.-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classA default implementation of a circularity lock.static classA circularity lock that holds a global monitor and does not permit concurrent access.static enumAn inactive circularity lock which is always acquirable. -
Method Summary
-
Method Details
-
acquire
boolean acquire()Attempts to acquire a circularity lock.- Returns:
trueif the lock was acquired successfully,falseif it is already hold.
-
release
void release()Releases the circularity lock if it is currently acquired.
-