<font size=2 face="sans-serif">Hi , </font>
<br>
<br><font size=2 face="sans-serif">We have &nbsp;noted another incident
in our &nbsp;testing environment &nbsp;where &nbsp;we have noted that there
is a concurrency issue &nbsp;with the drools and mvel version we are using
&nbsp;where the threads are blocked for a long time resulting &nbsp;the
application node/JVM &nbsp;reach &nbsp;an unexpected state &nbsp;which
needed to be restarted.Could &nbsp;some one look into this &nbsp;if there
is a known defect on this and if it has been resolved in a later version?.</font>
<br>
<br><font size=2 face="sans-serif">Thread[DSLFpmlDataRecordKeepingTradeViewCacheWorker:5,5,DSLFpmlDataRecordKeepingTradeViewCache]</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.util.WeakHashMap.get(WeakHashMap.java:470)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:246)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:224)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:509)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:120)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:381)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:273)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.MVEL.compileExpression(MVEL.java:810)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:426)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:243)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.base.dataproviders.MVELDataProvider.compile(MVELDataProvider.java:83)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.rule.MVELDialectRuntimeData.onBeforeExecute(MVELDialectRuntimeData.java:162)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(DialectRuntimeRegistry.java:138)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:295)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:223)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:116)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1835)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1794)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)</font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">Thread[DSLFpmlDataRecordKeepingCacheWorker:39,5,DSLFpmlDataRecordKeepingCache]</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:386)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.util.WeakHashMap.getTable(WeakHashMap.java:417)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.util.WeakHashMap.get(WeakHashMap.java:464)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:246)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:224)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:509)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:120)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:381)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:273)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.mvel2.MVEL.compileExpression(MVEL.java:810)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:426)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:243)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.base.mvel.MVELPredicateExpression.compile(MVELPredicateExpression.java:69)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.rule.MVELDialectRuntimeData.onBeforeExecute(MVELDialectRuntimeData.java:162)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(DialectRuntimeRegistry.java:138)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:295)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:223)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:116)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1835)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1794)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)</font>
<br>
<br><font size=2 face="sans-serif">We have found a similar BUG in the &nbsp;drools
&nbsp;defect &nbsp; database </font>
<br><a href="https://issues.jboss.org/i#browse/DROOLS-81"><font size=2 face="sans-serif">https://issues.jboss.org/i#browse/DROOLS-81</font></a><font size=2 face="sans-serif">
but the scenarios are bit different.</font>
<br>
<br><font size=2 face="sans-serif">In our case it has happened when we
&nbsp;deserialize the serilized &nbsp;KnowledgeBaseImpl by multiple threads
and it seems &nbsp;that the problem is due to usage &nbsp;of a &nbsp;java.util.WeakHashMap
as a class variable in</font>
<br>
<br><font size=2 face="sans-serif">&nbsp;org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:246)</font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">Thanks<br>
 &amp;<br>
Regards,<br>
Adarsh <br>
<br>
SENIOR LEAD DEVELOPMENT SPECIALIST<br>
SCJP, SCWCD <br>
FINANCE TECHNOLOGY<br>
HSBC BANK PLC HBEU<br>
8 Canada Square,Canary Wharf,<br>
London,E14 5HQ,United Kingdom<br>
------------------------------------------------------<br>
Phone &nbsp; &nbsp; &nbsp; +44 207914720<br>
Mobile &nbsp; &nbsp; &nbsp;07595530105<br>
Email. &nbsp; &nbsp; &nbsp;adarsh.chaini@hsbcib.com<br>
________________________________</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">Imran Shafiq &lt;ishafiq@redhat.com&gt;</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">Adarsh CHAINI/IBEU/HSBC@HSBC</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">17/09/2013 18:55</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">Drools Community Issue.</font></table>
<br>
<hr noshade>
<br>
<br>
<br><font size=2 face="Arial">Hi Ardash,</font>
<br>
<br><font size=2 face="Arial">I've seen details of the recent issue you
have experienced with the community Drools product; I was keen to contact
you regarding this.</font>
<br>
<br><font size=2 face="Arial">We have been a strategic and global supplier
to HSBC for many years, and have built our success largely on our ability
to provide full enterprise services and productised versions of community
products, that are fit for enterprise use.</font>
<br>
<br><font size=2 face="Arial">In the case of community Drools, our productised
version (JBoss BRMS) provides a full testing, certification, commercial
assurance eco-system, and 24*7 SLA support service - which would appear
to be ideally positioned to help address issues such as that which you
are currently experiencing.</font>
<br>
<br><font size=2 face="Arial">Ardash, given the appetite of HSBC to mitigate
the risk associated with the use of community software alone, I would welcome
the opportunity to have a brief initial conversation with you concerning
the above.</font>
<br>
<br><font size=2 face="Arial">Might there be a suitable number for me to
reach you in the coming days?</font>
<br>
<br><font size=2 face="Arial">Kind regards</font>
<br>
<br><font size=2 face="Arial">Imran</font>
<br>
<br><font size=2 face="Arial">Imran Shafiq<br>
Strategic &amp; Global Accounts Team <br>
Red Hat UK<br>
Direct: +44 (0) 1252 362766<br>
Mobile: +44 (0) 7506 765 287<br>
ishafiq@redhat.com<br>
</font><a href=www.europe.redhat.com><font size=2 face="Arial">www.europe.redhat.com</font></a>
<br>
<br><font size=2 face="Arial"><br>
</font>
<br>
<br>
<br><font size=2 face="sans-serif"><br>
<br>
************************************************************<br>
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.<br>
<br>
HSBC Bank plc<br>
Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom<br>
Registered in England - Number 14259<br>
Authorised by the Prudential Regulation Authority and regulated by the
Financial Conduct Authority and the Prudential Regulation Authority<br>
************************************************************<br>
</font>

-----------------------------------------
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.