Hi there,
I am new to this forum, hope anyone can help!
I am trying to construct a recursive tree using 1 View Object (as described in the ADF Code Corner 32 by Frank Nimphius for which many thanks) that uses context menus.
Short problem description:
-the recursive tree using 1 VO works just fine
-when adding a context menu, I get an ADF_FACES-60096 exception
I have a simple table PRB_NODES (I removed the irrelevant parts from the Toad script)
CREATE TABLE PRB_NODES
(
ID NUMBER(10) NOT NULL,
PARENT_PBNO_ID NUMBER(10),
ARTIKELNUMMER VARCHAR2(50 BYTE),
OMSCHRIJVING CLOB,
)
ALTER TABLE PRB_NODES ADD (
CONSTRAINT PRB_PBNO_PK PRIMARY KEY (ID)
USING INDEX PRB_PBNO_PK ENABLE VALIDATE);
ALTER TABLE PRB_NODES ADD (
CONSTRAINT PRB_PBNO_PBNO_FK
FOREIGN KEY (PARENT_PBNO_ID) REFERENCES PRB_NODES (ID) ENABLE VALIDATE;
So there is a FK from PARENT_PBNO_ID back to the table itself, thus constructing the tree.
The FK in the DB results in an association from PARENT_PBNO_ID back to ID
I followed Frank's tutorial and the ADF tree works just fine.
Then however, I tried to add a context menu to the ADF tree "contextMenu" facet. I added a popup / menu / commandMenuItem named "Delete node", without any application logic yet.
When I run the application, open some nodes and right-click, I get the following error message:
java.lang.NullPointerException
ADF_FACES-60097:Zoek een ingang die begint met ADF_FACES-60096:Serveruitzondering tijdens PPR, nummer 2 in het foutenlog van de server voor meer informatie.
The stack in the JDeveloper screen:
<11-jun-2014 10.04 u. CEST> <Error> <oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter> <BEA-000000> <ADF_FACES-60096:Serveruitzondering tijdens PPR, nummer 2
java.lang.NullPointerException
at oracle.adfinternal.view.faces.model.binding.RowDataManager._getRowCount(RowDataManager.java:496)
at oracle.adfinternal.view.faces.model.binding.RowDataManager.getRowCount(RowDataManager.java:246)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.getRowCount(FacesCtrlHierBinding.java:909)
at org.apache.myfaces.trinidad.component.UIXCollection.getRowCount(UIXCollection.java:439)
at org.apache.myfaces.trinidad.model.ModelUtils.findLastIndex(ModelUtils.java:130)
at org.apache.myfaces.trinidad.component.TableUtils.getLast(TableUtils.java:85)
at org.apache.myfaces.trinidad.component.UIXHierarchy.visitHierarchy(UIXHierarchy.java:430)
at org.apache.myfaces.trinidad.component.UIXHierarchy.visitHierarchy(UIXHierarchy.java:454)
at org.apache.myfaces.trinidad.component.UIXTree.visitData(UIXTree.java:318)
at org.apache.myfaces.trinidad.component.UIXTree.visitChildren(UIXTree.java:303)
at oracle.adf.view.rich.component.rich.data.RichTree.visitChildren(RichTree.java:240)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:703)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:566)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:362)
at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:445)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:423)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:703)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:566)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:362)
at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:445)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:423)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:703)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:566)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:362)
at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:445)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:423)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:703)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:566)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:362)
at oracle.adf.view.rich.component.rich.layout.RichPanelAccordion.visitTree(RichPanelAccordion.java:302)
at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:445)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:423)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:703)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:566)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:362)
at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:445)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:423)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:703)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:566)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:362)
at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:445)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:423)
at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:703)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:566)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:362)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at oracle.adfinternal.view.faces.lifecycle.ResponseRenderManager._addTargetRenderIds(ResponseRenderManager.java:68)
at oracle.adfinternal.view.faces.lifecycle.ResponseRenderManager.runRenderView(ResponseRenderManager.java:51)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1104)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:389)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:255)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:192)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:478)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:478)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:303)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:208)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:137)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:120)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:217)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:81)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:225)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3367)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)
>
I then constructed an ADF tree using 2 View Objects (not a recursive tree, simply two levels) and added a context menu exactly the same way, and this does seem to work fine as expected.
Am I forgetting something when configuring the EO or the recursive ADF tree with context menu?? I followed Frank's tutorial and without the context menu, the ADF tree works just fine. Only the context menu throws errors.
Thank you very much for any insight you might provide!
Kristof
JDeveloper Studio Edition Version 12.1.2.0.0
Java(TM) Platform 1.7.0_15
Oracle IDE 12.1.2.0.40.66.68
Browser: Firefox 29.0.1