Class RenderDepthExceededException
- All Implemented Interfaces:
Serializable
RenderDepthGuard when one of the declarative render frame's traversal
recursions reaches an Element-tree depth beyond RenderDepthGuard.MAX_DEPTH.
A named, attributable failure in place of the StackOverflowError the guard exists to
prevent (T-05-62 / #371): a module-authored widget tree deep enough overflows the JVM stack
mid-frame, and StackOverflowError is an Error -- nothing on the render path
catches it, so it would otherwise escape the scheduled frame and can leave the Inventory
half-written. This exception, by contrast, is a plain RuntimeException raised by
ordinary application code before any stack exhaustion occurs, so it propagates and can be
handled like any other failure in the frame. "Attributable" describes what a reader of the
server console or the UltiPanel error dashboard sees (the guard name and depth reached in the
message, and one report per guard site rather than one per frame -- see
GuiScheduler.executeFrame's routing into ErrorReportCollector, WR-01); it does
not claim the exception is meant to be caught and recovered from by module authors.
WR-03: @ApiStatus.Internal -- purely internal render-engine machinery; no
module-author use case for catching this exception is intended, and this release adds no new
public surface.
- Since:
- 6.3.0
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionRenderDepthExceededException(String guardName, int depth, int maxDepth) Constructs the exception, naming the guard that tripped, the depth reached, and the configured limit. -
Method Summary
Methods inherited from class java.lang.Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
-
Constructor Details
-
RenderDepthExceededException
Constructs the exception, naming the guard that tripped, the depth reached, and the configured limit.- Parameters:
guardName- identifies which of the four render-frame recursions raised this -- surfaced in the message so the failure is attributable, not anonymousdepth- the Element-tree depth that was reachedmaxDepth- the configured limit that was exceeded
-