{"record":{"id":"f86b73df4a27061a","repo":"theonedev/onedev","slug":"has-not-been-properly-rendered-something-in-the","errorCode":null,"errorMessage":" has not been properly rendered. Something in the hierarchy of ","messagePattern":" has not been properly rendered\\. Something in the hierarchy of ","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"server-core/src/main/java/org/apache/wicket/Component.java","lineNumber":963,"sourceCode":"\t * \n\t */\n\tprivate void internalBeforeRender()\n\t{\n\t\tconfigure();\n\n\t\tif ((determineVisibility()) && !getFlag(FLAG_RENDERING) &&\n\t\t\t!getFlag(FLAG_PREPARED_FOR_RENDER))\n\t\t{\n\t\t\tsetRequestFlag(RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIED, false);\n\n\t\t\tgetApplication().getComponentPreOnBeforeRenderListeners().onBeforeRender(this);\n\n\t\t\tonBeforeRender();\n\t\t\tgetApplication().getComponentPostOnBeforeRenderListeners().onBeforeRender(this);\n\n\t\t\tif (!getRequestFlag(RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIED))\n\t\t\t{\n\t\t\t\tthrow new IllegalStateException(Component.class.getName() +\n\t\t\t\t\t\" has not been properly rendered. Something in the hierarchy of \" +\n\t\t\t\t\tgetClass().getName() +\n\t\t\t\t\t\" has not called super.onBeforeRender() in the override of onBeforeRender() method\");\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * We need to postpone calling beforeRender() on components that implement {@link IFeedback}, to\n\t * be sure that all other component's beforeRender() has been already called, so that IFeedbacks\n\t * can collect all feedback messages. This is the key under list of postponed {@link IFeedback}\n\t * is stored to request cycle metadata. The List is then iterated over in\n\t * {@link #prepareForRender()} after calling {@link #beforeRender()}, to initialize postponed\n\t * components.\n\t */\n\tprivate static final MetaDataKey<List<Component>> FEEDBACK_LIST = new MetaDataKey<List<Component>>()\n\t{\n\t\tprivate static final long serialVersionUID = 1L;","sourceCodeStart":945,"sourceCodeEnd":981,"githubUrl":"https://github.com/theonedev/onedev/blob/d44925c47c37992c828ea673a5f9620539bc3ff2/server-core/src/main/java/org/apache/wicket/Component.java#L945-L981","documentation":"Before rendering, Component calls onBeforeRender() and then verifies RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIED, which is only set inside Component.onBeforeRender(). If an override in the class hierarchy fails to call super.onBeforeRender(), Wicket throws this IllegalStateException so state preparation bugs are caught immediately.","triggerScenarios":"An override of onBeforeRender() does not call super.onBeforeRender(), and the component's before-render phase runs during request processing.","commonSituations":"Components that populate ListItems or set visibility in onBeforeRender(); copied example code or old Wicket 1.x migrations where super calls were optional.","solutions":["Locate the onBeforeRender() override in the class named in the message or an ancestor","Call super.onBeforeRender() (usually first) in the override","Check for conditional branches or try/finally that can skip the super call"],"exampleFix":"// before\n@Override\nprotected void onBeforeRender() {\n    if (getModelObject() == null) {\n        setVisible(false);\n    }\n}\n// after\n@Override\nprotected void onBeforeRender() {\n    super.onBeforeRender();\n    if (getModelObject() == null) {\n        setVisible(false);\n    }\n}","handlingStrategy":"validation","validationCode":"@Override\nprotected void onBeforeRender() {\n    super.onBeforeRender();\n    // your logic here\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Call super.onBeforeRender() first, never conditionally","Never throw before the super call in onBeforeRender"],"tags":["wicket","lifecycle","rendering"],"backgroundTag":"method-not-implemented","analyzedSha":"d44925c47c37992c828ea673a5f9620539bc3ff2","analyzedAt":"2026-09-06T07:18:27.995Z","contentChangedAt":"2026-09-06T07:18:27.995Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}