Dynamic tabs opening

Hi! I have no idea where to start so any starting points would be most welcome :)
Our JHeadstart generated application uses dynamic tabs. Some pages opened in dynamic tabs have to contain links that would open other pages in new tabs.
Example:
Displaying users and editing user roles
Let's say we have a page for viewing "Users" from DB table. They are displayed in ADF table and let's say every row contains a column "Role". By clicking user's role should open a page in edit mode in new tab for that specific role.
Where should I start? What do I have to read? Any useful links, info?
PS: What is the release date of newest JHeadstart?
Regards, Marko

Thank you for your answer. I already familiarized myself with these chapters, while I was waiting for a reply ;)
But I still have an issue.
JHeadstart generated our application which is using JhsDynamicTabsPageTemplate. OK, in dynamic tabs I figured out we can use groupLink or groupLinkButton to link tab to other tabs.
But the problem is, I need to have links on a Home.jspx that would refer to UIShell.jspx and open specific bounded task flow. What is the right method to achieve that?
My first option was to use deep linking from an external source method. By specifying parameters (jhsTaskFlowName, rowKeyValue[Group_name]) of bounded task flow in URL I managed to open the right task flow, but it didn't open the right row with specified key (like rowKeyValue was ignored), but the first row of view query. Also when I closed that tab and revisited it again it would open in exact same place, because it would still read parameters from the URL. But I don't want that.
PS: I hope I'm making any sense.
Please I'm suffering here :)
Do you have any advice on how to create links in Home.jspx that would open the right dynamic tab in UIShell.jspx with parameters that I set?
Regards, Marko

Similar Messages

  • Wrong dynamic tab closing

    JDev 11.1.1.4, JHS 11.1.1.35
    If I have multiple dynamic tabs open, and one of those tabs has unsaved changes on it, if I try to close the tab with unsaved changes while another tab is active I get the confirmation popup about my unsaved changes, but when I click 'Yes' my current active tab closes, not the tab I was trying to close.
    Example: I have 4 tabs open, call them tabA, tabB, tabC, tabD, and I change something on tabC, but don't save. Then I move to tabD. while on tabD I click the close button on tabC. I get the popup message, click 'Yes', and tabD closes, not tabC.

    Steve,
    Yes, that is a known issue that we have fixed in upcoming Jheadstart 11.1.1.4 release, which will become available before the end of this calendar year.
    Steven Davelaar,
    JHeadstart Team.

  • Dynamic Tab UI - Open once

    Hi Gurus,
    I am using Jdev 11.1.2.3. I have facing a issue with Dynamic tab ui. Tab is opening fine in the templete but once i close a tab and try to open it (Same tab) again. it is unable to open it. No Error No Exception is there. I am using Launcher.java example in Dynamic Tab UI example.
    Please advice me.
    Thanks in avance.

    Hi,
    your post doesn't provide enough details to answer your question. Can you provide a testcase? If so, send it my way in a zip that you rename to "unzip". My mail address is in my OTN profile (just click on my name to the left). Make sure in your mail to me that you add a kink to this thread
    Frank

  • Open dynamic tab from remote page

    Hi!
    I have a question. We use JDeveloper 11.1.2.1.0
    We are using dynamicTabShell template for dynamic tabs managment in our application. Everything works as it should if page is using dnymicTabShell template. But...
    I would like to have a Home.jspx that would load when client logs in. Home should be a special page without dynamic tabs support. I would like to have quick links on Home.jspx that would open certain page and bounded task flow with page fragments in application. How can I achieve that? Do I have to enable URL invoke property? Problem is, we implemented custom security that checks if client has proper permissions before task flow is launched through _launchActivity* method in launcher.java. URL invokation would make security more complex.
    In fewer words: Is there's a way of opening certain tab in application from page that does not use dynamicTabShell template? Or do I have to enable URL invoke property on bounded task flows with page fragments? How can I then check permissions if task flow is reachable through URL.
    I hope I'm being clear.
    Regards, Marko

    OK, is there no other way of opening a bounded task flow with page fragments in a page (which is using dynamicTabShell template) from other page that is not using dynamicTabShell template?
    Maybe calling _launchActivity in beforePhase is completely wrong approach, because "java.lang.NullPointerException: UIComponent is null" is returned.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Closing a dynamic tab (Dynamic Tab shell) does not navigate to last opened

    Hi,
    I have implemented Dynamic Tab UI shell in my application.
    When I load the jspx page (which uses this template), by default I open a tab.
    From the first tab, I open multiple tabs with different task flows, say tab1->tab2->tab3.
    Now when I close tab3, instead of navigating to tab2 (from where tab3 was open), it always navigates to tab1.
    Is this a known issue? I use Jdev 11.1.1.4.0.
    Thanks in advance!
    -Swapna

    Thanks Chris,
    After I posted this question I actually did the same thing :)
    I downloaded the source code and then changed the _removeTab() method to display the immediate previous tab available and isActive().
    Right now the logic is like, they start from the current tab and then iterate to get next tab by incrementing the tab number and once it reached 15 (MAXFlOWS), it is set to "0" and hence always navigates to first (0th) tab.
    I reversed the logic, to start from the current tab and iterate in the reverse order.
    -Swapna

  • Dynamic Tab UI Shell - close tab action & number of open tabs control

    Hi,
    I browsed through the forum, but could not get hold of any concrete solution for the question on how to capture the close tab action event and perform some action on that?
    The below thread discusses my question but does not appear to have a proper solution
    Re: Dynamic Tab UI Shell: controlling the Close icon
    And one other question is, currently in the TabContext the number of open tabs is set to 15 limit. How can I override that such that I do not allow more than 7 tabs open at a time?
    Please help me with the above two queries. Thanks !
    Regards,
    SS

    Sorry for so much delay. Finally, got some time to play with the template and downloading the dynamicTabTemplate source code and overriding the closeIcon worked like a charm.
    Let me summarize what I did to help someone who is looking for this :)
    1) Downloaded the source code for dynamicTabTemplate
    2) Added and additional attribute closeTab to the template
    +<attribute>+
    +<attribute-name>closeTab</attribute-name>+
    +<attribute-class>java.lang.String</attribute-class>+
    +<required>+
    true
    +</required>+
    +</attribute>+
    2) edited the dynamicTabShell.jspx, closeIcon commanlink actionListener to be bound to "#{viewScope.tabContext.closeIcon}"
    3) Implemented the closeIcon method in TabContext
    +@Override+
    +public void closeIcon(ActionEvent actionEvent) {+
    CloseIconInterface bean = getBean();
    bean.closeIcon(actionEvent);
    +}+
    4) Generated the jar.
    5) Removed the oracle provided default dynamicTabTemplate jar and instead added my custom generated jar to the application
    6) Applied the new template
    7) Set all the attributes along with the new closeTab attribute. This would take the BackingBean name...example: <f:attribute name="closeTab" value="#{xxxScope.xxxBean}"/>
    8) Made xxxBean to implement CloseTabInterface
    9) Implemented the closeIcon method with custom code to confirm page close before removing the Tab.
    However like you said, i'll keep tab on future updates to the default tab template updates to not miss any bug fixes or enhancements.
    Thanks everyone who looked into this for me and Hope this helps someone else :)...Good luck !

  • How to populate Dynamic tab page details depending upon tab details.

    I have developed a dynamic tab, using two tables, Employees and Deaprtments. using the Department table i dynamically created tab based on Department Names, and in each tab want to
    display the relevent employees.
    I am able to even run the page when it opens it displays the first department tab as "Administrator" and also displays it's employees in that tab but when i click on other tab
    i get's error "
    java.lang.NullPointerException
    ADF_FACES-60097:For more information, please see the server's error log for an entry beginning with: ADF_FACES-60096:Server Exception during PPR, #1 "
    Can any one please tell me what to do. as i am am using af:iterator.
    Thanks.

    Below is the code :
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
    xmlns:dvt="http://xmlns.oracle.com/dss/adf/faces">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
    <af:document id="d1">
    <af:messages id="m1"/>
    <af:form id="f1">
    <af:panelStretchLayout topHeight="50px" id="psl1">
    <f:facet name="top"/>
    <f:facet name="center">
    <af:panelTabbed id="pt1">
    <af:iterator id="i1"
    value="#{bindings.Departments_Inst1.collectionModel}"
    var="deptrow">
    <af:showDetailItem text="#{deptrow.DepartmentName}" id="sdi1"
    disclosureListener="#{GraphBean.onTabDisclosure}">
    <f:attribute name="rowKey" value="#{deptrow.makeCurrent}"/>
    <af:table value="#{bindings.Employees_Inst.collectionModel}"
    var="row"
    rows="#{bindings.Employees_Inst.rangeSize}"
    emptyText="#{bindings.Employees_Inst.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.Employees_Inst.rangeSize}"
    rowBandingInterval="0" id="t1">
    <af:column sortProperty="EmployeeId" sortable="false"
    headerText="#{bindings.Employees_Inst.hints.EmployeeId.label}"
    id="c2">
    <af:inputText value="#{row.bindings.EmployeeId.inputValue}"
    label="#{bindings.Employees_Inst.hints.EmployeeId.label}"
    required="#{bindings.Employees_Inst.hints.EmployeeId.mandatory}"
    columns="#{bindings.Employees_Inst.hints.EmployeeId.displayWidth}"
    maximumLength="#{bindings.Employees_Inst.hints.EmployeeId.precision}"
    shortDesc="#{bindings.Employees_Inst.hints.EmployeeId.tooltip}"
    id="it1">
    <f:validator binding="#{row.bindings.EmployeeId.validator}"/>
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.Employees_Inst.hints.EmployeeId.format}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="FirstName" sortable="false"
    headerText="#{bindings.Employees_Inst.hints.FirstName.label}"
    id="c3">
    <af:inputText value="#{row.bindings.FirstName.inputValue}"
    label="#{bindings.Employees_Inst.hints.FirstName.label}"
    required="#{bindings.Employees_Inst.hints.FirstName.mandatory}"
    columns="#{bindings.Employees_Inst.hints.FirstName.displayWidth}"
    maximumLength="#{bindings.Employees_Inst.hints.FirstName.precision}"
    shortDesc="#{bindings.Employees_Inst.hints.FirstName.tooltip}"
    id="it7">
    <f:validator binding="#{row.bindings.FirstName.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="LastName" sortable="false"
    headerText="#{bindings.Employees_Inst.hints.LastName.label}"
    id="c5">
    <af:inputText value="#{row.bindings.LastName.inputValue}"
    label="#{bindings.Employees_Inst.hints.LastName.label}"
    required="#{bindings.Employees_Inst.hints.LastName.mandatory}"
    columns="#{bindings.Employees_Inst.hints.LastName.displayWidth}"
    maximumLength="#{bindings.Employees_Inst.hints.LastName.precision}"
    shortDesc="#{bindings.Employees_Inst.hints.LastName.tooltip}"
    id="it4">
    <f:validator binding="#{row.bindings.LastName.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="Email" sortable="false"
    headerText="#{bindings.Employees_Inst.hints.Email.label}"
    id="c1">
    <af:inputText value="#{row.bindings.Email.inputValue}"
    label="#{bindings.Employees_Inst.hints.Email.label}"
    required="#{bindings.Employees_Inst.hints.Email.mandatory}"
    columns="#{bindings.Employees_Inst.hints.Email.displayWidth}"
    maximumLength="#{bindings.Employees_Inst.hints.Email.precision}"
    shortDesc="#{bindings.Employees_Inst.hints.Email.tooltip}"
    id="it5">
    <f:validator binding="#{row.bindings.Email.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="Salary" sortable="false"
    headerText="#{bindings.Employees_Inst.hints.Salary.label}"
    id="c6">
    <af:inputText value="#{row.bindings.Salary.inputValue}"
    label="#{bindings.Employees_Inst.hints.Salary.label}"
    required="#{bindings.Employees_Inst.hints.Salary.mandatory}"
    columns="#{bindings.Employees_Inst.hints.Salary.displayWidth}"
    maximumLength="#{bindings.Employees_Inst.hints.Salary.precision}"
    shortDesc="#{bindings.Employees_Inst.hints.Salary.tooltip}"
    id="it3">
    <f:validator binding="#{row.bindings.Salary.validator}"/>
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.Employees_Inst.hints.Salary.format}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="ManagerId" sortable="false"
    headerText="#{bindings.Employees_Inst.hints.ManagerId.label}"
    id="c7">
    <af:inputText value="#{row.bindings.ManagerId.inputValue}"
    label="#{bindings.Employees_Inst.hints.ManagerId.label}"
    required="#{bindings.Employees_Inst.hints.ManagerId.mandatory}"
    columns="#{bindings.Employees_Inst.hints.ManagerId.displayWidth}"
    maximumLength="#{bindings.Employees_Inst.hints.ManagerId.precision}"
    shortDesc="#{bindings.Employees_Inst.hints.ManagerId.tooltip}"
    id="it2">
    <f:validator binding="#{row.bindings.ManagerId.validator}"/>
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.Employees_Inst.hints.ManagerId.format}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="DepartmentId" sortable="false"
    headerText="#{bindings.Employees_Inst.hints.DepartmentId.label}"
    id="c4">
    <af:inputText value="#{row.bindings.DepartmentId.inputValue}"
    label="#{bindings.Employees_Inst.hints.DepartmentId.label}"
    required="#{bindings.Employees_Inst.hints.DepartmentId.mandatory}"
    columns="#{bindings.Employees_Inst.hints.DepartmentId.displayWidth}"
    maximumLength="#{bindings.Employees_Inst.hints.DepartmentId.precision}"
    shortDesc="#{bindings.Employees_Inst.hints.DepartmentId.tooltip}"
    id="it6">
    <f:validator binding="#{row.bindings.DepartmentId.validator}"/>
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.Employees_Inst.hints.DepartmentId.format}"/>
    </af:inputText>
    </af:column>
    </af:table>
    </af:showDetailItem>
    </af:iterator>
    </af:panelTabbed>
    <!-- id="af_one_column_header_stretched" -->
    </f:facet>
    </af:panelStretchLayout>
    </af:form>
    </af:document>
    </f:view>
    </jsp:root>
    -- Below is the log :
    <LifecycleImpl> <_handleException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase INVOKE_APPLICATION 5
    javax.el.ELException: java.lang.NullPointerException
         at com.sun.el.parser.AstValue.invoke(Unknown Source)
         at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1300)
         at org.apache.myfaces.trinidad.component.UIXShowDetail.broadcast(UIXShowDetail.java:154)
         at oracle.adf.view.rich.component.rich.layout.RichShowDetailItem.broadcast(RichShowDetailItem.java:192)
         at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:902)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:313)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: java.lang.NullPointerException
         at view.GraphBean.onTabDisclosure(GraphBean.java:40)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         ... 46 more
    <RegistrationConfigurator> <handleError> ADF_FACES-60096:Server Exception during PPR, #1
    javax.el.ELException: java.lang.NullPointerException
         at com.sun.el.parser.AstValue.invoke(Unknown Source)
         at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1300)
         at org.apache.myfaces.trinidad.component.UIXShowDetail.broadcast(UIXShowDetail.java:154)
         at oracle.adf.view.rich.component.rich.layout.RichShowDetailItem.broadcast(RichShowDetailItem.java:192)
         at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:902)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:313)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: java.lang.NullPointerException
         at view.GraphBean.onTabDisclosure(GraphBean.java:40)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         ... 46 more

  • UIShell Dynamic tabs vs multiple Browser tabs ?

    Hi all,
    Can someone explain what is exactly benefits we have by using dynamic tabs, compare to multiple browser tabs ?
    Can anyone give an example of the problems encountered when using multiple browser tabs ?

    ADF does support multiple browser tabs but you must design your application carefully. See: http://one-size-doesnt-fit-all.blogspot.com.au/2011/10/pageflowscope-with-unbounded-task-flows.html
    As for the UIShell vs multi browser tabs, it's a UI design question. Once upon a time Mozilla Thunderbird used to open emails in separate windows (= multi browser tabs) and now uses inline tabs (= UI Shell). Which is the right way? Neither, depends on your user requirements.
    CM.

  • UI Dynamic Tabs Shell - Child Taskflow not rendering / instantiated

    Hi All,
    I have had this problem, ever since rebuilding my application using Jdev 11.1.2, although I am not convinced this is a problem with Jdveloper verison.
    Basically, I have developed the UI to open new task flows as dynamic tabs, making use of the tab context API as published. The application works perfectly and I can create new dynamic tabs and close them fine.
    Once I add a data control af:table to the child taskflow however and display this, the taskflow opens fine. The weird behavior begins, after I close this, using the standard UI removecurrent tab icon (the little x to the far right of the form), I cannot re-open another task flow. A new tab is created, however the taskflow within this (one being called) does not render or instantiate.
    If I remove the table from the page fragment, normal behavior resumes.
    I am at a complete loss as to why this is occurring.
    Any insights would be great.
    I would also like to point out... no errors are written to the log, even at the Finest level. The launch method also completes successfully. If I don't close, I am only able to open a maximum of 3 tabs before the render issue occurs.
    Cheers,
    Simo
    Edited by: Simo on Oct 30, 2011 10:38 PM

    Hi Frank,
    Well you were right, this was an implementation issue, but one being caused by some different behaviour in 11.1.2. I was actually setting the tab_id dynamically after the user has selected a row, via clicking a link. The ID was returning null hence the weird tab behaviour.
    Ironically, it was actually another recent note that you have posted http://blogs.oracle.com/jdevotnharvest/entry/jdeveloper_11_1_2_command that led me to the solution!!
    So thanks inadvertently !!
    Cheers,
    Simo

  • How to create Dynamic Tab in ADF, to achive multiple transaction at a time

    Hi,
    I want to create Dynamic tab in ADF, to achieve Multiple transaction at a time by opening new tab for a transaction.
    For Example: User can order multiple product at the same time by opening the order form in multiple TAB.
    Scenario:
    i) When user will click on addNewTab, new tab will be added.
    ii) If user Click on close btn on Tab, Tab will be closed (Transaction will be removed).
    iii) user can save all transaction( can save multiple product Order in different tab.)
    iv) when user select any product in form, Rename the Tab name as well.
    Need Help on this :(
    Thanks & Regards
    Pratap Rudra

    Hi Rudra,
    You can implement all your problem using Tab API .
    When you are closing the tab you can roll back transaction which you want.
    Tab API will give control over closing and opening tab.
    And also you can give tab name while opening the tab.
    Thanks
    Prateek

  • Dynamic tab not showing data

    JDev 11.1.1.4, JHS 11.1.1.3
    I have a table with a groupLink field that opens another group in a dynamic tab. When I put in some debug output I can see that the underlying view for the new dynamic tab is querying up the correct data, but when the tab opens up it says "No rows found". I have a couple of other groupLinks on other pages, one of which works, one of which gives the same result as this one. They are all setup according to the directions in the JHS developer's guide. Any insight anyone has would be appreciated.
    Here's the output from the JDev console (lines beginning with "Debug" are my output inserted into executeQuery method):
    <BreadcrumbManager> <processBreadcrumbs> Executing processBreadcrumbs for null
    <BreadcrumbManager> <loadBreadcrumbConfig> loadBreadcrumbConfig: pagePath is null
    <SetCurrentRowBean> <execute> Calling queryByKeyValue on app module with voUsage MyView1 and rowKeyValue 1028
    <JhsApplicationModuleImpl> <queryByKeyValueInternal> executing queryByKeyValueInternal(value=1028) for MyView1
    <JhsApplicationModuleImpl> <queryByKeyValueInternal> executing queryByKeyValueInternal(key=Id, value=1028) for MyView1
    Debug - execute query
    Debug - [SQL Statement]
    Debug - 1 rows found
    Debug - id of found row = 1028
    <JhsPageLifecycle> <validateRegion> Executing validateRegion for region com_pq_tracs_view_pageDefs_AccountsPageDef_WEB_INF_adfc_config_Accounts_xml_AccountsTaskFlow
    <JhsPageLifecycle> <refreshRegion> Executing refreshRegion for region com_pq_tracs_view_pageDefs_AccountsPageDef_WEB_INF_adfc_config_Accounts_xml_AccountsTaskFlow current page fragment: /AccountsTaskFlow/Accounts
    <JhsApplicationModuleImpl> <applyBindParams> Executing applyBindParams for Lookup1
    <JhsApplicationModuleImpl> <applyBindParams> ViewObject Lookup1: bind parameter values have not changed, NO Requery performed
    <JhsApplicationModuleImpl> <applyBindParams> Executing applyBindParams for Lookup2
    <JhsApplicationModuleImpl> <applyBindParams> ViewObject Lookup2: bind parameter values have not changed, NO Requery performed
    <JhsApplicationModuleImpl> <applyBindParams> Executing applyBindParams for Lookup3
    <JhsApplicationModuleImpl> <applyBindParams> No query Bind parameters passed into applyBindParams for Lookup3, do nothing
    <JhsApplicationModuleImpl> <applyBindParams> Executing applyBindParams for Lookup4
    <JhsApplicationModuleImpl> <applyBindParams> ViewObject Lookup4: bind parameter values have not changed, NO Requery performed
    <BreadcrumbManager> <processBreadcrumbs> Executing processBreadcrumbs for /AccountsTaskFlow/Accounts
    <BreadcrumbStack> <add> Adding breadcrumb to stack: "null" (/AccountsTaskFlow/Accounts)
    <BreadcrumbManager> <processBreadcrumbs> Executing processBreadcrumbs for /UIShell

    Steve,
    I think you are hitting an issue we solved in the upcoming release.
    Can you try replacing the GROUP_HAS_ROW and PARENT_GROUP_HAS_ROW macros in common.vm with the code below?
    #macro (GROUP_HAS_ROW)
    ## we need to get current row through viewObject instead of directly from iter binding
    ## otherwise a full-table query will still be performed when auto query switched off!
    ## but we only do this when auto-query switched off, otherwise in form alyout, the
    ## switcher element shows "no rows"!
    #if ($JHS.current.group.databound) #if ($JHS.current.group.autoQuery)#ITERATOR().currentRow!=null #else(#ITERATOR().viewObject!=null and #ITERATOR().viewObject.currentRow!=null)#end#else(true)#end#end
    #macro (PARENT_GROUP_HAS_ROW)
    #if ($JHS.current.group.databound && $JHS.page.group!=$JHS.current.group)#if (${JHS.current.group.parentGroup} && ${JHS.current.group.parentGroup.databound})#if ($JHS.current.group.parentGroup.autoQuery) #PARENT_ITERATOR().currentRow!=null #else (#PARENT_ITERATOR().viewObject!=null and #PARENT_ITERATOR().viewObject.currentRow!=null)#end#else true#end#else(true)#end#end
    Steven Davelaar,
    Jheadstart team.

  • Dynamic tabs failed to load

    Hi
    i am using dynamic tabs in my application ......... i have 3 links which will be open new dynamic tabs on click..... two are working fine ... but the third one when i click on it ............. the dynamic tab gets open but it failed to load to inside component ... i have tried to create task-flow-defination.xml file and put one fragment in it..... but it does not load any ..... even on that link i have tried with other taskflow which is working fine !!
    Please help!
    my jdev version is :- Studio Edition Version 11.1.1.2.0
    Thanks
    Sudeep
    Edited by: SKD on Sep 20, 2011 1:15 PM

    Hi,
    hard to say. I assume you you are talking about dynamic tabs in UI Shell -correct ? Did you try with a recent built (e.g. 11.1.14 or 11.1.1.5) ?
    Frank

  • Dynamic Tabs in iWeb

    I need help with a personal site that would be my Safari start page. I would like to have layers of HTML snippets that when clicked, would change the layer of the page to make that HTML snippet the top layer, so like dynamic tabs that would not change the page URL, but could change content. Any way to do this?
    Thanks in advance!
    -Mike

    Hi Mike!
    Another option (only need to copy/paste some HTML code) would be to create a series of text links to the HTML pages you desire (or they could be small iFrames if you want buttons w/rollovers).
    Create an HTML snippet window (i.e. an iFrame) with the appropriate window size, scrolling, name, etc. attributes/values. Let's say you name your iFrame "content".
    The overall idea is that your links load other html content into the "content" iFrame. You only need one iFrame for this scenario and it is simple to set-up and maintain.
    Publish your web site as per usual (to a folder or Mobile Me).
    Next, in a text editor, open up the HTML page with the links and iFrame. Look for the links you created in iWeb (using the Find command will make it easier); "Latest News" is used in this example for the link.
    The format will look something like:
    <a href="firstpagelink.html" title="firstPageLink">Latest News</a>
    Next add the following code to this anchor tag: target="content" (this is the name you used for your iFrame).
    So now the code on your page should look like:
    <a href="firstpagelink.html" title="firstPageLink" target="content"> Latest News</a>
    You would do this with each link, just copy the first target="content" and then paste it in to the other anchor tags.
    Once you have set-up your page in iWeb, this post-publish pasting operation goes very quickly.
    =============
    Drawback: everytime you re-publish the page you need to go through this drill. However it is probably the content in the iFrame that will change the most often. Thoughtful planning/design of the main/link page will hopefully minimize the frequency of changes needed there.
    Or use iFrames for your links where the code will not get overwritten - but now we're getting a little trickier because you will have to communicate through the parent document to enable all the "link" iFrames to talk to the "content" iFrame.

  • Dynamic tabs in af:panelTabbed

    I have to implement dynamic tabs like in web browsers. New tabs can be opened
    by clicking links on the other tabs. User can also close any tab but the first one.
    Is there any example available for this or similar functionality?
    What should I use to iterate through the tabs - af:forEach or af:iterator?
    If I use forEach can I close any tab?
    Thank you!

    Hi,
    have a look at the dynamicTabShell template (aka UI SHell), which does exactly what you want
    http://www.oracle.com/technetwork/testcontent/uishell-093084.html
    Frank

  • Error When Dismissing Many Dynamic Tabs

    Hi All,
    In the name of expanding knowledge, I bring another question.  We're using JDev/JHS 11.1.1.4 and our project is a migration from JHS 11.1.1.3.  This question relates to how JHeadStart deals with the open and close events associated with dynamic tabs.
    Our use case is that there are many top-level groups listed in a menu that can open as their own dynamic tab.  We support having multiple tabs open at once.  We're running into an issue where after closing multiple tabs quickly, we receive an error like the following:
    <LifecycleImpl> <_handleException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase APPLY_REQUEST_VALUES 2
    java.lang.IllegalArgumentException: fromIndex(0) > toIndex(-1)
        at java.util.SubList.<init>(AbstractList.java:604)
        at java.util.RandomAccessSubList.<init>(AbstractList.java:758)
        at java.util.AbstractList.subList(AbstractList.java:468)
        at oracle.jheadstart.view.dyntab.DynTabTracker.getActiveTabList(DynTabTracker.java:158)
        at oracle.jheadstart.view.dyntab.DynTabContext.getMatchingTab(DynTabContext.java:354)
        at oracle.jheadstart.view.dyntab.DynTabContext.addOrSelectTab(DynTabContext.java:169)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.launchActivity(DynamicRegionManager.java:468)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.launchDynamicTabIfNeeded(DynamicRegionManager.java:505)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.setCurrentTaskFlowName(DynamicRegionManager.java:225)
        at oracle.jheadstart.controller.jsf.application.JhsNavigationHandlerImpl.handleNavigation(JhsNavigationHandlerImpl.java:142)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
        at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
        at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)
        at org.apache.myfaces.trinidad.component.UIXTree.broadcast(UIXTree.java:232)
        at oracle.adf.view.rich.component.rich.data.RichTree.broadcast(RichTree.java:248)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:879)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:356)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
        at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
        at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.jheadstart.controller.jsf.AuthenticationFilter.doFilter(AuthenticationFilter.java:282)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    <RegistrationConfigurator> <handleError> ADF_FACES-60096:Server Exception during PPR, #1
    java.lang.IllegalArgumentException: fromIndex(0) > toIndex(-1)
        at java.util.SubList.<init>(AbstractList.java:604)
        at java.util.RandomAccessSubList.<init>(AbstractList.java:758)
        at java.util.AbstractList.subList(AbstractList.java:468)
        at oracle.jheadstart.view.dyntab.DynTabTracker.getActiveTabList(DynTabTracker.java:158)
        at oracle.jheadstart.view.dyntab.DynTabContext.getMatchingTab(DynTabContext.java:354)
        at oracle.jheadstart.view.dyntab.DynTabContext.addOrSelectTab(DynTabContext.java:169)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.launchActivity(DynamicRegionManager.java:468)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.launchDynamicTabIfNeeded(DynamicRegionManager.java:505)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.setCurrentTaskFlowName(DynamicRegionManager.java:225)
        at oracle.jheadstart.controller.jsf.application.JhsNavigationHandlerImpl.handleNavigation(JhsNavigationHandlerImpl.java:142)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
        at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
        at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)
        at org.apache.myfaces.trinidad.component.UIXTree.broadcast(UIXTree.java:232)
        at oracle.adf.view.rich.component.rich.data.RichTree.broadcast(RichTree.java:248)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:879)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:356)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
        at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
        at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.jheadstart.controller.jsf.AuthenticationFilter.doFilter(AuthenticationFilter.java:282)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    Based on what I've seen, the number of active tabs gets decremented before the tab is actually closed.  This sometimes requires closing a tab more than once (which decrements the number of active tabs to less than 0).  Then, when trying to open a new tab, the number of active tabs is passed as an argument to the subList mentioned in the above stack.  If the number is less than 0, the above exception occurs.
    The following is a variation on the above, the only difference is if you dismiss all but one tab, then attempt to open a new one, the following error is thrown.
    <LifecycleImpl> <_handleException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase APPLY_REQUEST_VALUES 2
    java.lang.IllegalStateException: TabList state is corrupted!
        at oracle.jheadstart.view.dyntab.DynTabContext.getFirstInactiveTabOrThrow(DynTabContext.java:252)
        at oracle.jheadstart.view.dyntab.DynTabContext.addTab(DynTabContext.java:221)
        at oracle.jheadstart.view.dyntab.DynTabContext.addOrSelectTab(DynTabContext.java:180)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.launchActivity(DynamicRegionManager.java:468)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.launchDynamicTabIfNeeded(DynamicRegionManager.java:505)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.setCurrentTaskFlowName(DynamicRegionManager.java:225)
        at oracle.jheadstart.controller.jsf.application.JhsNavigationHandlerImpl.handleNavigation(JhsNavigationHandlerImpl.java:142)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
        at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
        at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)
        at org.apache.myfaces.trinidad.component.UIXTree.broadcast(UIXTree.java:232)
        at oracle.adf.view.rich.component.rich.data.RichTree.broadcast(RichTree.java:248)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:879)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:356)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
        at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
        at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.jheadstart.controller.jsf.AuthenticationFilter.doFilter(AuthenticationFilter.java:282)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    <RegistrationConfigurator> <handleError> ADF_FACES-60096:Server Exception during PPR, #1
    java.lang.IllegalStateException: TabList state is corrupted!
        at oracle.jheadstart.view.dyntab.DynTabContext.getFirstInactiveTabOrThrow(DynTabContext.java:252)
        at oracle.jheadstart.view.dyntab.DynTabContext.addTab(DynTabContext.java:221)
        at oracle.jheadstart.view.dyntab.DynTabContext.addOrSelectTab(DynTabContext.java:180)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.launchActivity(DynamicRegionManager.java:468)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.launchDynamicTabIfNeeded(DynamicRegionManager.java:505)
        at oracle.jheadstart.controller.jsf.bean.DynamicRegionManager.setCurrentTaskFlowName(DynamicRegionManager.java:225)
        at oracle.jheadstart.controller.jsf.application.JhsNavigationHandlerImpl.handleNavigation(JhsNavigationHandlerImpl.java:142)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
        at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
        at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)
        at org.apache.myfaces.trinidad.component.UIXTree.broadcast(UIXTree.java:232)
        at oracle.adf.view.rich.component.rich.data.RichTree.broadcast(RichTree.java:248)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:879)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:356)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
        at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
        at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.jheadstart.controller.jsf.AuthenticationFilter.doFilter(AuthenticationFilter.java:282)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    There's not much info on this out there and it seems to pertain to internal libraries so I thought I'd ask for guidance here.  My first thought was to override the method that passes the number of active tabs to catch if the value is less than zero, but that doesn't account for the second instance.  Has anyone run into this before?
    Many thanks,

    Hi Steven,
    I can only take credit for your suspicion :)
    Your concern was raised on our end as well.  The tab unique identifier is cleared in the base class from which our override stems...
        tab.setTaskflowId(getEmptyTaskFlowId());
        tab.setParameters(null);
        tab.setUniqueIdentifier(null);
        tab.setTitle("");
        tab.setActive(false);
        tab.setActivated(false);
    From my observations, it seemed that the Tab Unique Identifier inherited its value from the group name if one was not present (which is why I felt the fix worked).  Is this not so?  In either case, we saw that the error was preceded by null tabs being passed into the method, which would decrement numActive but leave the same tabs open in the UI.  Hence when finally closing all the tabs, index would be an undesirable value like -1, -2, etc..
    Thanks,

Maybe you are looking for