Interface AgentBuilder.CircularityLock
- All Known Implementing Classes:
AgentBuilder.CircularityLock.Default, AgentBuilder.CircularityLock.Global, AgentBuilder.CircularityLock.Inactive, AgentBuilder.CircularityLock.WithInnerClassLoadingLock
- 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.static classA circularity lock that surrounds the locking mechanism with a global lock to prevent that the locking mechanism itself loads classes and causes a circularity issue. -
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.
-