BUG: ADF FACES 10.1.3 04: Crash w/nested UIXCollection & persistent session

Use of a UIXCollection (af:table or af:iterator) nested within another UIXCollection causes a crash during processDecodes if the session state has been serialized and deserialized. The problem is that when the outer iterator restores its stamp state during iteration (in postRowDataChange), it ends up calling __setMyStampState on the inner iterator with an InternalState object that has been deserialized, and whose (transient) prevVarStatus member is therefore null (and not NULL, as it is normally initialized). At the end of iteration on the inner iterator, postRowDataChange attempts to restore the original value of the varStatus variable. Since prevVarValue != NULL, it thinks it should put the value back, but if there is no varStatus attribute on the iterator, iState._varStatus is null, and the assertion in _setELVar is triggered. As a workaround, setting a non-empty varStatus attribute on the inner iterator avoids the crash.
java.lang.AssertionError
     at oracle.adf.view.faces.component.UIXCollection._setELVar(UIXCollection.java:1089)
     at oracle.adf.view.faces.component.UIXCollection.postRowDataChange(UIXCollection.java:654)
     at oracle.adf.view.faces.component.UIXCollection.setRowIndex(UIXCollection.java:379)
     at oracle.adf.view.faces.component.UIXIterator$Runner.run(UIXIterator.java:230)
     at oracle.adf.view.faces.component.UIXIterator.processFacetsAndChildren(UIXIterator.java:193)
     at oracle.adf.view.faces.component.UIXCollection.decodeChildrenImpl(UIXCollection.java:141)
     at oracle.adf.view.faces.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:803)
     at oracle.adf.view.faces.component.UIXCollection.processDecodes(UIXCollection.java:136)
     at oracle.adf.view.faces.component.ChildLoop$Decode.process(ChildLoop.java:75)
     at oracle.adf.view.faces.component.ChildLoop.runAlways(ChildLoop.java:39)
     at oracle.adf.view.faces.component.ChildLoop.runAlways(ChildLoop.java:30)
     at oracle.adf.view.faces.component.UIXColumn.processDecodes(UIXColumn.java:54)
     at oracle.adf.view.faces.component.UIXCollection.processComponent(UIXCollection.java:802)
     at oracle.adf.view.faces.component.TableUtils$3.process(TableUtils.java:256)
     at oracle.adf.view.faces.component.ChildLoop.runAlways(ChildLoop.java:39)
     at oracle.adf.view.faces.component.ChildLoop.runAlways(ChildLoop.java:30)
     at oracle.adf.view.faces.component.TableUtils.__processStampedChildren(TableUtils.java:252)
     at oracle.adf.view.faces.component.UIXTable._processStamps(UIXTable.java:497)
     at oracle.adf.view.faces.component.UIXTable.processFacetsAndChildren(UIXTable.java:376)
     at oracle.adf.view.faces.component.UIXCollection.decodeChildrenImpl(UIXCollection.java:141)
     at oracle.adf.view.faces.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:803)
     at oracle.adf.view.faces.component.UIXCollection.processDecodes(UIXCollection.java:136)
     at oracle.adf.view.faces.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:818)
     at oracle.adf.view.faces.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:803)
     at oracle.adf.view.faces.component.UIXComponentBase.processDecodes(UIXComponentBase.java:673)
     at oracle.adf.view.faces.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:818)
     at oracle.adf.view.faces.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:803)
     at oracle.adf.view.faces.component.UIXComponentBase.processDecodes(UIXComponentBase.java:673)
     at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:880)
....

James, what Venkat and Prashant are trying to do is something like this...
1. If I connect to the DB using scott/tiger then in the preLogin method of the Toplink Session Listener class, the proxy user will connect using something like admin/welcome1 and in the database audit view, the name that shows up SHOULD BE that of admin and NOT of scott. This is called proxy authentication if it works fine.
We developed the above scenario but in the audit logs, we still see scott instead of admin as the user who connected.
2. This feature is available in the DB but our objective is to use it through TopLink
Also see Toplink Proxy Authentication Not Working
I hope I was able to explain the scenario clearly.
Any help will be appreciated
Regards,
Amit

Similar Messages

  • [BUG | ADF Faces] af:selectManyShuttle description doesn't work in af:page

    I am using:
    - JDeveloper 10.1.3.0.4
    - ADF Faces 10.1.3.0.4
    I have a selectManyShuttle component on my page (mapped to a managed bean) and nested inside a panelPage component, like this:
    <f:view>
      <afh:html>
        <afh:head title="Shuttle Test">
          <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
        </afh:head>
        <afh:body>
          <af:form>
            <af:panelPage title="Shuttle Test">
              <f:facet name="messages">
                <af:messages/>
              </f:facet>
              <af:selectManyShuttle leadingHeader="Available"
                                    trailingHeader="Selected"
                                    leadingDescShown="true"
                                    trailingDescShown="true"
                                    value="#{testShuttle.selectedValues}">
                <f:selectItems value="#{testShuttle.allItems}"/>
              </af:selectManyShuttle>
            </af:panelPage>
          </af:form>
        </afh:body>
      </afh:html>
    </f:view>The managed bean is based on the ShuttlePageBackingBeanBase class described in the ADF Developer's Guide: How to Create a Shuttle.
    This works fine - as you select each item in the list, the description field is updated with the correct value. If, however, I replace the af:panelPage component with an af:page component, the descriptions do not show up.
    I think this must be a bug because the main difference between the two components is the menu structure. In all other ways, they should function in the same manner.

    I have filed a service request on MetaLink for this problem and they have created a bug entry.
    The bug is 5840131 - "LONGDESC" FROM SELECTITEM OF SELECTMANYSHUTTLE IN AN AF:PAGE IS NOT DISPLAYED.

  • Bug ADF Faces: af:table

    Hello,
    I found a new bug while working with ADF Faces. If you have a form on a page as well as a table and one of the field in the form is flagged required, then the table won't be sortable unless a value is put in the required field. The same holds true for row navigation.
    I already thought about flagging the table as immediate. That fix the row navigation but not the sorting.
    Regards,
    Simon Lessard

    Hello Frank,
    Thank you for the reply. Here's the complete project.
    It's only a little example to show ADF Faces components without any specific model technology. Therefore, the project is a single project with any well defined separation. As you can see, the table is based on a collection completely separated from the form.
    Note: I agree that sorting should fail with a required field if the table is not immediate. However, if it's I see no reason why it wouldn't work since the table and the form are not linked.
    Anyway, here's the case.
    1. A "shop" managed bean:
    import java.util.ArrayList;
    import java.util.List;
    public class ShopBean {
        private Product newProduct;
        private List products;
        public ShopBean() {
            products = new ArrayList();
            newProduct = new Product();
        public String addNewProduct() {
            products.add(newProduct);
            newProduct = new Product();
            return null;
        public Product getNewProduct() {
            return newProduct;
        public void setNewProduct(Product newProduct) {
            this.newProduct = newProduct;
        public List getProducts() {
            // I also tried to return a CollectionModel here, but it didn't change anything
            return products;
        public void setProducts(List products) {
            this.products = products;
    }2. A product class:
    public class Product {
        private String name;
        private String description;
        private Double price;
        public Product() {
        public String getName() {
            return name;
        public void setName(String name) {
            this.name = name;
        public String getDescription() {
            return description;
        public void setDescription(String description) {
            this.description = description;
        public Double getPrice() {
            return price;
        public void setPrice(Double price) {
            this.price = price;
    }3. A single page:
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:af="http://xmlns.oracle.com/adf/faces"
              xmlns:afh="http://xmlns.oracle.com/adf/faces/html">
      <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
                  doctype-system="http://www.w3.org/TR/html4/loose.dtd"
                  doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
      <jsp:directive.page contentType="text/html;charset=windows-1252"/>
      <f:view>
        <f:loadBundle basename="com.dmr.cours.jsf.resources.messages" var="msg"/>
        <afh:html>
          <afh:head title="#{msg['page.title']}">
            <meta http-equiv="Content-Type"
                  content="text/html; charset=windows-1252"/>
          </afh:head>
          <afh:body>
            <h:form>
              <af:panelPage title="#{msg['title.page']}">
                <f:facet name="menu1">
                  <af:menuTabs>
                    <af:commandMenuItem text="#{msg['menu1.application.label']}"
                                        selected="true"/>
                  </af:menuTabs>
                </f:facet>
                <f:facet name="menu2">
                  <af:menuBar>
                    <af:commandMenuItem text="#{msg['menu2.welcome.label']}"/>
                    <af:commandMenuItem text="#{msg['menu2.products.label']}"
                                        selected="true"/>
                  </af:menuBar>
                </f:facet>
                <f:facet name="branding">
    <- Using SRDemo branding because no one sane want to
    see a branding made by me, using no branding works as well ->
                  <af:objectImage source="/images/SRBranding.gif"/>
                </f:facet>
                <af:panelHeader text="#{msg['title.new']}">
                  <af:panelForm>
                    <f:facet name="footer">
                      <af:panelButtonBar>
                        <af:commandButton text="#{msg['action.add']}"
                                          action="#{shop.addNewProduct}"/>
                      </af:panelButtonBar>
                    </f:facet>
    <- Removing the required attribute here makes sorting
    and row navigation functional again. ->
                    <af:inputText label="#{msg['product.name']}"
                                  value="#{shop.newProduct.name}" required="true"/>
                    <af:inputText label="#{msg['product.price']}"
                                  value="#{shop.newProduct.price}">
                      <f:convertNumber minFractionDigits="2"
                                       maxFractionDigits="2"/>
                      <f:validateDoubleRange minimum="0"/>
                    </af:inputText>
                    <af:inputText label="#{msg['product.description']}"
                                  value="#{shop.newProduct.description}" rows="5"/>
                  </af:panelForm>
                </af:panelHeader>
                <af:panelHeader text="#{msg['title.list']}">
                  <af:table value="#{shop.products}"
                            var="product" rows="5" banding="row"
                            bandingInterval="1" emptyText="#{msg['list.empty']}"
                            immediate="true">
                    <af:column sortProperty="name" sortable="true"
                               headerText="#{msg['product.name']}">
                      <af:outputText value="#{product.name}"/>
                    </af:column>
                    <af:column sortable="false"
                               headerText="#{msg['product.description']}">
                      <af:outputText value="#{product.description}"/>
                    </af:column>
                    <af:column sortProperty="price" sortable="true"
                               headerText="#{msg['product.price']}">
                      <af:outputText value="#{product.price}">
                        <af:convertNumber type="currency"/>
                      </af:outputText>
                    </af:column>
                  </af:table>
                </af:panelHeader>
              </af:panelPage>
            </h:form>
          </afh:body>
        </afh:html>
      </f:view>
    </jsp:root>4. A property files
    page.title = Test shop page
    menu1.application.label = MyShop.com
    menu2.products.label = Product management
    menu2.welcome.label = Home
    title.page = Product management
    title.new = New product's data
    title.list = Existing product list
    action.add = Add to product list
    product.name = Product's name
    product.price = Price
    product.description = Description
    list.empty = No product yet.5. The /images/SRBranding.gif file.
    EDIT: Forgot to add the required field and "fixed" the comment that the forum was erasing. =P
    EDIT: Added a note.
    Message was edited by:
    Simon Lessard

  • JDeveloperStudio 10.3 -- ADF  Faces -- Too many components causes crash

    My page has finally gotten so complex that the stack overflows and the application just aborts. I can remove a couple of components and the page works fine. It doesn't seem to matter which components I remove; when I navigate to the page the following appears in my Embedded OC4J Server log.
    Debugger connection to debuggee process has been lost.
    Process exited.
    Debugger disconnected from local process.
    The MyPagejspx.java file is over 500K and the class file is about 110K. If I remove some components and get the total MyPagejspx.java file under 500K then the page works again.
    The page includes a lot of MapViewer navigation controls and a number of tables that are used to display and edit attribute data. Most of these tables include nested tables inside of their detailStamps. Rows in a table of streets have tables of sites. This is where things start to fail.
    Sometimes (but not always) I get a message that tells me that could not find the StackOverflowError class so I have tried adding a -Xss1024k option to my Java options but this didn't help; neither did -Xss2048k.
    I am highly confident that the problem is not caused by the code itself as I can remove any panelGroup or panelForm set on the page and it works. I put any back and it fails. It is just too many components. Everything compiles fine but JDeveloper just disconnects from the application when the page is opened.
    So ... any ideas of what I might do to continue developing this page or do I have to break my application into more pages (not what the users want).
    Thanks, Mark

    This was easy enough to do without bothering with any database or tables. I created a bottom level include jspx as follows:
    Include-0.jspf
    <af:panelBox text="Bottom include file has 3 panelForms" >
      <af:panelHorizontal>
        <af:panelForm rows="1" maxColumns="1">
          <af:inputText label="Lorem ipsum" rows="3" wrap="true" readOnly="true"
                        value="Proin orci. Suspendisse cursus lobortis magna. Vivamus id tortor. Phasellus consectetuer, quam sit amet laoreet ultrices, tortor leo aliquet turpis, ut elementum nisi eros et nisl."    
                        />
          <af:inputText label="Lorem ipsum" rows="3" wrap="true" readOnly="true"
                        value="Proin orci. Suspendisse cursus lobortis magna. Vivamus id tortor. Phasellus consectetuer, quam sit amet laoreet ultrices, tortor leo aliquet turpis, ut elementum nisi eros et nisl."    
                        />
          <af:inputText label="Lorem ipsum" rows="3" wrap="true" readOnly="true"
                        value="Proin orci. Suspendisse cursus lobortis magna. Vivamus id tortor. Phasellus consectetuer, quam sit amet laoreet ultrices, tortor leo aliquet turpis, ut elementum nisi eros et nisl."    
                        />
        </af:panelForm>
        <af:panelForm rows="1" maxColumns="1">
          <af:inputText label="Lorem ipsum" rows="3" wrap="true" readOnly="true"
                        value="Proin orci. Suspendisse cursus lobortis magna. Vivamus id tortor. Phasellus consectetuer, quam sit amet laoreet ultrices, tortor leo aliquet turpis, ut elementum nisi eros et nisl."    
                        />
          <af:inputText label="Lorem ipsum" rows="3" wrap="true" readOnly="true"
                        value="Proin orci. Suspendisse cursus lobortis magna. Vivamus id tortor. Phasellus consectetuer, quam sit amet laoreet ultrices, tortor leo aliquet turpis, ut elementum nisi eros et nisl."    
                        />
          <af:inputText label="Lorem ipsum" rows="3" wrap="true" readOnly="true"
                        value="Proin orci. Suspendisse cursus lobortis magna. Vivamus id tortor. Phasellus consectetuer, quam sit amet laoreet ultrices, tortor leo aliquet turpis, ut elementum nisi eros et nisl."    
                        />
        </af:panelForm>
        <af:panelForm rows="1" maxColumns="1">
          <af:inputText label="Lorem ipsum" rows="3" wrap="true" readOnly="true"
                        value="Proin orci. Suspendisse cursus lobortis magna. Vivamus id tortor. Phasellus consectetuer, quam sit amet laoreet ultrices, tortor leo aliquet turpis, ut elementum nisi eros et nisl."    
                        />
          <af:inputText label="Lorem ipsum" rows="3" wrap="true" readOnly="true"
                        value="Proin orci. Suspendisse cursus lobortis magna. Vivamus id tortor. Phasellus consectetuer, quam sit amet laoreet ultrices, tortor leo aliquet turpis, ut elementum nisi eros et nisl."    
                        />
          <af:inputText label="Lorem ipsum" rows="3" wrap="true" readOnly="true"
                        value="Proin orci. Suspendisse cursus lobortis magna. Vivamus id tortor. Phasellus consectetuer, quam sit amet laoreet ultrices, tortor leo aliquet turpis, ut elementum nisi eros et nisl."    
                        />
        </af:panelForm>
      </af:panelHorizontal>
    </af:panelBox>I included this in another jspf file
    Include-1.jspf
    <af:panelBox text="Include-1.jspf includes Include-0.jspf 5 times.">
      <jsp:directive.include file="/Include-0.jspf" />
      <jsp:directive.include file="/Include-0.jspf" />
      <jsp:directive.include file="/Include-0.jspf" />
      <jsp:directive.include file="/Include-0.jspf" />
      <jsp:directive.include file="/Include-0.jspf" />
    </af:panelBox>I include that in another jspf
    Include-2.jspf
    <af:panelBox text="Include-2.jspf includes Include-1.jspf 5 times.">
      <jsp:directive.include file="/Include-1.jspf" />
      <jsp:directive.include file="/Include-1.jspf" />
      <jsp:directive.include file="/Include-1.jspf" />
      <jsp:directive.include file="/Include-1.jspf" />
      <jsp:directive.include file="/Include-1.jspf" />
    </af:panelBox>And that was references by my jspx page.
    TooManyComponents.jspx
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
              xmlns:af="http://xmlns.oracle.com/adf/faces" xmlns:afh="http://xmlns.oracle.com/adf/faces/html">
      <jsp:text>
        <![CDATA[ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> ]]>
      </jsp:text>
      <jsp:directive.page contentType="text/html;charset=windows-1252"/>
      <f:view>
        <afh:script source="/jscript/view_tools.js"/>
        <af:document rendered="false">
          <af:form id="notloggedin">
            <af:panelPage title="This never happens but it mirrors my problem layour">
              <jsp:directive.include file="header.jspf"/>
              <af:commandMenuItem text="You are not logged in.  Please click this message to be re-directed to the Login Page" action="login"/>
            </af:panelPage>
          </af:form>
        </af:document>
        <af:document rendered="true">
          <af:form id="loggedin">
            <af:panelPage title="Too much of a good thing?">
              <jsp:directive.include file="/header.jspf"/>
              <jsp:directive.include file="/Include-2.jspf" />
            </af:panelPage>
          </af:form>
        </af:document>
      </f:view>
    </jsp:root>This particular setup yeilded me the following error
    Fatal error: Cannot find class java/lang/StackOverflowError
    Process exited.
    Debugger disconnected from local process.If I put a second <jsp:directive.include file="/Include-2.jspf" /> in my jspx file I get the following compile time error.
    Error: code segment of method _jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) too largeIf I remove one of the jsp:include directives from my Include-1.jspf so that it reads as follows:
    <af:panelBox text="Include-1.jspf includes Include-0.jspf 4 times.">
      <jsp:directive.include file="/Include-0.jspf" />
      <jsp:directive.include file="/Include-0.jspf" />
      <jsp:directive.include file="/Include-0.jspf" />
      <jsp:directive.include file="/Include-0.jspf" />
    </af:panelBox>The application works.
    I took all the JDeveloperStudio defaults for creating my project. I can send you a War file if you let me know where to send it.
    Thanks, Mark

  • Problem with ADF Faces; Bean (session scope) keeps Data after Session ends

    Hi,
    I have a project, which was transferred from an myFaces-project to an ADF Faces-project. Since i´am working with the ADF Faces the data in my beans (which are all in session-scope) won´t vanish after a logout.
    1) I have a method in one bean, which clears the user data (name and passwd), for example, but after a logout (redirecting to the login-page) I just have to push the loginbutton to get in the app. as the last user logged in. The bean is cleared, but where does the data come from. When the app was working with myFaces, this did not happen, the inputText and the inputHidden were empty.
    2) I have a af:table, which displays max ten lines. If the last user watched the elements 21 to 30 in that table, the next user who watches the table gets the same elements shown and not the elements 1 to 10. That shouldn´t happen in a different session.
    3) I have some listboxes in one page, where a user can make some decisions. If i logout and in again, i can see the decisions last made in these listboxes.
    All that happens with beans in session scope!
    Thanks for the replies (i hope) and excuse my bad english,
    Santiago

    Hi
    If this is the case , you can explicitly make all ur session data objects null.

  • ADF FACES: processValidators and ValidatorException bug

    Using EA15.
    Unless I'm misunderstanding how UIComponent.processValidators works, you should just throw a ValidatorException to signal a problem.
    However, in trying just that, the ADF FACES framework is treating the exception as a SEVERE error instead of treating it as a validation failure.
    I have constructed a simple extension to PanelPage so I can invoke my own validation routine, like this:
    * Internal class to provide a validation hook for our forms
    public static class ValidatingCorePanelPage extends CorePanelPage {
    public void processValidators(FacesContext ctx) {
    super.processValidators(ctx);
    // Dispatch the validation to the current form
    FormBean.dispatchFormValidation(ctx);
    dispatchFormValidation will invoke a validation method on the proper backing bean, in which code similar to the following is used:
    String spokeWith = (String)getCompSpokeWith().getLocalValue();
    String callStatus = (String)getCompFinalCallStatus().getLocalValue();
    System.out.println("SPOKEWITH='" + spokeWith + "'");
    System.out.println("CALLSTATUS='" + callStatus + "'");
    // We require a value in "spoke with" if the call status is anything other than
    // "left message"
    boolean isMessageStatus = !StringUtils.isEmpty(callStatus) && StringUtils.contains(callStatus.toLowerCase(),"message");
    if( !isMessageStatus && StringUtils.isEmpty(spokeWith)) {
    // register the error message
    FacesMessage fmsg =
    new FacesMessage(FacesMessage.SEVERITY_ERROR, "Incomplete Data",
    "'Spoke with' may not be empty");
    // Add the message to the specific
    // component that is missing data.
    getFacesContext().addMessage("spokewith", fmsg);
    throw new ValidatorException(fmsg);
    However, when this executes (and results in a ValidatorException), I get the following output in my log file:
    05/05/20 15:51:44 <<<< PHASE: RESTORE_VIEW 1
    05/05/20 15:51:44 >>>> PHASE: APPLY_REQUEST_VALUES 2
    05/05/20 15:51:44 <<<< PHASE: APPLY_REQUEST_VALUES 2
    05/05/20 15:51:44 >>>> PHASE: PROCESS_VALIDATIONS 3
    May 20, 2005 3:51:44 PM com.sun.faces.lifecycle.ProcessValidationsPhase execute
    SEVERE: Incomplete Data
    javax.faces.validator.ValidatorException: Incomplete Data
         at com.fhm.mwb.ui.backing.OfficeCallForm.validateForm(OfficeCallForm.java:256)
         at com.fhm.mwb.ui.backing.FormBean.dispatchFormValidation(FormBean.java:588)
         at com.fhm.mwb.ui.SharedComponents$ValidatingCorePanelPage.processValidators(SharedComponents.java:337)
         at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java)
    And the lifecycle stops dead!
    How is this supposed to work? How are you supposed to report a validation exception from within processValidators?
    This seems to be a bug in ADF FACES.

    <af:forEach> does not support <f:> or <h:> tags; this unfortunate restriction is documented in the <af:forEach> release notes. It's not a bug - it's a fact of life until we can get our technique integrated into the core JSF or JSP specifications.

  • ADF Faces 10.1.3.0.4 - two-digit-year-start has no effect?

    Hi all,
    I have problem with entering date with an af:selectInputDate control:
    the user enters the date and on an onblur event, the adf field
    automatically reformats it:
    10.10.10 ->10.10.2010
    10.10.60 ->10.10.1960
    The user (customer) wants 2 things to change:
    1. if the given two digit year <= actual year (06):
    10.10.06 ->10.10.2006
    otherwise
    10.10.07 ->10.10.1907
    2. by entering a date, adf have to be accept the date without dots too:
    101006 ->10.10.2006
    1.: I tried to set theconfig param: <two-digit-year-start>2006</two-digit-year-start> (or with an EL expression) in the adf-faces-config.xml but it has no effect.
    Is it a totally wrong idea or is it a bug?
    Any other idea?
    2.: Is it possible to solve this problem with a built in control or converter? Or do i have to write my own converter?
    Thanks for any help!

    The exception is gone - I must have had something wrong in my classpath. However, I still see the warnings. Are those warnings expected when using ADF in conjunction with myfaces?

  • ADF Faces: how to extend one of the faces components

    Hi all,
    I am thinking of extending the built-in ADF Faces CommandMenuItem component (to work around a bug that was filed). The only thing that I think I need to do is to add an additional property - I don't believe that I will need to add any additional behavior to the tag.
    Can anyone comment on (high level) the steps that I would need to go through? I'd like to
    a). Add the property
    b). Make sure the property shows up in the JDev property inspector
    c). Inherit everything else from CoreCommandMenuItem.
    I've looked at the source code (from the Apache guys), and this doesn't look too hard. I don't want to re-compile the whole Apache drop, just create a new component as described above, but I've no idea really where to start.
    Any insights appreciated,
    John

    Hello John,
    I don't know how possible it will be. It depend on what kind of property you want to add. Here are the general indications to acheive this.
    1) Make a custom component class extending CommandMenuItem class and add an additional property.
    2) Extends the commandMenuItem tag clas with your own
    3) override the method public void setProperties(javax.faces.component.UIComponent component)
    you just have to call the parent first which is the specification behavior anyway, so:
    public void setProperties(UIComponent component) {
    super.setProperties(component);
    // Cast the component to your component class and set your additional property on it
    4) The hard part... This is where I'm unsure of the procedure, but I would say that you'll have to extends ADF Faces's renderer for commandMenuItem and find a way to push the property in it if it has to be sent to the client. This seem really annoying to do. One way to do it would be to wrap the ResponseWriter so you can intercept what the parent renderer encodes and insert your property in the right spot. That strategy requires an additional (probably intern) class extending ResponseWriter. Then you would have to do something like this:
    FacesContext context = FacesContext.getCurrentInstance();
    ResponseWriter initial = context.getResponseWriter();
    context.setResponseWriter(new MyWrapperWriter(initial));
    super.encodeBegin(context, component);
    context.setResponseWriter(initial);
    The Wrapper would have to override all methods and delegate the call to the wrapped instance. When calling startElement(String) you would add a call to writeAttribute for your own property.
    5) For showing the property in the property editor panel you must fill a faces-config.xml file with the <component> tag. Since that one does not allow inheritance (which is really annoying imho) you'll have to copy most of the properties from adf faces' faces-config.xml file.
    6) Fill the tld for your new tag
    7) JAR the whole thing
    8) Edit your tag library from Tool in the menu I think (not on a computer with JDev installed atm so cannot be sure). Add your library that you just created. If faces.config.xml and the .tld are well made JDev will figure prety much everything on its own. You will now have a new choice in the dropdown menu of the component palette for your custom library.
    I hope I was decently clear.
    Regards,
    Simon Lessard

  • About skinning in ADF Faces EA19

    I'm working with skinning adf faces technology and I'm trying to personalize .AFErrorIcon style with my own icon but it doesn't work. The image is not rendered. Can somebody help with this, please...
    Thanks,
    Victor

    I am also trying to customize the skin for menu tab. However, it doesn't use the selectedIcons.
    My JSP is :
    <af:menuTabs var="item" value="#{Application.views}" >
    <f:facet name="nodeStamp">
    <af:commandMenuItem text="#{item.label}" action="#{item.select}" selected="#{item.selected}" />
    </f:facet>
    </af:menuTabs>
    The demo uses goCommandItem and doesn't use facet "nodeStamp". I tried to change the property to selected ="true" and it still doesn't use the right icon. Could anyone let me know if it is a bug?

  • Tool tip in EO/VO does not work in ADF Faces  ?

    Hi,
    I set tool tip in Control hints of Entity Object / View Object. But when I use the VO in ADF faces page, the tool tip text does not displays.
    (It does work when using ADF BC Tester)
    Is it only for swing application ?
    Thanks,
    xtanto

    I've raised a bug on this bug:563929
    I'd expect the ADF Faces components to reflect the Tooltip attibute that you set in ADF BC. I also raised the point that everywhere else we talk about "tooltip" except in JSF when we refer to "shortDesc" (and the attribute "Tip" is something else as well!),
    No wonder we missed this ;o)
    Thanks
    Grant

  • ADF Faces - access to content in WEB-INF directory

    Hello,
    I create simple JSF application that use ADF Faces and deploy it to Oracle iAS. But why can i also access files in WEB-INF directory? For example, the following URL - http://myserver.si/MyApp/faces/WEB-INF/web.xml - will return the content of XML file. By my knowledge of J2EE architecture, access to this directory should be forbidden.
    Should I set some parameter on javax.faces.webapp.FacesServlet servlet filter to prevent access to WEB-INF directory? Thank you for help.
    Google also found the following links:
    - http://mail-archives.apache.org/mod_mbox/myfaces-dev/200602.mbox/%[email protected]%3E
    - http://svn.apache.org/viewcvs.cgi//myfaces/core/trunk/api/src/main/java/javax/faces/webapp/FacesServlet.java/?rev=375489&view=diff&r1=375489&r2=375488&p1=/myfaces/core/trunk/api/src/main/java/javax/faces/webapp/FacesServlet.java&p2=/myfaces/core/trunk/api/src/main/java/javax/faces/webapp/FacesServlet.java
    Regards,
    Matic

    Hi,
    the reason for this is that the WEB-INF directory is protected against direct client (browser) requests. Using Faces, the JSF servlet performs this access as a server side forward request in which case there is no container-managed protection.
    If you want to avoid this then you can write a servlet filter in fron of JSF in which you check for any occurences of directories you want to prohibit access to.
    Its not a bug, its the way J2EE is designed ;-(
    Frank

  • ADF Faces is not supported on IE running in compatibility mode

    hi
    In the blog post "Running ADF Faces applications with IE 9 in IE 8 compatibility mode "
    at https://blogs.oracle.com/jdevotnharvest/entry/running_adf_faces_applications_with_ie_9_in_ie_8_compatibility_mode
    Frank Nimphius explains about headers to make IE browsers behave like a previous version (in compatibility mode), but ends with this support information:
    Very Important(!)
    ADF Faces is not supported on IE running in compatibility mode. If using ADF Faces on IE in production, make sure IE is configured to run in native mode. Compatibility mode may only be used during development if your IE version is not certified with the JDeveloper version you work with. In production then you need to make sure the IE version matches the JDeveloper certification matrix.Reviewing the Release 1 "Certification and Support Matrix "
    at http://www.oracle.com/technetwork/developer-tools/jdev/index-091111.html#Browsers
    it currently says
    "For Internet Explorer 8 and 9, only Native mode is supported. View Compatibility mode should be disabled. "
    But there currently are no hits when searching for "compatibility" in the Release 2 "Certification and Support Matrix "
    at http://www.oracle.com/technetwork/developer-tools/jdev/jdev11gr2-cert-405181.html#Browsers
    - (q1) ADF Faces is not supported on IE running in compatibility mode, how much of that applies to JDeveloper Release 2 and where has it been documented?
    many thanks
    Jan Vervecken

    Thanks for your reply Frank.
    Frank Nimphius wrote:
    its bug 13906617 "ADD ADF FACES NOT SUPPORTED ON IE COMPATIBILITY MODE TO THE DOCUMENTATION"
    I was unable to find bug 13906617 on My Oracle Support. Has bug 13906617 been published?
    thanks
    Jan

  • BUG: ADF BC read-only VO with no Key attrs + af:table

    Hello all,
    I've got a bug to report - quite easily reproducable with the HR demo schema. To see it:
    1). Create a new application from the ADF BC + Faces template
    2). Create a read-only VO, use "SELECT employee_id, first_name from employees" and order by "employee_id" - take the defaults for everything - do not set any key attributes.
    3). Create an AM, add the VO to it's data model. Turn off AM pooling in the configuration.
    4). Create a JSPX page. Drag-drop the VO from the data control palette as an ADF read-only table - with selection
    5). Bind the actionlistener of the "submit" button to a backing bean method that just system.out.println's something.
    Now, run the app. Try selecting an employee from the first page (records 1-10) and clicking submit - it works. Now, scroll to the second set of records, select one and click submit - no message appears - the action listener is never called. No errors are thrown.
    Workaround: ensure the VO has employee_id selected as a key attribute.
    My code is at the bottom for reference.
    Cheers,
    John
    untitled1.jspx:
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:af="http://xmlns.oracle.com/adf/faces"
              xmlns:afh="http://xmlns.oracle.com/adf/faces/html">
      <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
                  doctype-system="http://www.w3.org/TR/html4/loose.dtd"
                  doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
      <jsp:directive.page contentType="text/html;charset=windows-1252"/>
      <f:view>
        <afh:html>
          <afh:head title="untitled1">
            <meta http-equiv="Content-Type"
                  content="text/html; charset=windows-1252"/>
          </afh:head>
          <afh:body>
            <af:messages/>
            <h:form>
              <af:table value="#{bindings.emp1.collectionModel}" var="row"
                        rows="#{bindings.emp1.rangeSize}"
                        first="#{bindings.emp1.rangeStart}"
                        emptyText="#{bindings.emp1.viewable ? 'No rows yet.' : 'Access Denied.'}"
                        selectionState="#{bindings.emp1.collectionModel.selectedRow}"
                        selectionListener="#{bindings.emp1.collectionModel.makeCurrent}">
                <af:column sortProperty="EmployeeId" sortable="false"
                           headerText="#{bindings.emp1.labels.EmployeeId}">
                  <af:outputText value="#{row.EmployeeId}">
                    <f:convertNumber groupingUsed="false"
                                     pattern="#{bindings.emp1.formats.EmployeeId}"/>
                  </af:outputText>
                </af:column>
                <af:column sortProperty="FirstName" sortable="false"
                           headerText="#{bindings.emp1.labels.FirstName}">
                  <af:outputText value="#{row.FirstName}"/>
                </af:column>
                <f:facet name="selection">
                  <af:tableSelectOne text="Select and">
                    <af:commandButton text="Submit" actionListener="#{abc.click}"/>
                  </af:tableSelectOne>
                </f:facet>
              </af:table>
            </h:form>
          </afh:body>
        </afh:html>
      </f:view>
    </jsp:root>abc.java:
    import javax.faces.event.ActionEvent;
    public class abc
      public abc()
      public void click(ActionEvent actionEvent)
        System.out.println("click");
    }emp.xml (View Object):
    <?xml version='1.0' encoding='windows-1252' ?>
    <!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
    <ViewObject
       Name="emp"
       OrderBy="employee_id"
       BindingStyle="OracleName"
       CustomQuery="true"
       ComponentClass="model.empImpl"
       UseGlueCode="false" >
       <SQLQuery><![CDATA[
    select employee_id, first_name
    from employees
       ]]></SQLQuery>
       <DesignTime>
          <Attr Name="_isExpertMode" Value="true" />
          <Attr Name="_version" Value="10.1.3.39.84" />
          <Attr Name="_codeGenFlag2" Value="Access|Coll|VarAccess" />
       </DesignTime>
       <ViewAttribute
          Name="EmployeeId"
          IsUpdateable="false"
          IsPersistent="false"
          IsNotNull="true"
          Precision="6"
          Scale="0"
          Type="oracle.jbo.domain.Number"
          ColumnType="NUMBER"
          AliasName="EMPLOYEE_ID"
          Expression="EMPLOYEE_ID"
          SQLType="NUMERIC" >
          <DesignTime>
             <Attr Name="_DisplaySize" Value="22" />
          </DesignTime>
       </ViewAttribute>
       <ViewAttribute
          Name="FirstName"
          IsUpdateable="false"
          IsPersistent="false"
          Precision="20"
          Type="java.lang.String"
          ColumnType="VARCHAR2"
          AliasName="FIRST_NAME"
          Expression="FIRST_NAME"
          SQLType="VARCHAR" >
          <DesignTime>
             <Attr Name="_DisplaySize" Value="20" />
          </DesignTime>
       </ViewAttribute>
    </ViewObject>appModule.xml:
    <?xml version='1.0' encoding='windows-1252' ?>
    <!DOCTYPE AppModule SYSTEM "jbo_03_01.dtd">
    <AppModule
       Name="AppModule"
       ComponentClass="model.AppModuleImpl" >
       <DesignTime>
          <Attr Name="_isCodegen" Value="true" />
          <Attr Name="_version" Value="10.1.3.39.84" />
          <Attr Name="_deployType" Value="0" />
       </DesignTime>
       <ViewUsage
          Name="emp1"
          ViewObjectName="model.emp" >
       </ViewUsage>
    </AppModule>bc4j.xcfg:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <BC4JConfig>
       <AppModuleConfigBag>
          <AppModuleConfig name="AppModuleLocal">
             <DeployPlatform>LOCAL</DeployPlatform>
             <JDBCName>local_hr</JDBCName>
             <jbo.ampool.doampooling>false</jbo.ampool.doampooling>
             <jbo.project>Model</jbo.project>
             <jbo.ampool.dynamicjdbccredentials>false</jbo.ampool.dynamicjdbccredentials>
             <AppModuleJndiName>model.AppModule</AppModuleJndiName>
             <ApplicationName>model.AppModule</ApplicationName>
          </AppModuleConfig>
       </AppModuleConfigBag>
       <ConnectionDefinition name="local_hr">
          <ENTRY name="JDBC_PORT" value="1521"/>
          <ENTRY name="ConnectionType" value="JDBC"/>
          <ENTRY name="HOSTNAME" value="localhost"/>
          <ENTRY name="DeployPassword" value="true"/>
          <ENTRY name="user" value="hr"/>
          <ENTRY name="ConnectionName" value="local_hr"/>
          <ENTRY name="SID" value="STGY"/>
          <ENTRY name="password">
             <![CDATA[{904}05DB46A9C39F51D1A4814423FFD9297C71]]>
          </ENTRY>
          <ENTRY name="JdbcDriver" value="oracle.jdbc.OracleDriver"/>
          <ENTRY name="ORACLE_JDBC_TYPE" value="thin"/>
          <ENTRY name="DeployPassword" value="true"/>
       </ConnectionDefinition>
    </BC4JConfig>

    Hi,
    reproduces for me. It appears that the parameter is not applied properly when executing the query.
    Frank

  • JDEV 10.1.3: Using "Create" binding on BC view object with ADF Faces Table

    Hello,
    I am trying to get this to work, but to no avail:
    I've got a very simple page (ADF Faces - JSPX) created by dragging an iterator from the data control pallete on to my page and picking "ADF Table..." as my chose to create. This creates a table on my page that allows me to edit each row in place. Very nice.
    Now, I dragged the create operation for that iterator on to the page. What I had hoped to see is that when I click "Create," a new blank row appears in my table (well, at least a row that is blank except for any default values specified in the EO/VO and my overriden create() method).
    However, this doesn't happen. The page submits and refreshes, but no blank row shows up. I initially tried setting the Create button to do partial submit and setting the partialtriggers for the table to include the Create button, to no avail. I also tried it without the partial submit with the same results.
    So:
    1). Should this work, or is this behavior a bug.?
    2). If not, is there a different/better way of doing it?
    Regards,
    John

    G'day John
    I think I can give you a hint of what is occuring... I'm still trying to work out what is happening exactly.
    In JDev 10.1.2 UIX, when the user invoked the create action, they would see the blank record added to the underlying table. Under 10.1.3 Faces the functionality is somewhat different.
    When you the user clicks on the create action a blank record is created but not shown in the table control. To prove the blank record is there try this:
    1) Build an ADF Input Form based on the same VO iterator
    2) In your JSF navigation, create a navigation case between the existing page and the new page, and another back again,
    3) In the existing page, map the Create button's action attribute to navigate to the ADF Input Form
    4) In the ADF Input Form, map the Submit button's action attribute to navigate to the ADF Table page.
    Now when you run your app, notice when you create a new record in the ADF Table which automatically takes you to the ADF Input Form, note the blank record, and the details you enter into the record here and submit, are then visible in the ADF Table on the return.
    This is a long way of proving that the new record is in the table. It's just you can't see it.
    I have a theory which I'm trawling through the newly updated documentation to verify. This issues goes back to the VO createRow vs insertRow method calls that have been documented by Steve Muench a couple of times. I'm guessing the table control is now smarter and doesn't show createRow records, only insertRow records.
    Read one of Steve's posts here regards the createRow vs insertRow method calls:
    http://www.oracle.com/technology/products/jdev/tips/muench/blankrow/index.html
    If I find anymore info I'll endeavour to post it.
    Meanwhile this of course doesn't help you if you actually want to show the blank row in the ADF Table editable control, but I'd thought I'd give you an idea of what's happening behind the scenes.
    Hope this helps.
    CM.

  • WEB Application security don't work properly with adf faces

    We introduce conventional web security in our java ee application integrating ui as adf faces.
    We got problem when we access protected jspx document. It seem the container don't ask the user to log on when the page did not contains any link with the model (page definitions i think). It seem that the container react lately too, after displaying part of the screen.
    For example:
    We have an application with a home page with two tabs representing our applications.
    The home page is an unprotected directory.
    The both applications home pages are in protected directories.
    The both applications home pages did not contains any link to the model. Some text are displayed in showDetailHeader, panelHeader, etc
    Whe we start the application, the home page is displayed. The infoUser part on the panelPage indicate that nobody is authenticated. All is fine.
    When we click on the first tab representing the first application, the page is displayed and the containes don't ask to login. The page is into a protected directory. When we click on showDetailHeader, nothing is done, the content still disclosed.
    When click on a menu that load a page that reference to the model part (page definitions exists), the container ask to login. After a sucessfully login, all pages are accessible, showDetailHeader work properly, infoUser part is loaded with the username for the authenticated session.
    Is this due to a bug ?
    Is this due to a bad design or an error in our development ?
    Note that we didn't implement since yet the adf security layer may be it will solve this problem.

    Hello,
    when your security is based on URL, the problem could be the url is changed one click later. Check this: Re: Browser URL and current page

Maybe you are looking for

  • Macbook 13" Backlight Turns On and Off when Screen Moves

    I've started having an annoying problem with my Macbook. Sometimes when I open the lid, the backlight won't come on. If I move the lid around for a while, the backlight sometimes comes on, but if I make any sudden movements with the laptop, the backl

  • Need to wipe out HD but don't have install disk? I have lion 10.7.5

    Need to wipe out HD but don't have the install disk? I want to sell my Macbook Pro 15 inch. I have the orginal disk it came with but it's leopard and I have seens then upgraded to Lion. Now I can't find Lion and the install disk (leopard) tells me yo

  • OBE SQL Dev 1.5 New Features has broken link to file sqldevmngdb.zip

    Hi there, It appears that one of the file download links (*sqldevmngdb.zip*) in the Prerequisites for OBE Tutorial Oracle SQL Developer 1.5 New Features is broken. [http://www.oracle.com/technology/obe/hol08/sqldev_mngdb/sqldev15nf/files/sqldevmngdb.

  • Poor quality images

    Have done many movies in FCE 3 and just loaded 4. I shoot photos with a canon 7D and in completing the movie the image quality is extremely poor. I have always just brought JPEGs in to FCE in the past and they were tack sharp. every image appears cru

  • IPS on 1900 series Router

    This should be a simple question. Customer is thinking about the whole IDS/IPS environment. He has some 1921 routers. Am I correct is saying that If the router has the FL-SEC installed, then all they would need is to purchase the CON-SUSA-1921SEC sub