 
                                        
                                
                         
                        
                                
                                
                                        
                                                
                                        
                                        
                                        [JBoss JIRA] Created: (JGRP-457) Optimization: make threads return immediately if NAKACK has another active thread for the same sender
                                
                                
                                
                                    
                                        by Bela Ban (JIRA)
                                    
                                
                                
                                        Optimization: make threads return immediately if NAKACK has another active thread for the same sender
-----------------------------------------------------------------------------------------------------
                 Key: JGRP-457
                 URL: http://jira.jboss.com/jira/browse/JGRP-457
             Project: JGroups
          Issue Type: Feature Request
            Reporter: Bela Ban
         Assigned To: Bela Ban
            Priority: Minor
             Fix For: 2.5
In NAKACK, when a thread places a message for sender S into the NakReceiverWindow NRW, it subsequently acquires a lock on NRW (lock by sender) and removes as many messages as possible and passes them up.
If many threads do this at the same time, all threads but one are blocked, and - when finally unblocked - usually return. This causes context switches and possibly cache flushing, so a better way would be to have the threads check whether another thread is already removing messages using a CAS operation *before* acquiring the lock.
The effect should be that no threads will wait on the lock unnecessarily, and thus fewer context switches, and more threads available to the pool.
-- 
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
        
                                
                         
                        
                                
                                1 week, 6 days
                        
                        
                 
         
 
        
            
        
        
        
            
        
        
        
                
                        
                                
                                 
                                        
                                
                         
                        
                                
                                
                                        
                                                
                                        
                                        
                                        [JBoss JIRA] Created: (JBAS-7882) Wrong provider code base for security provider included in packed ear
                                
                                
                                
                                    
                                        by Petr H (JIRA)
                                    
                                
                                
                                        Wrong provider code base for security provider included in packed ear
---------------------------------------------------------------------
                 Key: JBAS-7882
                 URL: https://jira.jboss.org/jira/browse/JBAS-7882
             Project: JBoss Application Server
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: VFS
    Affects Versions: JBossAS-6.0.0.M2, JBossAS-5.1.0.GA
         Environment: Any OS, JDK 5 and 6, JBoss AS 5.1.0 and 6.0.0.M2
            Reporter: Petr H
We've got applications which uses the IAIK JCE provider (http://jce.iaik.tugraz.at/sic/Products/Core-Crypto-Toolkits/JCA-JCE) whose library is included directly in our application.
On JBoss AS 5 and later, we can't use this provider as usually.
The new VFS mechanism seems to break the path determination to the IAIK provider library (needed to determine provider code base) - it still points into the ear/war structure inside the server deploy directory but as all this is packed into one ear file, the provider verification.fails because of unsigned ear/war and thus the following exception is thrown:
2010-04-01 15:04:20,890 ERROR [STDERR] (http-0.0.0.0-8180-1) java.lang.SecurityException: JCE cannot authenticate the provider IAIK
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at javax.crypto.Cipher.getInstance(DashoA13*..)
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at javax.crypto.Cipher.getInstance(DashoA13*..)
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at iaik.test.ControllerServlet.service(ControllerServlet.java:123)
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2010-04-01 15:04:20,893 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:905)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:592)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2036)
2010-04-01 15:04:20,894 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at java.lang.Thread.run(Thread.java:619)
2010-04-01 15:04:20,895 ERROR [STDERR] (http-0.0.0.0-8180-1) Caused by: java.util.jar.JarException: Cannot parse jar:file:/opt/jboss-5.1.0.GA/server/test1/deploy/IAIKTest.ear!/IAIKTestWeb.war
2010-04-01 15:04:20,895 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at javax.crypto.SunJCE_c.a(DashoA13*..)
2010-04-01 15:04:20,895 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at javax.crypto.SunJCE_b.b(DashoA13*..)
2010-04-01 15:04:20,895 ERROR [STDERR] (http-0.0.0.0-8180-1) 	at javax.crypto.SunJCE_b.a(DashoA13*..)
2010-04-01 15:04:20,895 ERROR [STDERR] (http-0.0.0.0-8180-1) 	... 24 more
This works when one of tho three mentioned workarounds is used.
The most interesting of course is the third workaround for which the code base corectly points to the temporary IAIK library instance in the java.io.tmpdir:
2010-04-01 15:09:51,291 INFO  [STDOUT] (http-0.0.0.0-8180-1) Provider code base: file:/tmp/nestedjar2481829661547119990.tmp
I'll attach a simple testcase ear (IAIKTest.ear) which contains an evaluation version of IAIK provider library (thanks for permission to the IAIK authors) and a simple servlet (including source) which demonstrates the problem.
All you need to do is to have the unrestricted JCE policy files installed in your JRE and then just put the IAIKTest.ear into the deploy directory, start the JBoss instance and access the test servlet URL in browser, for example: http://localhost:8080/IAIKTestWeb/ControllerServlet
On init (which happens on start) it will register the IAIK provider
On service (after you access it in browser) it will attempt to get some cipher instance and here it fails.
I'll also attach two log files covering the problem:
- server-default.log with default server setup where the issue occurs 
- server-forceVfsJar.log with jboss.vfs.forceVfsJar=true where the issue doesn't occur
Also I think this is more generic problem because we had similar issues, where some jar or resource location was pointing to the packed ear/war structure inside the deploy directory instead of those VFS temporary locations, with our own code (when attemting to obtain full path) and had to perform some modifications in order to make it working. The same set of workarounds could resolve these issues as well.
-- 
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, 11 months
                        
                        
                 
         
 
        
            
        
        
        
            
        
        
        
                
                        
                                
                                 
                                        
                                
                         
                        
                                
                                
                                        
                                                
                                        
                                        
                                        [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, 11 months
                        
                        
                 
         
 
        
            
        
        
        
            
        
        
        
                
                        
                                
                                 
                                        
                                
                         
                        
                                
                                
                                        
                                                
                                        
                                        
                                        [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, 11 months
                        
                        
                 
         
 
        
            
        
        
        
                
                        
                                
                                 
                                        
                                
                         
                        
                                
                                
                                        
                                                
                                        
                                        
                                        [JBoss JIRA] Created: (JBRULES-2406) Unable to create Field extractor error caused by methods like public boolean setTime()
                                
                                
                                
                                    
                                        by Jos Hendriks (JIRA)
                                    
                                
                                
                                        Unable to create Field extractor error caused by methods like public boolean setTime()
--------------------------------------------------------------------------------------
                 Key: JBRULES-2406
                 URL: https://jira.jboss.org/jira/browse/JBRULES-2406
             Project: Drools
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: drools-compiler
    Affects Versions: 5.1.0.M1, 5.0.1.FINAL
            Reporter: Jos Hendriks
            Assignee: Mark Proctor
I used The clipse plugin to create a new drools project and added the example java class and rule file.
I have added the method below to the Message class:
		public boolean setTime() {
			return true;
		}
This result in the following error messages:
Unable to create Field Extractor for 'status' of '[ClassObjectType class=com.sample.DroolsTest$Message]' in rule 'Hello World' : [Rule name='Hello World']
Unable to create Field Extractor for 'message' : [Rule name='Hello World']
org.drools.RuntimeDroolsException: java.lang.ArrayIndexOutOfBoundsException: 0
Unable to create Field Extractor for 'status' of '[ClassObjectType class=com.sample.DroolsTest$Message]' in rule 'GoodBye' : [Rule name='GoodBye']
Unable to create Field Extractor for 'message' : [Rule name='GoodBye']
org.drools.RuntimeDroolsException: java.lang.ArrayIndexOutOfBoundsException: 0
Rule Compilation error : [Rule name='Hello World']
	com/sample/Rule_Hello_World_0.java (7:416) : myMessage cannot be resolved
Rule Compilation error : [Rule name='GoodBye']
	com/sample/Rule_GoodBye_0.java (7:343) : myMessage cannot be resolved
java.lang.IllegalArgumentException: Could not parse knowledge.
	at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:46)
	at com.sample.DroolsTest.main(DroolsTest.java:23)
Adding a parameter to setTime or renameing it to something else then setXxxx, storeTime for example, does not result in an error.
-- 
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, 11 months
                        
                        
                 
         
 
        
            
        
        
        
                
                        
                                
                                 
                                        
                                
                         
                        
                                
                                
                                        
                                                
                                        
                                        
                                        [JBoss JIRA] Created: (JBRULES-2045) Rules Fact Error In Complex Condition Structure
                                
                                
                                
                                    
                                        by Hao Chen (JIRA)
                                    
                                
                                
                                        Rules Fact Error In Complex Condition Structure
-----------------------------------------------
                 Key: JBRULES-2045
                 URL: https://jira.jboss.org/jira/browse/JBRULES-2045
             Project: JBoss Drools
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: drools-core
    Affects Versions: 4.0.6
            Reporter: Hao Chen
            Assignee: Mark Proctor
We are running into a complex production rule that either doesn't work or generate errors. I debugged and it seems Drools is not using the correct fact for some segments of the rule conditions.  Steps to reproduce
1. Build the attached test case
2. Run the DroolsDefectTest junit test, it should print value "Worked!" on the output console.
3. Modify the rule by remove the commented condition that uses variable b2.
4. Run the test again. 
 Expected result: the rule should output "Worked!" again. 
 Actual result: failed with error: 
org.drools.RuntimeDroolsException: org.drools.test.Rule_test_0Eval4Invoker@68f1f17a : java.lang.NumberFormatException: For input string: "Y"
	at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:82)
	at org.drools.reteoo.EvalConditionNode.assertTuple(EvalConditionNode.java:148)
	at org.drools.reteoo.SingleTupleSinkAdapter.propagateAssertTuple(SingleTupleSinkAdapter.java:20)
	at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:156)
	at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)
	at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
	at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:299)
	at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162)
	at org.drools.reteoo.Rete.assertObject(Rete.java:175)
	at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)
	at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)
	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:915)
	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:887)
	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:688)
	at com.firstbest.rules.DroolsDefectTest.test_drools(DroolsDefectTest.java:35)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.NumberFormatException: For input string: "Y"
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.valueOf(Unknown Source)
	at com.firstbest.rules.Field.intValue(Field.java:29)
	at org.drools.test.Rule_test_0.eval4(Rule_test_0.java:32)
	at org.drools.test.Rule_test_0Eval4Invoker.evaluate(Rule_test_0Eval4Invoker.java:20)
	at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:77)
	... 32 more
-- 
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, 11 months
                        
                        
                 
         
 
        
            
        
        
        
                
                        
                                
                                 
                                        
                                
                         
                        
                                
                                
                                        
                                                
                                        
                                        
                                        [JBoss JIRA] Created: (JBRULES-2123) issue with the call of a drl function
                                
                                
                                
                                    
                                        by Marco Ghanitab (JIRA)
                                    
                                
                                
                                        issue with the call of a drl function
-------------------------------------
                 Key: JBRULES-2123
                 URL: https://jira.jboss.org/jira/browse/JBRULES-2123
             Project: JBoss Drools
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: drools-core
    Affects Versions: 5.0.1.FINAL
            Reporter: Marco Ghanitab
            Assignee: Mark Proctor
            Priority: Minor
in a drl file with a rule "reset" ad a function "formatDate",a bad behaviour is verified when is called the function in the "when" block..it call the function many times, but if the function called is stored in a external java file (not drl) everything works fine, and it call the function only 2 times (correct).
Here the code of the drl file:
rule "reset"
        when
                $conversation:Conversation(resource.code == "sms", tickets.size > 0)
                not Discount(date == (formatDate($conversation.getStopDate())))
        then 
                Discount discount = new Discount();
                discount.setDate(formatDate($conversation.getStopDate()));
                discount.setQuantity(495);
                insert(discount);               
                System.out.println("reset " + discount.getDate());
end
 
declare Discount
   date : String
   quantity : int
end
 
function String formatDate(java.util.Date date) {
        java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("dd/MM/yy");
        return formatter.format(date);
}
-- 
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, 11 months