[JBoss JIRA] (JBRULES-3283) Concurrency issue: Invalid bytecode generated by KnowledgeBuilder.add()
by Thomas Kruse (Created) (JIRA)
Concurrency issue: Invalid bytecode generated by KnowledgeBuilder.add()
-----------------------------------------------------------------------
Key: JBRULES-3283
URL: https://issues.jboss.org/browse/JBRULES-3283
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-compiler (expert)
Affects Versions: 5.3.0.Final, 5.3.0.CR1
Environment: Oracle Java 6, Oracle Java 7, Linux, MacOS
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)
Reporter: Thomas Kruse
Assignee: Mark Proctor
Priority: Minor
Since Drools 5.3.0.CR1 concurrent creation of different knowledgebases from filesystem DRL rule definition leads to illegal bytecode.
Reproduceable with Janino and eclipse compiler.
I have a maven based test project which executes the unit tests in parallel, this is the result:
{code}
runFirst(de.trion.drools53.TwoTest): -1
runFirst(de.trion.drools53.FourTest): (class: de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker, method: equals signature: (Ljava/lang/Object;)Z) Expecting to find integer on stack
runSecond(de.trion.drools53.FourTest): (class: de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker, method: equals signature: (Ljava/lang/Object;)Z) Expecting to find integer on stack
runFirst(de.trion.drools53.OneTest): (class: de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker, method: equals signature: (Ljava/lang/Object;)Z) Expecting to find integer on stack
runFirst(de.trion.drools53.ThreeTest): (class: de/trion/drools53/Rule_When_a_user_is_young__print_his_name_DefaultConsequenceInvoker, method: equals signature: (Ljava/lang/Object;)Z) Incompatible object argument for function call
runSecond(de.trion.drools53.ThreeTest): (class: de/trion/drools53/Rule_When_there_is_god__the_light_always_shines_DefaultConsequenceInvoker, method: equals signature: (Ljava/lang/Object;)Z) Unable to pop operand off an empty stack
{code}
Workaround: synchronize access
Not affected: Drools 5.3.0.Beta
--
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
12 years, 1 month
[JBoss JIRA] Created: (JBAS-7637) Unable to read TLD "META-INF/c.tld" from JAR file "vfsfile:xxxxxxxxxxx"
by ali abaza (JIRA)
Unable to read TLD "META-INF/c.tld" from JAR file "vfsfile:xxxxxxxxxxx"
-----------------------------------------------------------------------
Key: JBAS-7637
URL: https://jira.jboss.org/jira/browse/JBAS-7637
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: VFS
Affects Versions: JBossAS-5.1.0.GA
Environment: INFO | jvm 1 | 2010/01/20 12:53:39 | 12:53:39,027 INFO [ZipEntryContext] VFS force nested jars copy-mode is enabled.
INFO | jvm 1 | 2010/01/20 12:53:41 | 12:53:41,589 INFO [ServerInfo] Java version: 1.6.0_17,Sun Microsystems Inc.
INFO | jvm 1 | 2010/01/20 12:53:41 | 12:53:41,589 INFO [ServerInfo] Java Runtime: Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
INFO | jvm 1 | 2010/01/20 12:53:41 | 12:53:41,589 INFO [ServerInfo] Java VM: Java HotSpot(TM) 64-Bit Server VM 14.3-b01,Sun Microsystems Inc.
INFO | jvm 1 | 2010/01/20 12:53:41 | 12:53:41,589 INFO [ServerInfo] OS-System: Windows Server 2008 6.0,amd64
INFO | jvm 1 | 2010/01/20 12:53:41 | 12:53:41,589 INFO [ServerInfo] VM arguments: -Dprogram.name=run.bat -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dorg.jboss.resolver.warning=true -Djava.endorsed.dirs=C:\Sources\GAP\jboss-5.1.0.GA/lib/endorsed -XX:+UseParallelGC -Xmx1024m -XX:MaxPermSize=512m -Djava.library.path=C:\Sources\GAP\wrapper-windows-x86-32-3.3.9/lib -Dwrapper.key=036La5FaQ6ofTM6L -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=3400 -Dwrapper.version=3.3.9 -Dwrapper.native_library=wrapper -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1
Reporter: ali abaza
Assignee: Ales Justin
Priority: Blocker
INFO | jvm 1 | 2010/01/20 12:15:25 | 12:15:25,042 ERROR [ExceptionMappingInterceptor] Unable to read TLD "META-INF/c.tld" from JAR file "vfsfile:/C:/Sources/GAP/jboss-5.1.0.GA/server/sanofi-pasteur/deploy/jbossweb.sar/jstl.jar": java.io.IOException: The system cannot find the path specified
INFO | jvm 1 | 2010/01/20 12:15:25 | org.apache.jasper.JasperException: Unable to read TLD "META-INF/c.tld" from JAR file "vfsfile:/C:/Sources/GAP/jboss-5.1.0.GA/server/sanofi-pasteur/deploy/jbossweb.sar/jstl.jar": java.io.IOException: The system cannot find the path specified
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:181)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:182)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:429)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:491)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1438)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.Parser.parse(Parser.java:137)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:171)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.Compiler.compile(Compiler.java:313)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.compiler.Compiler.compile(Compiler.java:300)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
INFO | jvm 1 | 2010/01/20 12:15:25 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:638)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:543)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:480)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.module.sitemesh.filter.PageFilter.writeDecorator(PageFilter.java:173)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.module.sitemesh.filter.PageFilter.applyDecorator(PageFilter.java:158)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:62)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:638)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:444)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:310)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
INFO | jvm 1 | 2010/01/20 12:15:25 | at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
INFO | jvm 1 | 2010/01/20 12:15:25 | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
INFO | jvm 1 | 2010/01/20 12:15:25 | at java.lang.Thread.run(Thread.java:619)
--
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
12 years, 1 month
[JBoss JIRA] (JBRULES-3240) Unable to build expression for 'inline-eval' when using Lists of objects
by Richard Ambridge (Created) (JIRA)
Unable to build expression for 'inline-eval' when using Lists of objects
------------------------------------------------------------------------
Key: JBRULES-3240
URL: https://issues.jboss.org/browse/JBRULES-3240
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-compiler
Affects Versions: 5.3.0.CR1
Environment: Ubuntu, JDK 1.6.0.26
Reporter: Richard Ambridge
Assignee: Mark Proctor
If a Rule has a .size== in when and the variable is an Object, then we get the following:-
Unable to build expression for 'inline-eval' : [Error: incompatible types in statement: class java.lang.Integer (compared from: class droolstesting.SubType)]
Full example:
Rule:
package droolstesting
rule "rule2"
dialect "mvel"
when
$m : MyItem(items!=null || items.size == 0)
then
System.out.println("Got 0");
retract($m)
end
MyItems.java:
package droolstesting;
import java.util.ArrayList;
import java.util.List;
public class MyItem {
int number=0;
String string="empty";
List<SubType> items=new ArrayList<SubType>();
public List<SubType> getItems() {
return items;
}
public void setItems(List<SubType> items) {
this.items = items;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
}
SubType.java:
package droolstesting;
public class SubType {
String name="";
}
Main.java:
package droolstesting;
import java.io.File;
import java.io.IOException;
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
import org.drools.io.ResourceFactory;
/**
*
* @author richarda
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException, DroolsParserException {
PackageBuilder pkgBuilder = new PackageBuilder();
pkgBuilder.addPackageFromDrl(ResourceFactory.newClassPathResource("rule1.drl"));
if (pkgBuilder.hasErrors()) {
System.err.println(pkgBuilder.getErrors().toString());
throw new RuntimeException("Unable to compile rules");
}
pkgBuilder.addPackageFromDrl(ResourceFactory.newClassPathResource("rule2.drl"));
if (pkgBuilder.hasErrors()) {
System.err.println(pkgBuilder.getErrors().toString());
throw new RuntimeException("Unable to compile rules");
}
}
}
Result:
run:
Unable to build expression for 'inline-eval' : [Error: incompatible types in statement: class java.lang.Integer (compared from: class droolstesting.SubType)]
[Near : {... items != null || items.size == 0 ....}]
^
[Line: 6, Column: 14]'items != null || items.size == 0'
[Error: incompatible types in statement: class java.lang.Integer (compared from: class droolstesting.SubType)]
[Near : {... items != null || items.size == 0 ....}]
^
[Line: 6, Column: 14] : [Rule name='rule2']
[Error: incompatible types in statement: class java.lang.Integer (compared from: class droolstesting.SubType)]
[Near : {... items != null || items.size == 0 ....}]
^
[Line: 1, Column: 18]
Exception in thread "main" java.lang.RuntimeException: Unable to compile rules
at droolstesting.Main.main(Main.java:32)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
--
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
12 years, 1 month
[JBoss JIRA] Created: (JBRULES-3095) MVEL equality is not working as in 5.1.1
by Mauricio Salatino (JIRA)
MVEL equality is not working as in 5.1.1
----------------------------------------
Key: JBRULES-3095
URL: https://issues.jboss.org/browse/JBRULES-3095
Project: Drools
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Reporter: Mauricio Salatino
Assignee: Mark Proctor
Attachments: MvelEquality.zip
There is a different behavior caused by what I think is an MVEL regretion in the version that it's being used in 5.3.0.SNAPSHOT.
Patient( groupName == "ceftazidime susc islt" || groupName == "ceftfsdfsazidime susc islt") // this doesn't work
and
Patient( groupName == "ceftazidime susc islt") // This works!!
The field groupName is an Object that overrides the method equals following the java convention for comparing objects.
I'm attaching an isolated unit test showing this problem.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (JBRULES-2518) equal sign (=) in string literal in MVEL modify statement causes error
by Steve Miner (JIRA)
equal sign (=) in string literal in MVEL modify statement causes error
----------------------------------------------------------------------
Key: JBRULES-2518
URL: https://jira.jboss.org/browse/JBRULES-2518
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-core (expert)
Affects Versions: 5.0.1.FINAL
Environment: Mac OS X 10.6.3, Java 1.6
Reporter: Steve Miner
Assignee: Mark Proctor
rule "mvel equal sign bug"
dialect "mvel"
when
$d: Dog(name == "Bertie")
then
modify ($d) {name = "Bertie = Boy"};
end
Note the string literal for the new value for name contains an equal sign (=). That causes an error. Apparently, the modify macro or the MVEL parser is choking on the equal sign.
java.lang.Error: org.drools.rule.InvalidRulePackage: Unable to build expression for 'consequence': [Error: unterminated literal]
[Near : {... h ($d) {name = "Bertie = Boy"} ....}]
^
[Line: 1, Column: 43] ' modify ($d) {name = "Bertie = Boy"};
' : [Rule name='mvel equal sign bug']
If I remove the "=" from inside the string literal (substituting "is a"), it works as expected.
rule "mvel equal sign bug"
dialect "mvel"
when
$d: Dog(name == "Bertie")
then
modify ($d) {name = "Bertie is a Boy"};
end
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month