security.drl fails to compile with strange errors
jonne.deprez Jan 19, 2010 7:52 PMEven a simple security.drl file fails to compile and generates errors that I don't understand...
I'm using Seam 2.2.0.GA with the drools libraries provided by seam. Any hints are highly appreciated!
package eu.eee.havenantwerpen.SurePermissions; dialect 'mvel' import java.security.Principal; import org.jboss.seam.security.permission.PermissionCheck; import org.jboss.seam.security.Role; rule CreateAccount no-loop activation-group "permissions" when Role(name == "admin") $c: PermissionCheck(target == "surveyHome", action == "read", granted == false) then $c.grant(); end;
Stacktrace:
19:42:13,768 ERROR [STDERR] [Error: Failed to compile: 1 compilation error(s):
- (1,1) unqualified type in strict mode for: e]
[Near : {... Unknown ....}]
^
[Line: 1, Column: 0]
19:42:13,769 ERROR [STDERR] at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:72)
19:42:13,769 ERROR [STDERR] at org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:365)
19:42:13,769 ERROR [STDERR] at org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:288)
19:42:13,769 ERROR [STDERR] at org.drools.base.mvel.MVELConsequence.compile(MVELConsequence.java:49)
19:42:13,769 ERROR [STDERR] at org.drools.rule.builder.dialect.mvel.MVELConsequenceBuilder.build(MVELConsequenceBuilder.java:107)
19:42:13,769 ERROR [STDERR] at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:86)
19:42:13,769 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1159)
19:42:13,769 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:649)
19:42:13,769 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:278)
19:42:13,769 ERROR [STDERR] at org.jboss.seam.drools.RuleBase.compileRuleBase(RuleBase.java:81)
19:42:13,769 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
19:42:13,769 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
19:42:13,769 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
19:42:13,769 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
19:42:13,769 ERROR [STDERR] at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.callComponentMethod(Component.java:2249)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.callCreateMethod(Component.java:2172)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.newInstance(Component.java:2132)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.getInstance(Component.java:2021)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.getInstance(Component.java:1983)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.getInstance(Component.java:1977)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:148)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:51)
19:42:13,770 ERROR [STDERR] at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
19:42:13,770 ERROR [STDERR] at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
19:42:13,770 ERROR [STDERR] at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.core.Expressions$1.getValue(Expressions.java:112)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component$ELInitialValue.getValue(Component.java:2531)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.initialize(Component.java:1527)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.postConstructJavaBean(Component.java:1453)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.postConstruct(Component.java:1376)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.Component.newInstance(Component.java:2129)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.contexts.Lifecycle.beginSession(Lifecycle.java:233)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.contexts.ServletLifecycle.beginSession(ServletLifecycle.java:155)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.servlet.SeamListener.sessionCreated(SeamListener.java:46)
19:42:13,770 ERROR [STDERR] at org.apache.catalina.session.StandardSession.tellNew(StandardSession.java:397)
19:42:13,770 ERROR [STDERR] at org.apache.catalina.session.StandardSession.setId(StandardSession.java:369)
19:42:13,770 ERROR [STDERR] at org.apache.catalina.session.ManagerBase.createSession(ManagerBase.java:829)
19:42:13,770 ERROR [STDERR] at org.apache.catalina.session.StandardManager.createSession(StandardManager.java:291)
19:42:13,770 ERROR [STDERR] at org.apache.catalina.connector.Request.doGetSession(Request.java:2367)
19:42:13,770 ERROR [STDERR] at org.apache.catalina.connector.Request.getSession(Request.java:2094)
19:42:13,770 ERROR [STDERR] at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
19:42:13,770 ERROR [STDERR] at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:844)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.web.IdentityRequestWrapper.<init>(IdentityRequestWrapper.java:23)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
19:42:13,770 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
19:42:13,771 ERROR [STDERR] at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
19:42:13,771 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
19:42:13,771 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
19:42:13,771 ERROR [STDERR] at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
19:42:13,771 ERROR [STDERR] at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
19:42:13,771 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
19:42:13,771 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
19:42:13,771 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
19:42:13,771 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
19:42:13,771 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
19:42:13,771 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
19:42:13,771 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
19:42:13,771 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
19:42:13,771 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
19:42:13,772 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
19:42:13,772 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
19:42:13,774 ERROR [RuleBase] errors parsing rules in: security.drl
19:42:13,776 ERROR [RuleBase] Unable to build expression for 'consequence': Failed to compile: 1 compilation error(s):
- (1,1) unqualified type in strict mode for: e ' $c.grant();
e' (security.drl)
19:42:13,855 ERROR [[/HavenAntwerpen]] Session event listener threw exception
org.jboss.seam.InstantiationException: Could not instantiate Seam component: org.jboss.seam.security.ruleBasedPermissionResolver
at org.jboss.seam.Component.newInstance(Component.java:2144)
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
at org.jboss.seam.contexts.Lifecycle.beginSession(Lifecycle.java:233)
at org.jboss.seam.contexts.ServletLifecycle.beginSession(ServletLifecycle.java:155)
at org.jboss.seam.servlet.SeamListener.sessionCreated(SeamListener.java:46)
at org.apache.catalina.session.StandardSession.tellNew(StandardSession.java:397)
at org.apache.catalina.session.StandardSession.setId(StandardSession.java:369)
at org.apache.catalina.session.ManagerBase.createSession(ManagerBase.java:829)
at org.apache.catalina.session.StandardManager.createSession(StandardManager.java:291)
at org.apache.catalina.connector.Request.doGetSession(Request.java:2367)
at org.apache.catalina.connector.Request.getSession(Request.java:2094)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:844)
at org.jboss.seam.web.IdentityRequestWrapper.<init>(IdentityRequestWrapper.java:23)
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jboss.seam.InstantiationException: Could not instantiate Seam component: securityRules
at org.jboss.seam.Component.newInstance(Component.java:2144)
at org.jboss.seam.Component.getInstance(Component.java:2021)
at org.jboss.seam.Component.getInstance(Component.java:1983)
at org.jboss.seam.Component.getInstance(Component.java:1977)
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:148)
at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:51)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.jboss.seam.core.Expressions$1.getValue(Expressions.java:112)
at org.jboss.seam.Component$ELInitialValue.getValue(Component.java:2531)
at org.jboss.seam.Component.initialize(Component.java:1527)
at org.jboss.seam.Component.postConstructJavaBean(Component.java:1453)
at org.jboss.seam.Component.postConstruct(Component.java:1376)
at org.jboss.seam.Component.newInstance(Component.java:2129)
... 54 more
Caused by: org.drools.rule.InvalidRulePackage: Unable to build expression for 'consequence': Failed to compile: 1 compilation error(s):
- (1,1) unqualified type in strict mode for: e ' $c.grant();
e' : [Rule name='CreateAccount']
at org.drools.rule.Package.checkValidity(Package.java:477)
at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:434)
at org.drools.reteoo.ReteooRuleBase.addPackage(ReteooRuleBase.java:388)
at org.jboss.seam.drools.RuleBase.compileRuleBase(RuleBase.java:121)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144)
at org.jboss.seam.Component.callComponentMethod(Component.java:2249)
at org.jboss.seam.Component.callCreateMethod(Component.java:2172)
at org.jboss.seam.Component.newInstance(Component.java:2132)
... 70 moreWhat could this
unqualified type in strict mode for: e
mean?