[JBoss JIRA] Updated: (RF-11154) Push - Showcase - JMS connection is left opened on JBoss AS 7
by Jay Balunas (JIRA)
[ https://issues.jboss.org/browse/RF-11154?page=com.atlassian.jira.plugin.s... ]
Jay Balunas updated RF-11154:
-----------------------------
Fix Version/s: 4.1.0.Milestone3
(was: 4.1.0.Milestone2)
> Push - Showcase - JMS connection is left opened on JBoss AS 7
> -------------------------------------------------------------
>
> Key: RF-11154
> URL: https://issues.jboss.org/browse/RF-11154
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-push/poll, examples
> Affects Versions: 4.1.0.Milestone1
> Environment: richfaces-showcase 4.1.0.-SNAPSHOT, container JBoss AS 7.0.0.Final
> Reporter: Juraj Huska
> Assignee: Lukáš Fryč
> Fix For: 4.1.0.Milestone3
>
>
> When I am deploying showcase multiple times during running test suite(this multiple deployment is needed in Arquillian, since for every test class is application deployed again), I am encountering with java.lang.OutOfMemoryError: PermGen space error which in my opinion caused by this:
> {code}
> WARN [org.hornetq.jms.client.HornetQConnection] (Finalizer) I'm closing a JMS connection you left open. Please make sure you close all JMS connections explicitly before letting them go out of scope!
> 13:03:33,712 WARN [org.hornetq.jms.client.HornetQConnection] (Finalizer) The JMS connection you didn't close was created here:: java.lang.Exception
> at org.hornetq.jms.client.HornetQConnection.<init>(HornetQConnection.java:152)
> at org.hornetq.jms.client.HornetQTopicConnection.<init>(HornetQTopicConnection.java:35)
> at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:682)
> at org.hornetq.jms.client.HornetQConnectionFactory.createTopicConnection(HornetQConnectionFactory.java:145)
> at org.hornetq.jms.client.HornetQConnectionFactory.createTopicConnection(HornetQConnectionFactory.java:140)
> at org.richfaces.demo.push.JMSMessageProducer.initializeMessaging(JMSMessageProducer.java:86)
> at org.richfaces.demo.push.JMSMessageProducer.sendMessage(JMSMessageProducer.java:66)
> at org.richfaces.demo.push.MessageProducerRunnable.run(MessageProducerRunnable.java:57)
> at java.lang.Thread.run(Thread.java:662) [:1.6.0_22]
> {code}
> When I am deploying showcase.war which is without Push example(4.0.0.Final), so no JMS communication is opened, no Perm Gen error is thrown.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 2 months
[JBoss JIRA] Created: (RF-11364) <a4j:region> and the "process" attribute
by Nicholas Oxhøj (JIRA)
<a4j:region> and the "process" attribute
----------------------------------------
Key: RF-11364
URL: https://issues.jboss.org/browse/RF-11364
Project: RichFaces
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 3.3.3.Final
Reporter: Nicholas Oxhøj
Hi,
It seems to me that the <a4j:region> doesn't work correctly together withe the process="..." attribute on AJAX commands. Specifically you cannot process inputs outside the <a4j:region> even though you list them specifically in the process attribute.
I have always thought that ajaxSingle and <a4j:region> were two functionally equivalent ways of specifying which inputs should be processed in the first phases of the JSF lifecycle - one is easy to use if you only want to process a single input and the other if you have a group of related inputs.
In chapter [5.7.4. "Decide what to process"|http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/ArchitectureOverview.html#process] of the Richfaces 3.3.X documentation, it is stated that: The "_process_" attribute allows to define the ids of components to be processed together with the component which is marked as ajaxSingle *+or wrapped to region+*.
As I understand this, the example in the documentation:
{code:xml}
<h:inputText value="#{bean.name}" id="name">
<a4j:support ajaxSingle="true" process="email" event="onblur" reRender="someOut"/>
</h:inputText>
<h:inputTextarea value="#{bean.description}" id="desc" />
<h:inputText value="#{bean.email}" id="email">
<a4j:support ajaxSingle="true" process="name" event="onblur" reRender="someOut"/>
</h:inputText>
{code}
should be functionally equivalent to the following code:
{code:xml}
<a4j:region>
<h:inputText value="#{bean.name}" id="name">
<a4j:support process="email" event="onblur" reRender="someOut"/>
</h:inputText>
</a4j:region>
<h:inputTextarea value="#{bean.description}" id="desc" />
<h:inputText value="#{bean.email}" id="email">
<a4j:support ajaxSingle="true" process="name" event="onblur" reRender="someOut"/>
/h:inputText>
{code}
But this doesn't work as expected. The "email" component is no longer processed when focus leaves the "name" component.
The reason for this is found in the class UIAjaxRegion, where all the "processing methods" (processDecodes, processValidators, and processUpdates) contains code similar to the following:
{code}
if (ajaxContext.isAjaxRequest() && null != ajaxSingleClientId) {
invokeOnComponent(context, ajaxSingleClientId, new ContextCallbackWrapper(updateCallback));
Set<String> areasToProcess = ajaxContext.getAjaxAreasToProcess();
if(null != areasToProcess){
for (String areaId : areasToProcess) {
invokeOnComponent(context, areaId, new ContextCallbackWrapper(updateCallback));
}
}
} else {
super.processUpdates(context);
}
{code}
So the value of the process attribute (retrieved through ajaxContext.getAjaxAreasToProcess), is only used if the AJAX command has ajaxSingle="true". I don't understand why the "process" attribute isn't used, regardless of the value of the ajaxSingle attribute???
Looking at the code, I thought that a workaround would the be to just add ajaxSingle="true" to the <a4j:support> so that it would again look like:
{code:xml}
<a4j:support ajaxSingle="true" process="email" event="onblur" reRender="someOut"/>
{code}
But this doesn't work either. Although the code above _will_ now enter the first branch and therefore loop through the areaIds specified in the process attribute, it will only find them if they are located inside the <a4j:region> itself, since the invokeOnComponent() is implicitely called on the UIAjaxRegion.
Regards,
Nicholas Oxhøj
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 2 months
[JBoss JIRA] Created: (RF-11377) Classloading issue: org.richfaces.application.push.impl.jms.RequestImpl.serializeMessage(Topic, Message) fails
by Puspendu Banerjee (JIRA)
Classloading issue: org.richfaces.application.push.impl.jms.RequestImpl.serializeMessage(Topic, Message) fails
----------------------------------------------------------------------------------------------------------------
Key: RF-11377
URL: https://issues.jboss.org/browse/RF-11377
Project: RichFaces
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: component-push/poll
Affects Versions: 4.0.0.Final
Environment: JBoss AS 6, HornetQ, Richfaces-4.0.0.Final
Reporter: Puspendu Banerjee
Classloading issue: org.richfaces.application.push.impl.jms.RequestImpl.serializeMessage(Topic, Message) fails at ObjectMessage-->getObject() to load User defined Serializable Message class.
Going a bit deeper you will see that ObjectMessage-->getObject() fails to load the class for your message object.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 2 months
[JBoss JIRA] Created: (RF-11307) a4j:ajax doesn't render rich:datatable when it has a rendered condition.
by Abdulkerim İnanmış (JIRA)
a4j:ajax doesn't render rich:datatable when it has a rendered condition.
------------------------------------------------------------------------
Key: RF-11307
URL: https://issues.jboss.org/browse/RF-11307
Project: RichFaces
Issue Type: Bug
Security Level: Public (Everyone can see)
Environment: I am usinh richfaces 4.0 and jsf 2.04 libraries. My sample code is below.
Reporter: Abdulkerim İnanmış
<h:panelGrid>
<h:panelGrid columns="3" id="kriter"
columnClasses="colPad,colPad5,colPad5,colPad5">
<h:outputText value="Tarih" style="font-weight:bolder;" />
<h:panelGroup>
<rich:calendar value="#{adminBean.dateLow}"
datePattern="d MMM,yyyy">
</rich:calendar>
<rich:calendar value="#{adminBean.dateHigh}"
datePattern="d MMM,yyyy">
</rich:calendar>
</h:panelGroup>
<h:selectOneRadio value="#{adminBean.okundu}" label="Okunma Durumu">
<f:selectItem itemLabel="Okunanlar" itemValue="#{true}" />
<f:selectItem itemLabel="Okunmamışlar" itemValue="#{false}" />
<f:selectItem itemLabel="Hepsi" itemValue="#{null}" />
</h:selectOneRadio>
</h:panelGrid>
<h:panelGrid columns="4" columnClasses="colPad5,colPad5">
<h:selectOneRadio value="#{adminBean.aramaSekli}">
<f:selectItem itemLabel="Konuda arama" itemValue="K" />
<f:selectItem itemLabel="Genel arama" itemValue="G" />
</h:selectOneRadio>
<h:outputText value="Aranacak Sözcük" style="font-weight:bolder;" />
<h:inputText value="#{adminBean.aranacakSozcuk}"
id="aranacakSozcuk" />
<h:commandButton value="Sorgula" action="#{adminBean.sorgula}"
image="resources/images/search3.jpg" style="float:right;">
<a4j:ajax execute="kriter" render="sonuclar"
onbegin="document.getElementById('showBtn').click()"
oncomplete="document.getElementById('hideBtn').click()" />
</h:commandButton>
</h:panelGrid>
</h:panelGrid>
<h:outputText value="sonuc bulunamadı"
rendered="#{empty adminBean.iletisim}" />
<rich:dataTable value="#{adminBean.iletisim}" var="i" id="sonuclar"
rendered="#{not empty adminBean.iletisim}">
<f:facet name="header">
İletişim Mesajları Arama Sonuçları
</f:facet>
<rich:column style="width:200px;">
<f:facet name="header">
Konu
</f:facet>
<h:outputText value="#{i.konu}" rendered="#{i.okundu}" />
<h:outputText value="#{i.konu}" rendered="#{not i.okundu}"
style="color:red;" />
</rich:column>
<rich:column>
<f:facet name="header">
Kimden(e-posta)
</f:facet>
<h:outputText value="#{i.email}" />
</rich:column>
<rich:column>
<f:facet name="header">
Tarih
</f:facet>
<h:outputText value="#{i.tarih}">
<f:convertDateTime dateStyle="medium" type="both" />
</h:outputText>
</rich:column>
<rich:column>
<h:commandLink value="Oku" action="#{adminBean.selectMessage(i)}">
<a4j:ajax execute="@this" render="metin sonuclar"
onbegin="beginFunc()" oncomplete="completeFunc()" />
</h:commandLink>
</rich:column>
<rich:column>
<h:commandLink value="Sil" action="#{adminBean.sil(i)}"
onclick="if(!confirm('İletiyi silmek üzeresiniz.')) return false;">
<a4j:ajax execute="@this" render="metin sonuclar" />
</h:commandLink>
</rich:column>
</rich:dataTable>
<rich:popupPanel autosized="true" id="popAciklama" modal="true">
<f:facet name="header">
Mesaj açıklaması
</f:facet>
<f:facet name="controls">
<h:outputLink
onclick="#{rich:component('popAciklama')}.hide();return false;">
X
</h:outputLink>
</f:facet>
<h:inputTextarea value="#{adminBean.selected.aciklama}" cols="80"
disabled="true" styleClass="mesajDetay" id="metin"
rows="#{(fn:length(adminBean.selected.aciklama) / 80) > 15 ? 15 : fn:replace((fn:length(adminBean.selected.aciklama) / 80) + ( 1 - ((fn:length(adminBean.selected.aciklama) / 80)%1)) % 1,'.0','')}" />
</rich:popupPanel>
<script type="text/javascript">
function beginFunc(){
document.getElementById('showBtn').click()
}
function completeFunc(){
document.getElementById('hideBtn').click()
#{rich:component('popAciklama')}.show();
}
</script>
</ui:define>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 2 months