[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2093) Optimize getting Id in Seam code for better performance
by Mikhail Grushinskiy (JIRA)
Optimize getting Id in Seam code for better performance
-------------------------------------------------------
Key: JBSEAM-2093
URL: http://jira.jboss.com/jira/browse/JBSEAM-2093
Project: JBoss Seam
Issue Type: Feature Request
Reporter: Mikhail Grushinskiy
This sequence of calls (used in PersistenceProvider) is quite slow
Entity.forClass(bean.getClass()).getIdentifier(bean);
1) Entity.forClass() is reading annotations using JDK 5 methods (JDK 5 annotation reading is not that fast). Can it be cached?
2) JDK 5 reflection is used to get bean id (which is slower than optmized reflection with cglib)
3) There could be other reasons as well. I think repetitive calling of this sequence under profiler will give better picture.
from PersistenceProvider.java
/**
* Get the value of the entity identifier attribute.
*
* @param bean a managed entity instance
*/
public Object getId(Object bean, EntityManager entityManager)
{
return Entity.forClass( bean.getClass() ).getIdentifier(bean);
}
/**
* Get the name of the entity
*
* @param bean
* @param entityManager
*/
public String getName(Object bean, EntityManager entityManager)
{
return Entity.forClass(bean.getClass()).getName();
}
/**
* Get the value of the entity version attribute.
*
* @param bean a managed entity instance
*/
public Object getVersion(Object bean, EntityManager entityManager)
{
return Entity.forClass( bean.getClass() ).getVersion(bean);
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-4028) way to outject someting in to the CURRENT conversation even if a new one is started before the context is flushed
by David Schlotfeldt (JIRA)
way to outject someting in to the CURRENT conversation even if a new one is started before the context is flushed
-----------------------------------------------------------------------------------------------------------------
Key: JBSEAM-4028
URL: https://jira.jboss.org/jira/browse/JBSEAM-4028
Project: Seam
Issue Type: Feature Request
Affects Versions: 2.1.2.GA
Reporter: David Schlotfeldt
If you outject and then create a new nested conversation the outjected variable ends up in the nested conversation. This is because ServerConversatoinContext keeps the "additions" to it separate from the actual context variables -- just in the case it needs to "rollback". When the render response phase takes place ServerConversationContext "commits" the new additions. The "key" of each addition is determined at that time. The key of entries is prefixed with the conversation id to allow Seam to determine what conversation it is for. It would be nice if when one could outject the variable into the conversation that was current when it was outjected. This could easily be done by storing the conversation id that was current in the "additions" information and using it instead of the current conversation id when flushed. This of course is a change that could cause many issues for people so I propose an attribute is added to @Out called "conversation-at-flush=[true|false]" with the default value of true. If you want the outject to be in the converation current when outjected you set this attribute to false.
Just to point out an issue I could see happen if not kept in mind when implementing: A nested conversation could in theory start, things outjected, and then the nested conversation ended before flush takes place. When flush does happen we need to filter out those outjects from the nested conversation that had conversation-at-flush=false since that conversation was ended. This simply means checking the conversation id is still active before making the addition/removal.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3849) ClassLoader cannot find xhtml files when scanning page.xml files in an EAR with Multiple WARs
by Reind D (JIRA)
ClassLoader cannot find xhtml files when scanning page.xml files in an EAR with Multiple WARs
---------------------------------------------------------------------------------------------
Key: JBSEAM-3849
URL: https://jira.jboss.org/jira/browse/JBSEAM-3849
Project: Seam
Issue Type: Bug
Affects Versions: 2.1.1.CR2
Environment: JBoss AS 5.0.0.GA, JDK6, Seam 2.1.1.CR2
Reporter: Reind D
I have an EAR that contains multiple WAR files. The ear deploys correctly, but on the first web request, during a scan of all *.page.xml files, I get the following output to the log for each page.xml file:
WARN [VFSScanner] Error handling item 'login/index.page.xml': java.lang.NullPointerException: Cannot find URL from classLoader for login/index.page.xml, loading from org.jboss.web.tomcat.service.WebCtxLoader$ENCLoader@1ed964f
The NPE occurs in this code:
org.jboss.seam.deployment.FileDescriptor.java
this.url = classLoader.getResource(name);
if (this.url == null)
{
throw new NullPointerException("Cannot find URL from classLoader for " + name + ", loading from " + classLoader);
}
As a result, none of the page.xml files work.
Note that the second WAR works as expected, with all the page.xml files loaded correctly.
The same project worked in Seam 2.0.2.SP1 and JBoss AS 4.2.3.GA
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3816) rules-agent should also work with dsl-based rules
by Joerg Viola (JIRA)
rules-agent should also work with dsl-based rules
-------------------------------------------------
Key: JBSEAM-3816
URL: https://jira.jboss.org/jira/browse/JBSEAM-3816
Project: Seam
Issue Type: Feature Request
Components: Drools
Affects Versions: 2.0.2.GA
Reporter: Joerg Viola
Usings the components.xml below, one should be able to dynamically deploy dsl-based rules.
The DSL does not need to be dynamically changed, it may be loaded from the classpath.
<drools:rule-base name="billingRules" dsl-file="/META-INF/billing.dsl">
<drools:rule-files>
<value>/META-INF/billing.dslr</value>
</drools:rule-files>
</drools:rule-base>
<drools:rule-agent startup="true" auto-create="true" name="billingRulebase"
configurationFile="/billing.properties" />
<drools:managed-working-memory
name="billingWorkingMemory"
auto-create="true"
scope="event"
rule-base="#{billingRules}">
</drools:managed-working-memory>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-3555) SeamMailAgain
by Markus Heidt (JIRA)
SeamMailAgain
-------------
Key: JBSEAM-3555
URL: https://jira.jboss.org/jira/browse/JBSEAM-3555
Project: Seam
Issue Type: Bug
Affects Versions: 2.1.0.CR1
Environment: JBoss AS 4.2.1.GA
JBoss Seam 2.1.0-SNAPSHOT (10.10. HudsonNo330)
Reporter: Markus Heidt
Simple Mailing via Renderer doesn't work.
'Seam-gen'erated a new project and added a new action 'sendMail'
Added the line to the action code:
Renderer.instance().render("/simple.xhtml");
simple.xhtml is a modified version of the seam example (without #{person})
Error after executing the action:
2008-10-14 11:40:21,847 FATAL [javax.enterprise.resource.webcontainer.jsf.application] org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
javax.faces.el.EvaluationException: org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.ui.facelet.facesContextFactory
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
...
Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:256)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 9 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2255) Undeploying multiple wars inside an ear causes IllegalStateException.
by Richard Teviotdale (JIRA)
Undeploying multiple wars inside an ear causes IllegalStateException.
---------------------------------------------------------------------
Key: JBSEAM-2255
URL: http://jira.jboss.com/jira/browse/JBSEAM-2255
Project: JBoss Seam
Issue Type: Bug
Affects Versions: 2.0.0.GA
Environment: Debian GNU/Linux x86_64 2.6.18-4 SMP, Java 1.5.0_12, JBoss 4.2.1.GA, Seam 2.0.0.GA.
Reporter: Richard Teviotdale
When undeploying an ear that contains two wars an IllegalStateException is generated. I have not checked for more than two wars but I suspect an exception would be generated for each undeploying war after the first. This exception does not prevent the server from undeploying and redeploying the ear, it just produces an error and stacktrace in the server log.
Here's how to duplicate.
- make a generic seam-gen project called test deployed as an ear
- ant explode
- go to $JBOSS_HOME/default/deploy/test.ear
- recursive copy test.war directory to test2.war
- edit META-INF/application.xml and create deploy entry for test2.war
- run server
- touch META-INF/application.xml
see server log for following stack trace:
15:05:11,798 INFO [TomcatDeployer] undeploy, ctxPath=/test2, warUrl=.../deploy/test.ear/test2.war/
15:05:12,067 INFO [TomcatDeployer] undeploy, ctxPath=/test, warUrl=.../deploy/test.ear/test.war/
15:05:12,068 ERROR [[/test]] Session event listener threw exception
java.lang.IllegalStateException: Attempted to invoke a Seam component outside the an initialized application
at org.jboss.seam.contexts.Lifecycle.getApplication(Lifecycle.java:36)
at org.jboss.seam.contexts.Lifecycle.endSession(Lifecycle.java:220)
at org.jboss.seam.contexts.ServletLifecycle.endSession(ServletLifecycle.java:129)
at org.jboss.seam.servlet.SeamListener.sessionDestroyed(SeamListener.java:49)
at org.apache.catalina.session.StandardSession.expire(StandardSession.java:702)
at org.apache.catalina.session.StandardSession.expire(StandardSession.java:660)
snip...
15:05:12,276 ERROR [[/test]] Exception sending context destroyed event to listener instance of class org.jboss.seam.servlet.SeamListener
java.lang.IllegalStateException: Attempted to invoke a Seam component outside the an initialized application
at org.jboss.seam.contexts.Lifecycle.getApplication(Lifecycle.java:36)
at org.jboss.seam.contexts.Lifecycle.endApplication(Lifecycle.java:50)
at org.jboss.seam.contexts.ServletLifecycle.endApplication(ServletLifecycle.java:118)
at org.jboss.seam.servlet.SeamListener.contextDestroyed(SeamListener.java:39)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3893)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 9 months