[JBoss JIRA] (DROOLS-5115) executable model fails with negation and BigDecimal
by Toshiya Kobayashi (Jira)
[ https://issues.redhat.com/browse/DROOLS-5115?page=com.atlassian.jira.plug... ]
Toshiya Kobayashi updated DROOLS-5115:
--------------------------------------
Story Points: 4
> executable model fails with negation and BigDecimal
> ---------------------------------------------------
>
> Key: DROOLS-5115
> URL: https://issues.redhat.com/browse/DROOLS-5115
> Project: Drools
> Issue Type: Bug
> Components: executable model
> Affects Versions: 7.33.0.Final
> Reporter: Toshiya Kobayashi
> Assignee: Toshiya Kobayashi
> Priority: Major
>
> When you have a rule like:
> {noformat}
> when
> $p : Person(!(money > 20))
> {noformat}
> , executable model fails with an error:
> {noformat}
> bad operand types for binary operator '>'
> first type: java.math.BigDecimal
> second type: int
> {noformat}
> This is because the generated code doesn't use EvaluationUtil.
> {code:java}
> org.drools.model.Rule rule = D.rule("R").build(D.pattern(var_$p).expr("CE47D630E9C0B4A2A149ED40CEC3E3B0",
> (org.drools.modelcompiler.domain.Person _this) -> !(_this.getMoney() > 20),
> D.reactOn("money")),
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-2278) Parallel rules compiling does not take into account JVM container security policy
by Mario Fusco (Jira)
[ https://issues.redhat.com/browse/DROOLS-2278?page=com.atlassian.jira.plug... ]
Mario Fusco updated DROOLS-2278:
--------------------------------
Sprint: 2020 Week 10-12 (from Mar 2)
> Parallel rules compiling does not take into account JVM container security policy
> ---------------------------------------------------------------------------------
>
> Key: DROOLS-2278
> URL: https://issues.redhat.com/browse/DROOLS-2278
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.5.0.Final
> Environment: Linux 2.6.32-696.13.2.el6.x86_64
> OpenJDK Runtime Environment (build 1.8.0_151-b12)
> OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
> Reporter: Dorin Opris
> Assignee: Mario Fusco
> Priority: Major
>
> We deployed Drools 7.5.0.Final libraries in a java container (commercial product) which specifies a security manager and a policy.
> When running the container with small Drools packages (i.e. number of rules is less than 10) processing goes very well. When it comes to more rules the following exception is issued:
> SEVERE Failed to instantiate <container_unit>; Caused by: org.jini.rio.core.JSBInstantiationException:
> java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "createClassLoader")
> at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
> at java.security.AccessController.checkPermission(AccessController.java:884)
> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
> at java.lang.SecurityManager.checkCreateClassLoader(SecurityManager.java:611)
> at java.lang.ClassLoader.checkCreateClassLoader(ClassLoader.java:274)
> at java.lang.ClassLoader.<init>(ClassLoader.java:316)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.<init>(JavaDialectRuntimeData.java:573)
> at org.drools.core.rule.JavaDialectRuntimeData.makeClassLoader(JavaDialectRuntimeData.java:555)
> at org.drools.core.rule.JavaDialectRuntimeData.onAdd(JavaDialectRuntimeData.java:238)
> at org.drools.compiler.rule.builder.dialect.java.JavaDialect.<init>(JavaDialect.java:189)
> at org.drools.compiler.rule.builder.dialect.java.JavaDialectConfiguration.newDialect(JavaDialectConfiguration.java:88)
> at org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl.buildDialectRegistry(KnowledgeBuilderConfigurationImpl.java:377)
> at org.drools.compiler.compiler.PackageRegistry.<init>(PackageRegistry.java:51)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.createPackageRegistry(.java:1051)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.lambda$getOrCreatePackageRegistry$0(KnowledgeBuilderImpl.java:1026)
> at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.getOrCreatePackageRegistry(KnowledgeBuilderImpl.java:1026)
> at org.drools.compiler.builder.impl.TypeDeclarationCache.createTypeDeclarationForBean(TypeDeclarationCache.java:262)
> at org.drools.compiler.builder.impl.TypeDeclarationCache.getAndRegisterTypeDeclaration(TypeDeclarationCache.java:90)
> at org.drools.compiler.builder.impl.TypeDeclarationBuilder.getAndRegisterTypeDeclaration(TypeDeclarationBuilder.java:69)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.getAndRegisterTypeDeclaration(KnowledgeBuilderImpl.java:1781)
> at org.drools.compiler.rule.builder.PatternBuilder.processClassObjectType(PatternBuilder.java:306)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:181)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:151)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:133)
> at org.drools.compiler.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:66)
> at org.drools.compiler.rule.builder.RuleBuilder.build(RuleBuilder.java:105)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addRule(KnowledgeBuilderImpl.java:1202)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.lambda$compileRulesLevel$3(KnowledgeBuilderImpl.java:1163)
> at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
> at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
> at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
> at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
> at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
> at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
> at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
> at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
> It seems Drools 7.* version has introduced parallel compilation of rules using Java platform forkJoin threads that, according to its spec, are a bit security restrictive in the sense that container security policy or container class loader access control context is ignored.
> "If a SecurityManager is present and no factory is specified, then the default pool uses a factory supplying threads that have no Permissions enabled. The system class loader is used to load these classes." https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPo...
> Could Drools fix this serial-parallel asymmetric output of rules compilation logic? Or it's just a Java issue like https://bugs.java.com/view_bug.do?bug_id=8184335 ?
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-4996) NotSerializableException is thrown at the serialization of KieBase
by Mario Fusco (Jira)
[ https://issues.redhat.com/browse/DROOLS-4996?page=com.atlassian.jira.plug... ]
Mario Fusco updated DROOLS-4996:
--------------------------------
Sprint: 2020 Week 10-12 (from Mar 2)
> NotSerializableException is thrown at the serialization of KieBase
> -------------------------------------------------------------------
>
> Key: DROOLS-4996
> URL: https://issues.redhat.com/browse/DROOLS-4996
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.25.0.Final
> Reporter: Róbert István
> Assignee: Mario Fusco
> Priority: Minor
>
> NotSerializableException is thrown at the serialization of KieBase when the 'when' part of a rule contains a query call.
> InterceptorMap static subclass doesn't implement the Serializable interface.
> When I corrected the source of MVELCompilationUnit and rebuild the drools-core.jar, the issue disappeared.
>
> Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.drools.core.base.mvel.MVELCompilationUnit$InterceptorMap
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1576)
> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2286)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2210)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2286)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2210)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at org.drools.core.rule.QueryArgument$Expression.readExternal(QueryArgument.java:145)
> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1974)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1566)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at org.drools.core.rule.QueryElement.readExternal(QueryElement.java:75)
> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at java.util.ArrayList.readObject(ArrayList.java:797)
> at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at org.drools.core.rule.GroupElement.readExternal(GroupElement.java:64)
> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at org.drools.core.definitions.rule.impl.RuleImpl.readExternal(RuleImpl.java:209)
> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at org.drools.core.rule.JavaDialectRuntimeData.readExternal(JavaDialectRuntimeData.java:195)
> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at java.util.HashMap.readObject(HashMap.java:1412)
> at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at org.drools.core.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:60)
> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at org.drools.core.definitions.impl.KnowledgePackageImpl.readExternal(KnowledgePackageImpl.java:306)
> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at java.util.HashMap.readObject(HashMap.java:1412)
> at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> at org.drools.core.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:442)
> at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1418)
> at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
> at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205)
> at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
> at org.jboss.ejb.protocol.remote.EJBClientChannel$MethodInvocation$MethodCallResultProducer.apply(EJBClientChannel.java:1208)
> ... 64 more
> Caused by: java.io.NotSerializableException: org.drools.core.base.mvel.MVELCompilationUnit$InterceptorMap
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at org.drools.core.rule.QueryArgument$Expression.writeExternal(QueryArgument.java:138)
> at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at org.drools.core.rule.QueryElement.writeExternal(QueryElement.java:64)
> at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at java.util.ArrayList.writeObject(ArrayList.java:762)
> at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at org.drools.core.rule.GroupElement.writeExternal(GroupElement.java:69)
> at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at org.drools.core.definitions.rule.impl.RuleImpl.writeExternal(RuleImpl.java:169)
> at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at org.drools.core.rule.JavaDialectRuntimeData.writeExternal(JavaDialectRuntimeData.java:132)
> at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at java.util.HashMap.internalWriteEntries(HashMap.java:1785)
> at java.util.HashMap.writeObject(HashMap.java:1362)
> at sun.reflect.GeneratedMethodAccessor1251.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at org.drools.core.rule.DialectRuntimeRegistry.writeExternal(DialectRuntimeRegistry.java:49)
> at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at org.drools.core.definitions.impl.KnowledgePackageImpl.writeExternal(KnowledgePackageImpl.java:257)
> at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at java.util.HashMap.internalWriteEntries(HashMap.java:1785)
> at java.util.HashMap.writeObject(HashMap.java:1362)
> at sun.reflect.GeneratedMethodAccessor1251.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> at org.drools.core.impl.KnowledgeBaseImpl.writeExternal(KnowledgeBaseImpl.java:548)
> at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:908)
> at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
> at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
> at org.jboss.ejb.protocol.remote.EJBServerChannel$RemotingInvocationRequest$1.writeInvocationResult(EJBServerChannel.java:956)
> at org.jboss.as.ejb3.remote.AssociationImpl.lambda$receiveInvocationRequest$0(AssociationImpl.java:234)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: an exception which occurred:
> in object of type org.drools.core.impl.KnowledgeBaseImpl
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5115) executable model fails with negation and BigDecimal
by Kris Verlaenen (Jira)
[ https://issues.redhat.com/browse/DROOLS-5115?page=com.atlassian.jira.plug... ]
Kris Verlaenen updated DROOLS-5115:
-----------------------------------
Sprint: 2020 Week 07-09 (from Feb 10), 2020 Week 10-12 (from Mar 2) (was: 2020 Week 07-09 (from Feb 10))
> executable model fails with negation and BigDecimal
> ---------------------------------------------------
>
> Key: DROOLS-5115
> URL: https://issues.redhat.com/browse/DROOLS-5115
> Project: Drools
> Issue Type: Bug
> Components: executable model
> Affects Versions: 7.33.0.Final
> Reporter: Toshiya Kobayashi
> Assignee: Toshiya Kobayashi
> Priority: Major
>
> When you have a rule like:
> {noformat}
> when
> $p : Person(!(money > 20))
> {noformat}
> , executable model fails with an error:
> {noformat}
> bad operand types for binary operator '>'
> first type: java.math.BigDecimal
> second type: int
> {noformat}
> This is because the generated code doesn't use EvaluationUtil.
> {code:java}
> org.drools.model.Rule rule = D.rule("R").build(D.pattern(var_$p).expr("CE47D630E9C0B4A2A149ED40CEC3E3B0",
> (org.drools.modelcompiler.domain.Person _this) -> !(_this.getMoney() > 20),
> D.reactOn("money")),
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5056) [DMN Designer] Sometimes the nodes inside Decision Service are wrong positioned
by Kris Verlaenen (Jira)
[ https://issues.redhat.com/browse/DROOLS-5056?page=com.atlassian.jira.plug... ]
Kris Verlaenen updated DROOLS-5056:
-----------------------------------
Sprint: 2020 Week 07-09 (from Feb 10), 2020 Week 10-12 (from Mar 2) (was: 2020 Week 07-09 (from Feb 10))
> [DMN Designer] Sometimes the nodes inside Decision Service are wrong positioned
> -------------------------------------------------------------------------------
>
> Key: DROOLS-5056
> URL: https://issues.redhat.com/browse/DROOLS-5056
> Project: Drools
> Issue Type: Bug
> Components: DMN Editor
> Reporter: Daniel José dos Santos
> Assignee: Michael Anstis
> Priority: Major
> Labels: drools-tools
> Attachments: issue.mp4, taxRate.dmn
>
>
> Sometimes the nodes inside the Decision Service are positioned outside from the Decision Service when the .DMN is saved an open again.
> I was unable to map exact when this happen, but I noticed that this happens depending on the changes you do in the position and size of the Decision Service and its inner nodes.
> I recorded a video with 2 minutes when the issue happens in the last seconds.
> As it can be notice it takes lots of trials to reproduce the issue.
> Also I was unable to reproduce the issue in the Business Central, so I'm not sure if it is related to DMN Editor in VS Code or DMN Editor itself.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months
[JBoss JIRA] (DROOLS-5051) Mvel type coercion and rounding behavior compatibility between mvel 2.2.8 and 2.4.3
by Kris Verlaenen (Jira)
[ https://issues.redhat.com/browse/DROOLS-5051?page=com.atlassian.jira.plug... ]
Kris Verlaenen updated DROOLS-5051:
-----------------------------------
Sprint: 2020 Week 07-09 (from Feb 10), 2020 Week 10-12 (from Mar 2) (was: 2020 Week 07-09 (from Feb 10))
> Mvel type coercion and rounding behavior compatibility between mvel 2.2.8 and 2.4.3
> -----------------------------------------------------------------------------------
>
> Key: DROOLS-5051
> URL: https://issues.redhat.com/browse/DROOLS-5051
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.33.0.Final
> Reporter: Toshiya Kobayashi
> Assignee: Toshiya Kobayashi
> Priority: Major
> Labels: support
>
> I have rule like as:
> =========
> rule "My Rule"
> no-loop true
> dialect "mvel"
> when
> $info : MyInfo()
> then
> modify ($info) {
> setResult(15 * Math.round( new BigDecimal("49.4") ) / 100 )
> }
> end
> =========
> If I execute this rule in BRMS 6.4.x release (mvel 2.2.8), I will get 7.35 in the response . But if I execute same rule in RHDM 7.4.+ release (mvel 2.4.3) I will 7 in the response.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 2 months