As far as I know, older versions of Drools were not guaranteed to be
thread-safe,
and the whole (de)serialization subsystem has been upgraded since
5.3.0.Final.
Could you try a later version such as 5.5.0.Final or 5.6.0.CR1?
Bugs and issues are usually reported using JIRA (community) or Bugzilla
(product)
You can find more information on how to report/contribute here:
http://www.jboss.org/contribute
or in the drools documentation, chapter 1.2
Davide
On 12/13/2013 12:39 PM, adarsh.chaini(a)hsbcib.com wrote:
Hi,
We have found that some of the drools classes are not thread safe
and hence causing the whole KB serialisation and deserialisation
issues in a highly concurrent distributed cluster.
The below is an example of one of the instances we have come across
where the usage of a non thread safe collection as instance
variables has caused the issue.
Could someone look into this and advise:
1) If this has been reported /identified and logged somewhere as an
issue already
2)If there has been any fix to problems like this in later versions
of * 5.3.0.Final ?.*
3)If not fixed already what is the process to initiate a fix.
Caused by: java.io.InvalidObjectException: Illegal mappings count: -1
*at java.util.HashMap.readObject(**_HashMap.java:1130_**)*
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(_DelegatingMethodAccessorImpl.java:43_)
at java.lang.reflect.Method.invoke(_Method.java:601_)
at
java.io.ObjectStreamClass.invokeReadObject(_ObjectStreamClass.java:1004_)
at
java.io.ObjectInputStream.readSerialData(_ObjectInputStream.java:1891_)
at
java.io.ObjectInputStream.readOrdinaryObject(_ObjectInputStream.java:1796_)
at
java.io.ObjectInputStream.readObject0(_ObjectInputStream.java:1348_)
at
java.io.ObjectInputStream.readObject(_ObjectInputStream.java:370_)
* at
org.jbpm.workflow.core.DroolsAction.readExternal(**_DroolsAction.java:61_**)*
at
org.jbpm.workflow.core.impl.DroolsConsequenceAction.readExternal(_DroolsConsequenceAction.java:49_)
at
java.io.ObjectInputStream.readExternalData(_ObjectInputStream.java:1835_)
at
java.io.ObjectInputStream.readOrdinaryObject(_ObjectInputStream.java:1794_)
at
java.io.ObjectInputStream.readObject0(_ObjectInputStream.java:1348_)
at
java.io.ObjectInputStream.readObject(_ObjectInputStream.java:370_)
at
org.drools.rule.JavaDialectRuntimeData.readExternal(_JavaDialectRuntimeData.java:182_)
at
java.io.ObjectInputStream.readExternalData(_ObjectInputStream.java:1835_)
at
java.io.ObjectInputStream.readOrdinaryObject(_ObjectInputStream.java:1794_)
at
java.io.ObjectInputStream.readObject0(_ObjectInputStream.java:1348_)
at
java.io.ObjectInputStream.readObject(_ObjectInputStream.java:370_)
at java.util.HashMap.readObject(_HashMap.java:1155_)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(_DelegatingMethodAccessorImpl.java:43_)
at java.lang.reflect.Method.invoke(_Method.java:601_)
at
java.io.ObjectStreamClass.invokeReadObject(_ObjectStreamClass.java:1004_)
at
java.io.ObjectInputStream.readSerialData(_ObjectInputStream.java:1891_)
at
java.io.ObjectInputStream.readOrdinaryObject(_ObjectInputStream.java:1796_)
at
java.io.ObjectInputStream.readObject0(_ObjectInputStream.java:1348_)
at
java.io.ObjectInputStream.readObject(_ObjectInputStream.java:370_)
at
org.drools.rule.DialectRuntimeRegistry.readExternal(_DialectRuntimeRegistry.java:59_)
at
java.io.ObjectInputStream.readExternalData(_ObjectInputStream.java:1835_)
at
java.io.ObjectInputStream.readOrdinaryObject(_ObjectInputStream.java:1794_)
at
java.io.ObjectInputStream.readObject0(_ObjectInputStream.java:1348_)
at
java.io.ObjectInputStream.readObject(_ObjectInputStream.java:370_)
at org.drools.rule.Package.readExternal(_Package.java:197_)
at
java.io.ObjectInputStream.readExternalData(_ObjectInputStream.java:1835_)
at
java.io.ObjectInputStream.readOrdinaryObject(_ObjectInputStream.java:1794_)
at
java.io.ObjectInputStream.readObject0(_ObjectInputStream.java:1348_)
at
java.io.ObjectInputStream.readObject(_ObjectInputStream.java:370_)
at java.util.HashMap.readObject(_HashMap.java:1155_)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(_DelegatingMethodAccessorImpl.java:43_)
at java.lang.reflect.Method.invoke(_Method.java:601_)
at
java.io.ObjectStreamClass.invokeReadObject(_ObjectStreamClass.java:1004_)
at
java.io.ObjectInputStream.readSerialData(_ObjectInputStream.java:1891_)
at
java.io.ObjectInputStream.readOrdinaryObject(_ObjectInputStream.java:1796_)
at
java.io.ObjectInputStream.readObject0(_ObjectInputStream.java:1348_)
at
java.io.ObjectInputStream.readObject(_ObjectInputStream.java:370_)
at
org.drools.common.AbstractRuleBase.readExternal(_AbstractRuleBase.java:270_)
at
org.drools.reteoo.ReteooRuleBase.readExternal(_ReteooRuleBase.java:223_)
at
org.drools.impl.KnowledgeBaseImpl.readExternal(_KnowledgeBaseImpl.java:116_)
at
java.io.ObjectInputStream.readExternalData(_ObjectInputStream.java:1835_)
at
java.io.ObjectInputStream.readOrdinaryObject(_ObjectInputStream.java:1794_)
at
java.io.ObjectInputStream.readObject0(_ObjectInputStream.java:1348_)
at
java.io.ObjectInputStream.readObject(_ObjectInputStream.java:370_)
at
com.hsbc.gbm.dsl.domain.DSLRuleSet$Serializer.createInstance(_DSLRuleSet.java:328_)
at
com.hsbc.gbm.dsl.domain.DSLRuleSet$Serializer.createInstance(_DSLRuleSet.java:1_)
at
com.hsbc.gbm.dsl.domain.AbstractSerializer.deserialize(_AbstractSerializer.java:144_)
Thanks and regards,
*Adarsh CHAINI *
SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC Bank Plc
8 Canada Square, London E14 5HQ, UK
_______________________________________________
Phone Int: (0)79914720 Ext: +44 (0)20 79914720
Mobile +44(0)7595530105
Email _adarsh.chaini(a)hsbcib.com_ <mailto:adarsh.chaini@hsbcib.com>
_______________________________________________
Protect our environment - please only print this if you have to!
************************************************************
HSBC Bank plc may be solicited in the course of its placement efforts
for a new issue, by investment clients of the firm for whom the Bank
as a firm already provides other services. It may equally decide to
allocate to its own proprietary book or with an associate of HSBC
Group. This represents a potential conflict of interest. HSBC Bank plc
has internal arrangements designed to ensure that the firm would give
unbiased and full advice to the corporate finance client about the
valuation and pricing of the offering as well as internal systems,
controls and procedures to identify and manage conflicts of interest.
HSBC Bank plc
Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom
Registered in England - Number 14259
Authorised by the Prudential Regulation Authority and regulated by the
Financial Conduct Authority and the Prudential Regulation Authority
************************************************************
----------------------------------------- SAVE PAPER - THINK BEFORE
YOU PRINT! This transmission has been issued by a member of the HSBC
Group "HSBC" for the information of the addressee only and should not
be reproduced and/or distributed to any other person. Each page
attached hereto must be read in conjunction with any disclaimer which
forms part of it. Unless otherwise stated, this transmission is
neither an offer nor the solicitation of an offer to sell or purchase
any investment. Its contents are based on information obtained from
sources believed to be reliable but HSBC makes no representation and
accepts no responsibility or liability as to its completeness or
accuracy.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users