<font size=3><b>Also remember that even 5.6, while a bit more robust from
that perspective, is not guaranteed to be 100% thread safe.</b></font>
<br>
<br><font size=3>Is there a document that details this robustness and what
has changed ?.</font>
<br>
<br><font size=3><b>Ruleflows, however, have been informally deprecated
in favor of proper bpmn business processes for a while, so not much <br>
was added there, but they should still be supported in 5.6. </b></font>
<br>
<br><font size=2 face="sans-serif">On above , what is the time line
from deprecation to complete removal in future versions?.</font>
<br>
<br><font size=2 face="sans-serif">How easy it is to migrate from the rule
flow to the jbpmn? .Is there a quick migration procedure/tool.</font>
<br>
<br><font size=2 face="sans-serif"><br>
</font>
<br><font size=2 face="sans-serif">Thanks and regards,<br>
</font>
<br><font size=2 color=red face="Arial"><b>Adarsh CHAINI </b></font>
<br><font size=1 face="Arial">SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC
Bank Plc<br>
8 Canada Square, London E14 5HQ, UK</font>
<table>
<tr>
<td><font size=1 color=red face="Arial">_______________________________________________</font>
<br><font size=1><br>
</font>
<table width=100%>
<tr>
<td width=12%>
<td width=87%>
<tr>
<td><font size=1 color=#4f4f4f face="Arial">Phone</font>
<td><font size=1 color=#4f4f4f face="Arial">Int: (0)79914720 Ext: +44 (0)20
79914720</font>
<tr>
<td><font size=1 color=#4f4f4f face="Arial">Mobile</font>
<td><font size=1 color=#4f4f4f face="Arial">+44(0)7595530105</font>
<tr>
<td><font size=1 color=#4f4f4f face="Arial">Email</font>
<td><a href=mailto:adarsh.chaini@hsbcib.com><font size=1 color=red face="Arial"><u>adarsh.chaini@hsbcib.com</u></font></a></table>
<br>
<br><font size=1 color=red face="Arial">_______________________________________________</font>
<br><font size=1 color=#008000 face="Arial">Protect our environment - please
only print this if you have to!</font></table>
<br>
<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">Davide Sottara <dsotty@gmail.com></font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">Rules Users List <rules-users@lists.jboss.org></font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">18/12/2013 07:42</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">Re: [rules-users] Drools KB Object hierarchy
Serilisation and Deserialisation thread safety issue</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Sent by:</font>
<td><font size=1 face="sans-serif">rules-users-bounces@lists.jboss.org</font></table>
<br>
<hr noshade>
<br>
<br>
<br><font size=3>Adarsh, <br>
CR1 is "candidate release 1" and is available from the JBoss
Maven Repositories. 5.6.0.Final will probably be released this week.<br>
There are quite a few internal differences between 5.3 and 5.6, but as
far as I know the APIs have remained the same,<br>
so it should be possible to switch almost effortlessly. Others may be able
to comment on their upgrade experience.<br>
Ruleflows, however, have been informally deprecated in favor of proper
bpmn business processes for a while, so not much <br>
was added there, but they should still be supported in 5.6. <br>
Also remember that even 5.6, while a bit more robust from that perspective,
is not guaranteed to be 100% thread safe.<br>
Davide<br>
<br>
<br>
On 12/17/2013 07:00 AM, </font><a href=mailto:adarsh.chaini@hsbcib.com><font size=3 color=blue><u>adarsh.chaini@hsbcib.com</u></font></a><font size=3>
wrote:</font>
<br><font size=3>Davide</font><font size=2 face="sans-serif">,</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
Thanks for your reply on this.What does </font><font size=3> CR1</font><font size=2 face="sans-serif">
stands for in </font><font size=3>5.6.0.CR1</font><font size=2 face="sans-serif">
and can someone point me to the release life cycle timelines?.</font><font size=3>
</font><font size=2 face="sans-serif"><br>
Also the important aspect is are </font><font size=3>5.6.0.CR1</font><font size=2 face="sans-serif">
and <b>5.5.0.Final</b> versions backward compatible to </font><font size=3>5.3.0.Final</font><font size=2 face="sans-serif">
and fully regressed ?</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
Is there any documentation that describes the major changes like
this .We are mostly using the rule engine with the rule flow aspects
of the product</font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
Thanks and regards,</font><font size=3><br>
</font><font size=2 color=red face="Arial"><b><br>
Adarsh CHAINI </b></font><font size=3><br>
<br>
</font>
<table width=100%>
<tr valign=top>
<td width=9%><font size=1 color=#5f5f5f face="sans-serif">From:</font><font size=3>
</font>
<td width=90%><font size=1 face="sans-serif">Davide Sottara </font><a href=mailto:dsotty@gmail.com><font size=1 color=blue face="sans-serif"><u><dsotty@gmail.com></u></font></a><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font><font size=3>
</font>
<td><a href="mailto:rules-users@lists.jboss.org"><font size=1 color=blue face="sans-serif"><u>rules-users@lists.jboss.org</u></font></a><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">14/12/2013 19:56</font><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">Re: [rules-users] Drools KB Object hierarchy
Serilisation and Deserialisation thread safety issue</font><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Sent by:</font><font size=3>
</font>
<td><a href="mailto:rules-users-bounces@lists.jboss.org"><font size=1 color=blue face="sans-serif"><u>rules-users-bounces@lists.jboss.org</u></font></a></table>
<br><font size=3><br>
</font>
<hr noshade><font size=3><br>
<br>
<br>
As far as I know, older versions of Drools were not guaranteed to be thread-safe,
<br>
and the whole (de)serialization subsystem has been upgraded since 5.3.0.Final.<br>
Could you try a later version such as 5.5.0.Final or 5.6.0.CR1?<br>
<br>
Bugs and issues are usually reported using JIRA (community) or Bugzilla
(product)<br>
You can find more information on how to report/contribute here:</font><font size=3 color=blue><u><br>
</u></font><a href=http://www.jboss.org/contribute><font size=3 color=blue><u>http://www.jboss.org/contribute</u></font></a><font size=3><br>
or in the drools documentation, chapter 1.2<br>
<br>
Davide<br>
<br>
On 12/13/2013 12:39 PM, </font><a href=mailto:adarsh.chaini@hsbcib.com><font size=3 color=blue><u>adarsh.chaini@hsbcib.com</u></font></a><font size=3>
wrote: </font><font size=2 face="sans-serif"><br>
Hi,</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
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.</font><font size=3>
</font><font size=2 face="sans-serif"><br>
<br>
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.</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
Could someone look into this and advise:</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
1) If this has been reported /identified and logged somewhere as
an issue already <br>
2)If there has been any fix to problems like this in later
versions of <b> 5.3.0.Final ?.</b></font><font size=3> </font><font size=2 face="sans-serif"><br>
3)If not fixed already what is the process to initiate a fix.</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
<br>
Caused by: java.io.InvalidObjectException: Illegal mappings count: -1</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
<b>at java.util.HashMap.readObject(</b></font><font size=1 color=#0062e1 face="Segoe UI"><b><u>HashMap.java:1130</u></b></font><font size=1 face="Segoe UI"><b>)</b></font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown
Source)</font><font size=3> </font><font size=1 face="Segoe UI"><br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(</font><font size=1 color=#0062e1 face="Segoe UI"><u>DelegatingMethodAccessorImpl.java:43</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.lang.reflect.Method.invoke(</font><font size=1 color=#0062e1 face="Segoe UI"><u>Method.java:601</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectStreamClass.invokeReadObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectStreamClass.java:1004</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readSerialData(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1891</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readOrdinaryObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1796</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject0(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1348</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:370</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><b><br>
at org.jbpm.workflow.core.DroolsAction.readExternal(</b></font><font size=1 color=#0062e1 face="Segoe UI"><b><u>DroolsAction.java:61</u></b></font><font size=1 face="Segoe UI"><b>)</b></font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at org.jbpm.workflow.core.impl.DroolsConsequenceAction.readExternal(</font><font size=1 color=#0062e1 face="Segoe UI"><u>DroolsConsequenceAction.java:49</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readExternalData(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1835</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readOrdinaryObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1794</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject0(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1348</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:370</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at org.drools.rule.JavaDialectRuntimeData.readExternal(</font><font size=1 color=#0062e1 face="Segoe UI"><u>JavaDialectRuntimeData.java:182</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readExternalData(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1835</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readOrdinaryObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1794</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject0(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1348</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:370</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.util.HashMap.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>HashMap.java:1155</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown
Source)</font><font size=3> </font><font size=1 face="Segoe UI"><br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(</font><font size=1 color=#0062e1 face="Segoe UI"><u>DelegatingMethodAccessorImpl.java:43</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.lang.reflect.Method.invoke(</font><font size=1 color=#0062e1 face="Segoe UI"><u>Method.java:601</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectStreamClass.invokeReadObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectStreamClass.java:1004</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readSerialData(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1891</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readOrdinaryObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1796</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject0(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1348</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:370</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at org.drools.rule.DialectRuntimeRegistry.readExternal(</font><font size=1 color=#0062e1 face="Segoe UI"><u>DialectRuntimeRegistry.java:59</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readExternalData(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1835</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readOrdinaryObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1794</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject0(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1348</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:370</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at org.drools.rule.Package.readExternal(</font><font size=1 color=#0062e1 face="Segoe UI"><u>Package.java:197</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readExternalData(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1835</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readOrdinaryObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1794</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject0(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1348</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:370</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.util.HashMap.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>HashMap.java:1155</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown
Source)</font><font size=3> </font><font size=1 face="Segoe UI"><br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(</font><font size=1 color=#0062e1 face="Segoe UI"><u>DelegatingMethodAccessorImpl.java:43</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.lang.reflect.Method.invoke(</font><font size=1 color=#0062e1 face="Segoe UI"><u>Method.java:601</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectStreamClass.invokeReadObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectStreamClass.java:1004</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readSerialData(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1891</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readOrdinaryObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1796</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject0(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1348</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:370</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at org.drools.common.AbstractRuleBase.readExternal(</font><font size=1 color=#0062e1 face="Segoe UI"><u>AbstractRuleBase.java:270</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at org.drools.reteoo.ReteooRuleBase.readExternal(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ReteooRuleBase.java:223</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at org.drools.impl.KnowledgeBaseImpl.readExternal(</font><font size=1 color=#0062e1 face="Segoe UI"><u>KnowledgeBaseImpl.java:116</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readExternalData(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1835</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readOrdinaryObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1794</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject0(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:1348</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at java.io.ObjectInputStream.readObject(</font><font size=1 color=#0062e1 face="Segoe UI"><u>ObjectInputStream.java:370</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at com.hsbc.gbm.dsl.domain.DSLRuleSet$Serializer.createInstance(</font><font size=1 color=#0062e1 face="Segoe UI"><u>DSLRuleSet.java:328</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at com.hsbc.gbm.dsl.domain.DSLRuleSet$Serializer.createInstance(</font><font size=1 color=#0062e1 face="Segoe UI"><u>DSLRuleSet.java:1</u></font><font size=1 face="Segoe UI">)</font><font size=3>
</font><font size=1 face="Segoe UI"><br>
at com.hsbc.gbm.dsl.domain.AbstractSerializer.deserialize(</font><font size=1 color=#0062e1 face="Segoe UI"><u>AbstractSerializer.java:144</u></font><font size=1 face="Segoe UI">)</font><font size=2 face="sans-serif"><br>
<br>
Thanks and regards,</font><font size=2 color=red face="Arial"><b><br>
<br>
Adarsh CHAINI </b></font><font size=1 face="Arial"><br>
SENIOR LEAD DEVELOPMENT SPECIALIST | HSBC Bank Plc<br>
8 Canada Square, London E14 5HQ, UK</font><font size=3> </font>
<table>
<tr>
<td><font size=1 color=red face="Arial">_______________________________________________</font><font size=3>
<br>
</font>
<br>
<table width=100%>
<tr>
<td width=15%>
<td width=84%>
<tr>
<td><font size=1 color=#4f4f4f face="Arial">Phone</font><font size=3> </font>
<td><font size=1 color=#4f4f4f face="Arial">Int: (0)79914720 Ext: +44 (0)20
79914720</font><font size=3> </font>
<tr>
<td><font size=1 color=#4f4f4f face="Arial">Mobile</font><font size=3>
</font>
<td><font size=1 color=#4f4f4f face="Arial">+44(0)7595530105</font><font size=3>
</font>
<tr>
<td><font size=1 color=#4f4f4f face="Arial">Email</font><font size=3> </font>
<td><a href=mailto:adarsh.chaini@hsbcib.com><font size=1 color=red face="Arial"><u>adarsh.chaini@hsbcib.com</u></font></a></table>
<br><font size=3><br>
</font><font size=1 color=red face="Arial"><br>
<br>
_______________________________________________</font><font size=3> </font><font size=1 color=#008000 face="Arial"><br>
Protect our environment - please only print this if you have to!</font></table>
<br><font size=2 face="sans-serif"><br>
<br>
<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>
************************************************************</font><font size=3><br>
----------------------------------------- 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. <br>
</font><tt><font size=3><br>
_______________________________________________<br>
rules-users mailing list</font></tt><font size=3 color=blue><u><br>
</u></font><a href="mailto:rules-users@lists.jboss.org"><tt><font size=3 color=blue><u>rules-users@lists.jboss.org</u></font></tt></a><font size=3 color=blue><u><br>
</u></font><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=3 color=blue><u>https://lists.jboss.org/mailman/listinfo/rules-users</u></font></tt></a><font size=3>
</font><tt><font size=2><br>
_______________________________________________<br>
rules-users mailing list</font></tt><tt><font size=2 color=blue><u><br>
</u></font></tt><a href="mailto:rules-users@lists.jboss.org"><tt><font size=2 color=blue><u>rules-users@lists.jboss.org</u></font></tt></a><font size=3 color=blue><u><br>
</u></font><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=2 color=blue><u>https://lists.jboss.org/mailman/listinfo/rules-users</u></font></tt></a><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
<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>
************************************************************</font><font size=3><br>
----------------------------------------- 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. <br>
</font>
<br><tt><font size=3>_______________________________________________<br>
rules-users mailing list<br>
</font></tt><a href="mailto:rules-users@lists.jboss.org"><tt><font size=3 color=blue><u>rules-users@lists.jboss.org</u></font></tt></a><tt><font size=3><br>
</font></tt><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=3 color=blue><u>https://lists.jboss.org/mailman/listinfo/rules-users</u></font></tt></a>
<br><tt><font size=2>_______________________________________________<br>
rules-users mailing list<br>
rules-users@lists.jboss.org<br>
</font></tt><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=2>https://lists.jboss.org/mailman/listinfo/rules-users</font></tt></a>
<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>
<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>
<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.