When Nucleus starts up a component, it also starts up other components referenced by that component’s properties. Nucleus can resolve circular references, where a component referred to by another component has properties that refer back to the first component. Circular references can cause deadlocks, which result from multiple threads trying to lock the two components in different orders. To debug deadlock problems, add this setting to the Nucleus.properties file:


If debugComponentLock is set to true and a potential deadlock is detected, a DeadlockException is thrown and displayed in the console. The exception indicates the lock in question, the thread it conflicts with, and the locks held on each side. Locks are named after the components involved, which can help determine which component is causing the problem. One or more of the components is incompletely initialized, so you need to fix the source of the problem and restart the ATG platform.

loading table of contents...