[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
[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
[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
[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
[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
[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
[JBoss JIRA] Created: (JBRULES-2052) DrlDumper does wrong dumps, when lhs contains complex conditions with And.
by Kateryna Rudenko (JIRA)
DrlDumper does wrong dumps, when lhs contains complex conditions with And.
----------------------------------------------------------------------------
Key: JBRULES-2052
URL: https://jira.jboss.org/jira/browse/JBRULES-2052
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-core
Affects Versions: 5.0.0.CR1
Reporter: Kateryna Rudenko
Assignee: Mark Proctor
DrlDumper does wrong dumps, when lhs contains complex conditions with And.
When there is ConditionalElementDescr in other ConditionalElementDescr, DrlDumper prints condition without round brackets. But should, because formed text can not be parsed with DrlParser into the same tree structure.
Example 1.
rule in file "Test1.drl":
rule "continued_rule"
no-loop true
when
($a : Action1() || $b : Action2())
&&
($c : Action3() || $d : Action4())
then
System.out.println("Fired.");
end
And method:
public void test1() throws DroolsParserException
{
DrlParser parser = new DrlParser();
final InputStream drl = getClass().getResourceAsStream(
"Test1.drl");
final PackageDescr packageDescr = parser.parse(drl);
if (parser.hasErrors())
{
Assert.fail(parser.getErrors().toString());
}
final String dump = new DrlDumper().dump(packageDescr);
System.out.println(dump);
}
Output is:
rule "continued_rule"
no-loop true
when
$a : Action1( ) || $b : Action2( ) && $c : Action3( ) || $d : Action4( )
then
System.out.println("Fired.");
end
According to operation priority in this case will be
$a : Action1( ) || ($b : Action2( ) && $c : Action3( )) || $d : Action4( )
and it is quite another operation.
DrlDumper should support brackets to save operation grouping.
Example 2.
Rule
rule "continued_rule2"
no-loop true
when
($a : Action1() && $b : Action2())
||
($c : Action3() && $d : Action4())
then
System.out.println("Fired.");
end
Out after performing test1() from Example 1:
rule "continued_rule"
no-loop true
when
$a : Action1( ) || $c : Action3( )
then
System.out.println("Fired.");
end
DrlDumper lost $b : Action2() and $d : Action4()! It happened because processOrDescrList in DrlDumper.
In string
if ( descrString.endsWith( DrlDumper.eol ) ) {
descrString = descrString.substring( 0,
descrString.indexOf( DrlDumper.eol ) );
}
we lose all subconditions except first line. It should be
if ( descrString.endsWith( DrlDumper.eol ) ) {
descrString = descrString.substring( 0,
descrString.LastIndexOf( DrlDumper.eol ) );
}.
--
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