[richfaces-issues] [JBoss JIRA] (RF-12276) script tags has been rendered in the wrong sequence

Christian Werner (JIRA) jira-events at lists.jboss.org
Wed May 23 03:59:17 EDT 2012


    [ https://issues.jboss.org/browse/RF-12276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12694958#comment-12694958 ] 

Christian Werner edited comment on RF-12276 at 5/23/12 3:57 AM:
----------------------------------------------------------------

Unfortunately, the change to Majorra is not easy as it is a relatively complex production system. Unfortunately, we can not reproduce the problem easily. The error occurs only sporadically and only affects in Microsoft IE.

I can you post the JSF- and bean code:

1. We invoke a popup panel with a menuItem-component via Ajax request:

{noformat}
    <cmp:genericConfirmation number="1" forceoppanel="true" message="#{messages.propagation_label_javascript_send_propagations}" action="#{propagationsSetReadyToSendStatus.process}" />
      ...
        <h:form id="PropagationListForm" styleClass="yform">
          ...
              <rich:dropDownMenu>
                <rich:menuItem label="#{messages.controls_label_send_propagations}" icon="#{resource['images.buttons:status_green.png']}" iconDisabled="#{resource['images.buttons:status_disable.png']}" rendered="#{propagationsController.userInManagerRoles}" mode="ajax">
                  <rich:componentControl event="click" target="genericpanel1" operation="show" />
                </rich:menuItem>
              </rich:dropDownMenu>
          ...
        </h:form>
{noformat}


Composite component: genericConfirmation.xhtml

{noformat}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
  xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:composite="http://java.sun.com/jsf/composite"
  xmlns:t="http://myfaces.apache.org/tomahawk" xmlns:topas="http://www.ecomradegroup.de/topas" xmlns:a4j="http://richfaces.org/a4j"
  xmlns:rich="http://richfaces.org/rich" xmlns:cmp="http://java.sun.com/jsf/composite/components">

<composite:interface>
  <composite:attribute name="action" shortDescription="action method of bean" method-signature="java.lang.String action()" required="false" />
  <composite:attribute name="actionListener" shortDescription="actionlistener method of bean" method-signature="void actionListener(javax.faces.event.ActionEvent)" required="false" />
  <composite:attribute name="header" shortDescription="header label" type="java.lang.String" required="false" />
  <composite:attribute name="message" shortDescription="output message to confirm" type="java.lang.String" required="true" />
  <composite:attribute name="number" shortDescription="to use more then one panel" type="java.lang.String" required="false" />
  <composite:attribute name="forceoppanel" type="java.lang.boolean" required="false" default="false" />
</composite:interface>

<composite:implementation>
  <rich:popupPanel id="massenoperationspanel" minWidth="350" maxWidth="350" minHeight="100" maxHeight="100" resizeable="false" moveable="false">
    <f:facet name="header">
      <h:panelGroup>
        <h:outputText value="#{messages.general_title_operationjob}" />
      </h:panelGroup>
    </f:facet>
    <h:panelGrid columns="3">
      <h:graphicImage library="images.status" name="loadinfo_net.gif" alt="Loading..." />
      <cmp:spacer width="20" />
      <h:outputText value="#{messages.general_label_operationjob}" />
    </h:panelGrid>
  </rich:popupPanel>

  <rich:popupPanel id="genericpanel#{cc.attrs.number}" minWidth="400" maxWidth="500" minHeight="70" maxHeight="170" resizeable="false" moveable="false" onmaskclick="#{rich:component(topas:concat('genericpanel', cc.attrs.number))}.hide()">
    <f:facet name="header">
      <h:panelGroup>
        <c:if test="#{cc.attrs.header != null}">
          <h:outputText value="#{cc.attrs.header}" />
        </c:if>
        <c:if test="#{cc.attrs.header == null}">
          <h:outputText value="?" escape="false" />
        </c:if>
      </h:panelGroup>
    </f:facet>
    <f:facet name="controls">
      <h:outputLink value="#">
        <h:graphicImage library="images.panels" name="close.png" alt="close" />
        <rich:componentControl event="click" operation="hide" target="genericpanel#{cc.attrs.number}" />
      </h:outputLink>
    </f:facet>
    <a4j:outputPanel layout="block" styleClass="subcolumns">
      <h:form styleClass="yform">
        <t:div>
          <h:outputText value="#{cc.attrs.message}" styleClass="center" style="margin-bottom: 3em;" />
        </t:div>
        <t:div styleClass="type-button center">
          <c:if test="#{cc.attrs.action != null}">
            <c:if test="#{cc.attrs.forceoppanel != null}">
              <h:commandButton value="#{messages.general_button_ok}" action="#{cc.attrs.action}" style="margin-right: 5px;" onclick="#{rich:component(topas:concat('genericpanel', cc.attrs.number))}.hide();#{rich:component('massenoperationspanel')}.show()" />
            </c:if>
            <c:if test="#{cc.attrs.forceoppanel == null}">
              <h:commandButton value="#{messages.general_button_ok}" action="#{cc.attrs.actionListener}" style="margin-right: 5px;" />
            </c:if>
          </c:if>
          <c:if test="#{cc.attrs.actionListener != null}">
            <c:if test="#{cc.attrs.forceoppanel != null}">
              <h:commandButton value="#{messages.general_button_ok}" actionListener="#{cc.attrs.action}" style="margin-right: 5px;"
                onclick="#{rich:component(topas:concat('genericpanel', cc.attrs.number))}.hide();#{rich:component('massenoperationspanel')}.show()" />
            </c:if>
            <c:if test="#{cc.attrs.forceoppanel == null}">
              <h:commandButton value="#{messages.general_button_ok}" actionListener="#{cc.attrs.actionListener}" style="margin-right: 5px;" />
            </c:if>
          </c:if>
          <a4j:commandButton value="#{messages.general_button_cancel}">
            <rich:componentControl event="click" operation="hide" target="genericpanel#{cc.attrs.number}" />
          </a4j:commandButton>
        </t:div>
      </h:form>
    </a4j:outputPanel>
  </rich:popupPanel>

</composite:implementation>
</html>
{noformat}

2. In current popup panel, the action method is called propagationsSetReadyToSendStatus.process using a commandLink. The onclick event closes the current popup and then open a status popup-panel to show the data to be processed

Bean

{noformat}
package com.ecg.webseed.ui.propagation.actions;

import java.util.ArrayList;
import java.util.List;

import org.apache.myfaces.orchestra.conversation.annotations.ConversationName;
import org.apache.myfaces.orchestra.conversation.annotations.ConversationRequire;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.security.access.annotation.Secured;
import org.springframework.stereotype.Controller;

import com.ecg.topas.web.component.errorhandling.Message;
import com.ecg.topas.web.component.errorhandling.ViewBusinessService;
import com.ecg.webseed.model.vorhaben.VermehrungsVorhaben;
import com.ecg.webseed.model.vorhaben.VermehrungsVorhabenStatus;
import com.ecg.webseed.ui.propagation.PropagationConstants;
import com.ecg.webseed.util.IConstants;
import com.topas.server.persistence.enhancement.Enhancement;
import com.topas.server.persistence.enhancement.Expression;
import com.topas.server.persistence.enhancement.LogicType;
import com.topas.server.persistence.enhancement.LogicalExpression;

@Controller("propagationsSetReadyToSendStatus")
@Scope(value = IConstants.SCOPE_CONVERSATION_ACCESS, proxyMode = ScopedProxyMode.DEFAULT)
@ConversationRequire(conversationNames = IConstants.PROPAGATIONS_CONVERSATION)
@ConversationName(value = IConstants.PROPAGATIONS_CONVERSATION)
@ViewBusinessService
public class PropagationsSetReadyToSendStatus extends AbstractMassOperationAction {

  @Override
  @Message(code = com.topas.server.web.IConstants.MESSAGE_CODE_DONE)
  @Secured({ PropagationConstants.ROLE_PROPAGATION_MANAGER, "RUN_AS_SYSTEM" })
  public void process() throws Exception {
    List<Enhancement> ehl = new ArrayList<Enhancement>(getController().getEnhancementsForList());
    LogicalExpression or = new LogicalExpression(LogicType.OR);
    or.addExpression(new Expression("status").setEq(VermehrungsVorhabenStatus.SOWINGDATA_EXIST.value()));
    or.addExpression(new Expression("status").setEq(VermehrungsVorhabenStatus.IMPORTED.value()));
    ehl.add(or);
    iteratePropagations(getController().getFilter().getQueryExample(), ehl, new ActionCallback() {
      public void action(VermehrungsVorhaben vorhaben) {
        getVorhabenBO().initialize(vorhaben);
        getVorhabenBO().changeVorhabenStatusTo(VermehrungsVorhabenStatus.READY_TO_SEND);
        getVorhabenBO().save();
        getVorhabenBO().evict();

      }
    });
  }

}
{noformat}

After the request the status popup-panel will be close and is not reloaded. Now, other bulk operations are invoked by the process begins again. At about the 3rd or 4th menuItem call, the error occurs. In the background, no exception is thrown.
                
      was (Author: christianwerner):
    Unfortunately, the change to Majorra is not easy as it is a relatively complex production system. Unfortunately, we can not reproduce the problem easily. The error occurs only sporadically and only affects in Microsoft IE.

I can you post the JSF- and bean code:

1. We invoke a popup panel with a menuItem-component via Ajax request:

{noformat}
    <cmp:genericConfirmation number="1" forceoppanel="true" message="#{messages.propagation_label_javascript_send_propagations}" action="#{propagationsSetReadyToSendStatus.process}" />
      ...
        <h:form id="PropagationListForm" styleClass="yform">
          ...
              <rich:dropDownMenu>
                <rich:menuItem label="#{messages.controls_label_send_propagations}" icon="#{resource['images.buttons:status_green.png']}" iconDisabled="#{resource['images.buttons:status_disable.png']}" rendered="#{propagationsController.userInManagerRoles}" mode="ajax">
                  <rich:componentControl event="click" target="genericpanel1" operation="show" />
                </rich:menuItem>
              </rich:dropDownMenu>
          ...
        </h:form>
{noformat}


Composite component: genericConfirmation.xhtml

{noformat}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
  xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:composite="http://java.sun.com/jsf/composite"
  xmlns:t="http://myfaces.apache.org/tomahawk" xmlns:topas="http://www.ecomradegroup.de/topas" xmlns:a4j="http://richfaces.org/a4j"
  xmlns:rich="http://richfaces.org/rich" xmlns:cmp="http://java.sun.com/jsf/composite/components">

<composite:interface>
  <composite:attribute name="action" shortDescription="action method of bean" method-signature="java.lang.String action()" required="false" />
  <composite:attribute name="actionListener" shortDescription="actionlistener method of bean"
    method-signature="void actionListener(javax.faces.event.ActionEvent)" required="false" />
  <composite:attribute name="header" shortDescription="header label" type="java.lang.String" required="false" />
  <composite:attribute name="message" shortDescription="output message to confirm" type="java.lang.String" required="true" />
  <composite:attribute name="number" shortDescription="to use more then one panel" type="java.lang.String" required="false" />
  <composite:attribute name="forceoppanel" type="java.lang.boolean" required="false" default="false" />
</composite:interface>

<composite:implementation>
  <rich:popupPanel id="massenoperationspanel" minWidth="350" maxWidth="350" minHeight="100" maxHeight="100" resizeable="false" moveable="false">
    <f:facet name="header">
      <h:panelGroup>
        <h:outputText value="#{messages.general_title_operationjob}" />
      </h:panelGroup>
    </f:facet>
    <h:panelGrid columns="3">
      <h:graphicImage library="images.status" name="loadinfo_net.gif" alt="Loading..." />
      <cmp:spacer width="20" />
      <h:outputText value="#{messages.general_label_operationjob}" />
    </h:panelGrid>
  </rich:popupPanel>

  <rich:popupPanel id="genericpanel#{cc.attrs.number}" minWidth="400" maxWidth="500" minHeight="70" maxHeight="170" resizeable="false" moveable="false"
    onmaskclick="#{rich:component(topas:concat('genericpanel', cc.attrs.number))}.hide()">
    <f:facet name="header">
      <h:panelGroup>
        <c:if test="#{cc.attrs.header != null}">
          <h:outputText value="#{cc.attrs.header}" />
        </c:if>
        <c:if test="#{cc.attrs.header == null}">
          <h:outputText value="?" escape="false" />
        </c:if>
      </h:panelGroup>
    </f:facet>
    <f:facet name="controls">
      <h:outputLink value="#">
        <h:graphicImage library="images.panels" name="close.png" alt="close" />
        <rich:componentControl event="click" operation="hide" target="genericpanel#{cc.attrs.number}" />
      </h:outputLink>
    </f:facet>
    <a4j:outputPanel layout="block" styleClass="subcolumns">
      <h:form styleClass="yform">
        <t:div>
          <h:outputText value="#{cc.attrs.message}" styleClass="center" style="margin-bottom: 3em;" />
        </t:div>
        <t:div styleClass="type-button center">
          <c:if test="#{cc.attrs.action != null}">
            <c:if test="#{cc.attrs.forceoppanel != null}">
              <h:commandButton value="#{messages.general_button_ok}" action="#{cc.attrs.action}" style="margin-right: 5px;" onclick="#{rich:component(topas:concat('genericpanel', cc.attrs.number))}.hide();#{rich:component('massenoperationspanel')}.show()" />
            </c:if>
            <c:if test="#{cc.attrs.forceoppanel == null}">
              <h:commandButton value="#{messages.general_button_ok}" action="#{cc.attrs.actionListener}" style="margin-right: 5px;" />
            </c:if>
          </c:if>
          <c:if test="#{cc.attrs.actionListener != null}">
            <c:if test="#{cc.attrs.forceoppanel != null}">
              <h:commandButton value="#{messages.general_button_ok}" actionListener="#{cc.attrs.action}" style="margin-right: 5px;"
                onclick="#{rich:component(topas:concat('genericpanel', cc.attrs.number))}.hide();#{rich:component('massenoperationspanel')}.show()" />
            </c:if>
            <c:if test="#{cc.attrs.forceoppanel == null}">
              <h:commandButton value="#{messages.general_button_ok}" actionListener="#{cc.attrs.actionListener}" style="margin-right: 5px;" />
            </c:if>
          </c:if>
          <a4j:commandButton value="#{messages.general_button_cancel}">
            <rich:componentControl event="click" operation="hide" target="genericpanel#{cc.attrs.number}" />
          </a4j:commandButton>
        </t:div>
      </h:form>
    </a4j:outputPanel>
  </rich:popupPanel>

</composite:implementation>
</html>
{noformat}

2. In current popup panel, the action method is called propagationsSetReadyToSendStatus.process using a commandLink. The onclick event closes the current popup and then open a status popup-panel to show the data to be processed

Bean

{noformat}
package com.ecg.webseed.ui.propagation.actions;

import java.util.ArrayList;
import java.util.List;

import org.apache.myfaces.orchestra.conversation.annotations.ConversationName;
import org.apache.myfaces.orchestra.conversation.annotations.ConversationRequire;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.security.access.annotation.Secured;
import org.springframework.stereotype.Controller;

import com.ecg.topas.web.component.errorhandling.Message;
import com.ecg.topas.web.component.errorhandling.ViewBusinessService;
import com.ecg.webseed.model.vorhaben.VermehrungsVorhaben;
import com.ecg.webseed.model.vorhaben.VermehrungsVorhabenStatus;
import com.ecg.webseed.ui.propagation.PropagationConstants;
import com.ecg.webseed.util.IConstants;
import com.topas.server.persistence.enhancement.Enhancement;
import com.topas.server.persistence.enhancement.Expression;
import com.topas.server.persistence.enhancement.LogicType;
import com.topas.server.persistence.enhancement.LogicalExpression;

@Controller("propagationsSetReadyToSendStatus")
@Scope(value = IConstants.SCOPE_CONVERSATION_ACCESS, proxyMode = ScopedProxyMode.DEFAULT)
@ConversationRequire(conversationNames = IConstants.PROPAGATIONS_CONVERSATION)
@ConversationName(value = IConstants.PROPAGATIONS_CONVERSATION)
@ViewBusinessService
public class PropagationsSetReadyToSendStatus extends AbstractMassOperationAction {

  @Override
  @Message(code = com.topas.server.web.IConstants.MESSAGE_CODE_DONE)
  @Secured({ PropagationConstants.ROLE_PROPAGATION_MANAGER, "RUN_AS_SYSTEM" })
  public void process() throws Exception {
    List<Enhancement> ehl = new ArrayList<Enhancement>(getController().getEnhancementsForList());
    LogicalExpression or = new LogicalExpression(LogicType.OR);
    or.addExpression(new Expression("status").setEq(VermehrungsVorhabenStatus.SOWINGDATA_EXIST.value()));
    or.addExpression(new Expression("status").setEq(VermehrungsVorhabenStatus.IMPORTED.value()));
    ehl.add(or);
    iteratePropagations(getController().getFilter().getQueryExample(), ehl, new ActionCallback() {
      public void action(VermehrungsVorhaben vorhaben) {
        getVorhabenBO().initialize(vorhaben);
        getVorhabenBO().changeVorhabenStatusTo(VermehrungsVorhabenStatus.READY_TO_SEND);
        getVorhabenBO().save();
        getVorhabenBO().evict();

      }
    });
  }

}
{noformat}

After the request the status popup-panel will be close and is not reloaded. Now, other bulk operations are invoked by the process begins again. At about the 3rd or 4th menuItem call, the error occurs. In the background, no exception is thrown.
                  
> script tags has been rendered in the wrong sequence
> ---------------------------------------------------
>
>                 Key: RF-12276
>                 URL: https://issues.jboss.org/browse/RF-12276
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 4.2.2.Final
>         Environment: MyFaces 2.1.7, Tomcat 6.0.35
>            Reporter: Christian Werner
>              Labels: waiting_on_user
>
> This bug was affected in IE8, works with Firefox
> After submit a form (using the action method of commandButton in a popup panel), appear in various javascript errors on IE8:
> {noformat}
> Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)
> Zeitstempel: Tue, 22 May 2012 13:16:54 UTC
> Meldung: 'jQuery' ist undefiniert
> Zeile: 3
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/javax.faces.resource/richfaces-utils.js.jsf?conversationContext=1
> Meldung: 'jQuery' ist undefiniert
> Zeile: 1
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/javax.faces.resource/AutocompleteBase.js.jsf?ln=org.richfaces&conversationContext=1
> Meldung: 'jQuery' ist undefiniert
> Zeile: 1
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/javax.faces.resource/Autocomplete.js.jsf?ln=org.richfaces&conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 189
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 193
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 197
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 201
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 205
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 209
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 213
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 217
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 221
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> Meldung: Objekt erwartet
> Zeile: 225
> Zeichen: 1
> Code: 0
> URI: http://christian:8080/webseed.ui/jsp/propagation/propagations.jsf?conversationContext=1
> {noformat}
> A couple of javascripts of richfaces components (ie. autocomplete.js) are rendered before the jquery script in the DOM. The autocomplete component works then no longer in IE8.
> It then looks like this:
> {noformat}
> <link rel="stylesheet" type="text/css" href="/webseed.ui/javax.faces.resource/print.css.jsf?ln=styles.print" media="print" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces-utils.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces-selection.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/AutocompleteBase.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/Autocomplete.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/Autocomplete.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/jsf.js.jsf?ln=javax.faces&amp;stage=Development&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/jquery.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces-queue.js.jsf?conversationContext=1">
> {noformat}
> The normal output looks like this. Comically affected are the scripts at the end to find. Coincidence?
> {noformat}
> <link rel="stylesheet" type="text/css" href="/webseed.ui/javax.faces.resource/print.css.jsf?ln=styles.print" media="print" /><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/javax.faces.resource/layout.css.jsf?ln=styles&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/jsf.js.jsf?ln=javax.faces&amp;stage=Development&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/jquery.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces-queue.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces-base-component.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/status.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces-event.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/popupPanel.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/popupPanelBorders.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/popupPanelSizer.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/popupPanel.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/component-control.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/togglePanel.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/tabPanel.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/tabPanel.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/togglePanelItem.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/tab.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/poll.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/toolbar.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/toolbar.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/jquery.position.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/popup.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/menuKeyNavigation.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/menu-base.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/menu.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/dropdownmenu.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/menuitem.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/message.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/msg.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/jquery.hotkeys.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/hotkey.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/collapsiblePanel.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/collapsiblePanelItem.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/icons.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/collapsiblePanel.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/panel.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/datatable.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/datatable.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/tooltip.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/tooltip.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/datascroller.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/datascroller.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><link rel="stylesheet" media="screen" type="text/css" href="/webseed.ui/rfRes/list.ecss.jsf?db=eAHrmrY!HgAFywI!&amp;ln=org.richfaces&amp;conversationContext=1" /><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces-utils.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/richfaces-selection.js.jsf?conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/AutocompleteBase.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script><script type="text/javascript" src="/webseed.ui/javax.faces.resource/Autocomplete.js.jsf?ln=org.richfaces&amp;conversationContext=1"><!--
>  
> //--></script>
> {noformat}
> Nice greetings,
> Christian

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list