Heap Space Error

Suresh Kumar <[email protected]> Tue, 4 Jun 2013 08:02:16 +0100
Newsgroups gmane.text.xml.xalan.java.user
Message-ID <697D96E9D82DBA408D0B5FD7F94E9FBD831A93A815@SDOREM07.fpa.fpgroup.net>
--_000_697D96E9D82DBA408D0B5FD7F94E9FBD831A93A815SDOREM07fpafp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Team,

I have encountered a bug(heap space error) during the generation of the I=
rmak which will use xalan2.jar and its classes to generate it. We are sen=
ding an XML document to the class's method as below.

We are getting an out of memory error once it reached to transforms.perfo=
rmTransforms(input);

For a 1.35mb file its giving heap space error, we have tried increasing h=
eapsize to 512mb, then also its not working.

We have tried increasing it to 768mb. Then it is working.

So can you please provide us any alternative solution for it.




import org.apache.xml.security.Init;
import org.apache.xml.security.signature.XMLSignatureInput;
import org.apache.xml.security.transforms.Transforms;
import org.bouncycastle.util.encoders.Base64;
import org.w3c.dom.Document;


public static String CalculatorIRmark(String inputFile, String namespace)=

=20   throws Exception
=20 {

=20   FileInputStream fis =3D null;
=20   StringBuffer filedata =3D new StringBuffer("");


=20   try {
=20     fis =3D new FileInputStream(inputFile);
=20     System.out.println("File is in process to read to create IRMark")=
;
=20   } catch (FileNotFoundException e) {
=20     logger.error("The file " + inputFile + " could not be opened.");
=20   }

=20   byte[] data =3D null;
=20   try {
=20     int bytes =3D fis.available();
=20     logger.info("fis.available():"+fis.available());

=20     data =3D new byte[bytes];
=20     fis.read(data);

=20   } catch (IOException e) {
=20     logger.error("Error reading file for IR Mark.");

=20   }

=20   try{
=20   String transformStr =3D "<?xml version=3D'1.0'?>\n<dsig:Transforms =
xmlns:dsig=3D'http://www.w3.org/2000/09/xmldsig#' xmlns:gt=3D'http://www.=
govtalk.gov.uk/CM/envelope' xmlns:ir=3D'" + namespace + "'>\n" + "<dsig:T=
ransform Algorithm=3D'http://www.w3.org/TR/1999/REC-xpath-19991116'>\n" +=
=20"<dsig:XPath>\n" + "count(ancestor-or-self::node()|/gt:GovTalkMessage/=
gt:Body)=3Dcount(ancestor-or-self::node())\n" + " and count(self::ir:IRma=
rk)=3D0 \n" + " and count(../self::ir:IRmark)=3D0 \n" + "</dsig:XPath>\n"=
=20+ "</dsig:Transform>\n" + "<dsig:Transform Algorithm=3D'http://www.w3.=
org/TR/2001/REC-xml-c14n-20010315#WithComments'/>\n" + "</dsig:Transforms=
>\n";

=20   DocumentBuilderFactory dbf =3D DocumentBuilderFactory.newInstance()=
;
=20   dbf.setNamespaceAware(true);
=20   DocumentBuilder db =3D dbf.newDocumentBuilder();
=20   Document doc =3D db.parse(new ByteArrayInputStream(transformStr.get=
Bytes()));

=20   Transforms transforms =3D new Transforms(doc.getDocumentElement(), =
null);

=20   XMLSignatureInput input =3D new XMLSignatureInput(data);

=20   long heapMaxSize =3D Runtime.getRuntime().maxMemory();
=20   Runtime.getRuntime().gc();
=20   long availableMemory =3D Runtime.getRuntime().freeMemory();
=20     System.out.println("heapMaxSize: "+heapMaxSize+"---"+heapMaxSize/=
1024);
=20     logger.info("heapMaxSize: "+heapMaxSize+"---");
=20     System.out.println("Available Memory: "+availableMemory);

=20   XMLSignatureInput result =3D transforms.performTransforms(input);

=20   availableMemory =3D Runtime.getRuntime().freeMemory();
=20   System.out.println("Available Memory after transformations: "+avail=
ableMemory);



=20   MessageDigest md =3D MessageDigest.getInstance("SHA");
=20   md.update(result.getBytes());
=20   byte[] digest =3D md.digest();

=20 //  System.out.println("md.digest()"+digest.toString());

=20   String strIRmark =3D new String(Base64.encode(digest));
=20   fis.close();

=20   return strIRmark;
=20   }
=20   catch(Exception e)
=20   {
=20     System.out.println("Exception is in IRMARK generation");

=20     StringWriter sw =3D new StringWriter();
=20       PrintWriter pw =3D new PrintWriter(sw);
=20       e.printStackTrace(pw);
=20       sw.toString();
=20       logger.error("Calculate Exception: "+sw);

=20     return "Error In Irmark";
=20   }
=20   finally
=20   {
=20     System.gc();
=20   }
=20 }


Thanks & Regards
Sai Suresh Kumar

Please consider the environment before printing

This e-mail may contain confidential information and/or copyright materia=
l. This e-mail and its contents are confidential to the intended recipien=
t only. Any unauthorised use may be unlawful.

If you receive this e-mail by mistake please advise the sender immediatel=
y by using the reply facility in your e-mail software and delete this ema=
il.

Friends Life is a business name of the following Friends Life companies:

Friends Life and Pensions Limited Company number 475201
Friends Life Limited Company number 4096141
Friends Life Marketing Limited Company number 5059179
Friends Life Investment Solutions Limited Company number 6389025
Friends Life WL Limited Company number 3116645
Friends Life Services Limited Company number 3424940=20
Friends Life Company Limited  Company number 3291349=20
Friends Annuities Limited Company number  6363657

Each of the above companies is authorised and regulated by the Financial =
Services Authority.

Friends Life Management Services Limited Company number 983330 is an appo=
inted representative of Friends Life Services Limited, Friends Life and P=
ensions Limited and Friends Life Limited which are authorised and regulat=
ed by the Financial Services Authority.

Suntrust Limited Company number 1460956

Each company is registered in England and Wales with a registered office =
at Pixham End, Dorking, Surrey RH4 1QA.

Visit www.friendslife.co.uk to see how our online services can help you

--_000_697D96E9D82DBA408D0B5FD7F94E9FBD831A93A815SDOREM07fpafp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-mi=
crosoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:wo=
rd" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D=
"http://www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type c=
ontent=3D"text/html; charset=3Dus-ascii"><meta name=3DGenerator content=3D=
"Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:11.0pt;
=09font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
=09{mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;}
span.EmailStyle17
=09{mso-style-type:personal-compose;
=09font-family:"Calibri","sans-serif";
=09color:windowtext;}
.MsoChpDefault
=09{mso-style-type:export-only;}
@page WordSection1
=09{size:612.0pt 792.0pt;
=09margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
=09{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-GB link=3Dblue v=
link=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span lang=3D=
EN-US>Hi Team,<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-=
US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US>I =
have encountered a bug(heap space error) during the generation of the Irm=
ak which will use xalan2.jar and its classes to generate it. We are sendi=
ng an XML document to the class&#8217;s method as below.<o:p></o:p></span=
></p><p class=3DMsoNormal><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p>=
<p class=3DMsoNormal><span lang=3DEN-US>We are getting an out of memory e=
rror once it reached to </span><span style=3D'font-size:10.0pt;font-famil=
y:"Courier New";color:black;background:yellow;mso-highlight:yellow'>trans=
forms.performTransforms(input);</span><span style=3D'font-size:10.0pt;fon=
t-family:"Courier New";color:black'><o:p></o:p></span></p><p class=3DMsoN=
ormal><span style=3D'font-size:10.0pt;font-family:"Courier New";color:bla=
ck'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span style=3D'color=
:black'>For a 1.35mb file its giving heap space error, we have tried incr=
easing heapsize to 512mb, then also its not working.<o:p></o:p></span></p=
><p class=3DMsoNormal><span style=3D'color:black'><o:p>&nbsp;</o:p></span=
></p><p class=3DMsoNormal><span style=3D'color:black'>We have tried incre=
asing it to 768mb. Then it is working. <o:p></o:p></span></p><p class=3DM=
soNormal><span style=3D'color:black'><o:p>&nbsp;</o:p></span></p><p class=
=3DMsoNormal><span style=3D'color:black'>So can you please provide us any=
=20alternative solution for it.<o:p></o:p></span></p><p class=3DMsoNormal=
><span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'><=
o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:p>&=
nbsp;</o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:p>&nbsp;=
</o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US><o:p>&nbsp;</o:p=
></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><b><span s=
tyle=3D'font-size:10.0pt;font-family:"Courier New";color:#7F0055'>import<=
/span></b><span style=3D'font-size:10.0pt;font-family:"Courier New";color=
:black'> org.apache.xml.security.Init;</span><span style=3D'font-size:10.=
0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal=
=20style=3D'text-autospace:none'><b><span style=3D'font-size:10.0pt;font-=
family:"Courier New";color:#7F0055'>import</span></b><span style=3D'font-=
size:10.0pt;font-family:"Courier New";color:black'> org.apache.xml.securi=
ty.signature.XMLSignatureInput;</span><span style=3D'font-size:10.0pt;fon=
t-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D=
'text-autospace:none'><b><span style=3D'font-size:10.0pt;font-family:"Cou=
rier New";color:#7F0055'>import</span></b><span style=3D'font-size:10.0pt=
;font-family:"Courier New";color:black'> org.apache.xml.security.transfor=
ms.Transforms;</span><span style=3D'font-size:10.0pt;font-family:"Courier=
=20New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospa=
ce:none'><b><span style=3D'font-size:10.0pt;font-family:"Courier New";col=
or:#7F0055'>import</span></b><span style=3D'font-size:10.0pt;font-family:=
"Courier New";color:black'> org.bouncycastle.util.encoders.Base64;</span>=
<span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></s=
pan></p><p class=3DMsoNormal><b><span style=3D'font-size:10.0pt;font-fami=
ly:"Courier New";color:#7F0055'>import</span></b><span style=3D'font-size=
:10.0pt;font-family:"Courier New";color:black'> org.w3c.dom.Document;</sp=
an><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNormal><span la=
ng=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span lang=3D=
EN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal style=3D'text-auto=
space:none'><b><span style=3D'font-size:10.0pt;font-family:"Courier New";=
color:#7F0055'>public</span></b><span style=3D'font-size:10.0pt;font-fami=
ly:"Courier New";color:black'> </span><b><span style=3D'font-size:10.0pt;=
font-family:"Courier New";color:#7F0055'>static</span></b><span style=3D'=
font-size:10.0pt;font-family:"Courier New";color:black'> String Calculato=
rIRmark(String inputFile, String namespace)</span><span style=3D'font-siz=
e:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoN=
ormal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-=
family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </span><b><span styl=
e=3D'font-size:10.0pt;font-family:"Courier New";color:#7F0055'>throws</sp=
an></b><span style=3D'font-size:10.0pt;font-family:"Courier New";color:bl=
ack'> Exception</span><span style=3D'font-size:10.0pt;font-family:"Courie=
r New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospac=
e:none'><span style=3D'font-size:10.0pt;font-family:"Courier New";color:b=
lack'>&nbsp; {&nbsp;&nbsp; </span><span style=3D'font-size:10.0pt;font-fa=
mily:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D't=
ext-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style=3D'fo=
nt-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3D=
MsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;f=
ont-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; FileInputStream =
fis =3D </span><b><span style=3D'font-size:10.0pt;font-family:"Courier Ne=
w";color:#7F0055'>null</span></b><span style=3D'font-size:10.0pt;font-fam=
ily:"Courier New";color:black'>;</span><span style=3D'font-size:10.0pt;fo=
nt-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=
=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Cou=
rier New";color:black'>&nbsp;&nbsp;&nbsp; StringBuffer <u>filedata</u> =3D=
=20</span><b><span style=3D'font-size:10.0pt;font-family:"Courier New";co=
lor:#7F0055'>new</span></b><span style=3D'font-size:10.0pt;font-family:"C=
ourier New";color:black'> StringBuffer(</span><span style=3D'font-size:10=
.0pt;font-family:"Courier New";color:#2A00FF'>&quot;&quot;</span><span st=
yle=3D'font-size:10.0pt;font-family:"Courier New";color:black'>);</span><=
span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></sp=
an></p><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'=
font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp=
; </span><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p>=
</o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span=
=20style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp=
;&nbsp;&nbsp;&nbsp;</span><span style=3D'font-size:10.0pt;font-family:"Co=
urier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-auto=
space:none'><span style=3D'font-size:10.0pt;font-family:"Courier New";col=
or:black'>&nbsp;&nbsp;&nbsp;&nbsp;</span><b><span style=3D'font-size:10.0=
pt;font-family:"Courier New";color:#7F0055'>try</span></b><span style=3D'=
font-size:10.0pt;font-family:"Courier New";color:black'> {</span><span st=
yle=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-si=
ze:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; fis =3D </span><b><span style=3D'font-size:10.0pt;font-family:"Cou=
rier New";color:#7F0055'>new</span></b><span style=3D'font-size:10.0pt;fo=
nt-family:"Courier New";color:black'> FileInputStream(inputFile);</span><=
span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></sp=
an></p><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'=
font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; System.</span><i><span style=3D'font-size:10.0pt;font-famil=
y:"Courier New";color:#0000C0'>out</span></i><span style=3D'font-size:10.=
0pt;font-family:"Courier New";color:black'>.println(</span><span style=3D=
'font-size:10.0pt;font-family:"Courier New";color:#2A00FF'>&quot;File is =
in process to read to create IRMark&quot;</span><span style=3D'font-size:=
10.0pt;font-family:"Courier New";color:black'>);</span><span style=3D'fon=
t-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3D=
MsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;f=
ont-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; } </span><b><spa=
n style=3D'font-size:10.0pt;font-family:"Courier New";color:#7F0055'>catc=
h</span></b><span style=3D'font-size:10.0pt;font-family:"Courier New";col=
or:black'> (FileNotFoundException e) {</span><span style=3D'font-size:10.=
0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal=
=20style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-fam=
ily:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; &nbsp; </span><i><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:#0000C0'>logger=
</span></i><span style=3D'font-size:10.0pt;font-family:"Courier New";colo=
r:black'>.error(</span><span style=3D'font-size:10.0pt;font-family:"Couri=
er New";color:#2A00FF'>&quot;The file &quot;</span><span style=3D'font-si=
ze:10.0pt;font-family:"Courier New";color:black'> + inputFile + </span><s=
pan style=3D'font-size:10.0pt;font-family:"Courier New";color:#2A00FF'>&q=
uot; could not be opened.&quot;</span><span style=3D'font-size:10.0pt;fon=
t-family:"Courier New";color:black'>);</span><span style=3D'font-size:10.=
0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal=
=20style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-fam=
ily:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; }</span><span style=3D'=
font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p clas=
s=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.0=
pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=3DMsoN=
ormal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-=
family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </span><b><span styl=
e=3D'font-size:10.0pt;font-family:"Courier New";color:#7F0055'>byte</span=
></b><span style=3D'font-size:10.0pt;font-family:"Courier New";color:blac=
k'>[] data =3D </span><b><span style=3D'font-size:10.0pt;font-family:"Cou=
rier New";color:#7F0055'>null</span></b><span style=3D'font-size:10.0pt;f=
ont-family:"Courier New";color:black'>;</span><span style=3D'font-size:10=
.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNorma=
l style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-fami=
ly:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </span><b><span style=3D=
'font-size:10.0pt;font-family:"Courier New";color:#7F0055'>try</span></b>=
<span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'> {=
</span><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></=
o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span s=
tyle=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; </span><b><span style=3D'font-size:10.0pt;font-fami=
ly:"Courier New";color:#7F0055'>int</span></b><span style=3D'font-size:10=
.0pt;font-family:"Courier New";color:black'> bytes =3D fis.available();</=
span><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:=
p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span sty=
le=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; </span><i><span style=3D'font-size:10.0pt;font-family=
:"Courier New";color:#0000C0'>logger</span></i><span style=3D'font-size:1=
0.0pt;font-family:"Courier New";color:black'>.info(</span><span style=3D'=
font-size:10.0pt;font-family:"Courier New";color:#2A00FF'>&quot;fis.avail=
able():&quot;</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>+fis.available());</span><span style=3D'font-size:10.0p=
t;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal s=
tyle=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-family:=
"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span st=
yle=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-si=
ze:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;data =3D </span><b><span style=3D'font-size:10.0pt;font-famil=
y:"Courier New";color:#7F0055'>new</span></b><span style=3D'font-size:10.=
0pt;font-family:"Courier New";color:black'> </span><b><span style=3D'font=
-size:10.0pt;font-family:"Courier New";color:#7F0055'>byte</span></b><spa=
n style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>[bytes=
];</span><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p>=
</o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span=
=20style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp; fis.read(data);</span><span style=3D'font-size:=
10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNor=
mal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-fa=
mily:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </span><span style=3D'=
font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p clas=
s=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.0=
pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;} </spa=
n><b><span style=3D'font-size:10.0pt;font-family:"Courier New";color:#7F0=
055'>catch</span></b><span style=3D'font-size:10.0pt;font-family:"Courier=
=20New";color:black'> (IOException e) {</span><span style=3D'font-size:10=
.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNorma=
l style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-fami=
ly:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; &nbsp; </span><i><span s=
tyle=3D'font-size:10.0pt;font-family:"Courier New";color:#0000C0'>logger<=
/span></i><span style=3D'font-size:10.0pt;font-family:"Courier New";color=
:black'>.error(</span><span style=3D'font-size:10.0pt;font-family:"Courie=
r New";color:#2A00FF'>&quot;Error reading file for IR Mark.&quot;</span><=
span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>);<=
/span><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o=
:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span st=
yle=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbs=
p;&nbsp;&nbsp; </span><span style=3D'font-size:10.0pt;font-family:"Courie=
r New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospac=
e:none'><span style=3D'font-size:10.0pt;font-family:"Courier New";color:b=
lack'>&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style=3D'font-size:10.0pt;fon=
t-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D=
'text-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courie=
r New"'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal style=3D'text-au=
tospace:none'><span style=3D'font-size:10.0pt;font-family:"Courier New";c=
olor:black'>&nbsp;&nbsp;&nbsp; </span><b><span style=3D'font-size:10.0pt;=
font-family:"Courier New";color:#7F0055'>try</span></b><span style=3D'fon=
t-size:10.0pt;font-family:"Courier New";color:black'>{</span><span style=3D=
'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p cla=
ss=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.=
0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; String tran=
sformStr =3D </span><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>&quot;&lt;?xml version=3D'1.0'?&gt;\n&lt;dsig:Transfo=
rms xmlns:dsig=3D'http://www.w3.org/2000/09/xmldsig#' xmlns:gt=3D'http://=
www.govtalk.gov.uk/CM/envelope' xmlns:ir=3D'&quot;</span><span style=3D'f=
ont-size:10.0pt;font-family:"Courier New";color:black'> + namespace + </s=
pan><span style=3D'font-size:10.0pt;font-family:"Courier New";color:#2A00=
FF'>&quot;'&gt;\n&quot;</span><span style=3D'font-size:10.0pt;font-family=
:"Courier New";color:black'> + </span><span style=3D'font-size:10.0pt;fon=
t-family:"Courier New";color:#2A00FF'>&quot;&lt;dsig:Transform Algorithm=3D=
'http://www.w3.org/TR/1999/REC-xpath-19991116'&gt;\n&quot;</span><span st=
yle=3D'font-size:10.0pt;font-family:"Courier New";color:black'> + </span>=
<span style=3D'font-size:10.0pt;font-family:"Courier New";color:#2A00FF'>=
&quot;&lt;dsig:XPath&gt;\n&quot;</span><span style=3D'font-size:10.0pt;fo=
nt-family:"Courier New";color:black'> + </span><span style=3D'font-size:1=
0.0pt;font-family:"Courier New";color:#2A00FF'>&quot;count(ancestor-or-se=
lf::node()|/gt:GovTalkMessage/gt:Body)=3Dcount(ancestor-or-self::node())\=
n&quot;</span><span style=3D'font-size:10.0pt;font-family:"Courier New";c=
olor:black'> + </span><span style=3D'font-size:10.0pt;font-family:"Courie=
r New";color:#2A00FF'>&quot; and count(self::ir:IRmark)=3D0 \n&quot;</spa=
n><span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>=
=20+ </span><span style=3D'font-size:10.0pt;font-family:"Courier New";col=
or:#2A00FF'>&quot; and count(../self::ir:IRmark)=3D0 \n&quot;</span><span=
=20style=3D'font-size:10.0pt;font-family:"Courier New";color:black'> + </=
span><span style=3D'font-size:10.0pt;font-family:"Courier New";color:#2A0=
0FF'>&quot;&lt;/dsig:XPath&gt;\n&quot;</span><span style=3D'font-size:10.=
0pt;font-family:"Courier New";color:black'> + </span><span style=3D'font-=
size:10.0pt;font-family:"Courier New";color:#2A00FF'>&quot;&lt;/dsig:Tran=
sform&gt;\n&quot;</span><span style=3D'font-size:10.0pt;font-family:"Cour=
ier New";color:black'> + </span><span style=3D'font-size:10.0pt;font-fami=
ly:"Courier New";color:#2A00FF'>&quot;&lt;dsig:Transform Algorithm=3D'htt=
p://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments'/&gt;\n&quot;</=
span><span style=3D'font-size:10.0pt;font-family:"Courier New";color:blac=
k'> + </span><span style=3D'font-size:10.0pt;font-family:"Courier New";co=
lor:#2A00FF'>&quot;&lt;/dsig:Transforms&gt;\n&quot;</span><span style=3D'=
font-size:10.0pt;font-family:"Courier New";color:black'>;</span><span sty=
le=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><=
p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-siz=
e:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=3D=
MsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;f=
ont-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; DocumentBuilderF=
actory dbf =3D DocumentBuilderFactory.<i>newInstance</i>();</span><span s=
tyle=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p=
><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-s=
ize:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; dbf.=
setNamespaceAware(</span><b><span style=3D'font-size:10.0pt;font-family:"=
Courier New";color:#7F0055'>true</span></b><span style=3D'font-size:10.0p=
t;font-family:"Courier New";color:black'>);</span><span style=3D'font-siz=
e:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoN=
ormal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-=
family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; DocumentBuilder db =3D=
=20dbf.newDocumentBuilder();</span><span style=3D'font-size:10.0pt;font-f=
amily:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'=
text-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courier=
=20New";color:black'>&nbsp;&nbsp;&nbsp; Document doc =3D db.parse(</span>=
<b><span style=3D'font-size:10.0pt;font-family:"Courier New";color:#7F005=
5'>new</span></b><span style=3D'font-size:10.0pt;font-family:"Courier New=
";color:black'> ByteArrayInputStream(transformStr.getBytes()));</span><sp=
an style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span=
></p><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'fo=
nt-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; =
</span><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></=
o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span s=
tyle=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nb=
sp;&nbsp;&nbsp;Transforms transforms =3D </span><b><span style=3D'font-si=
ze:10.0pt;font-family:"Courier New";color:#7F0055'>new</span></b><span st=
yle=3D'font-size:10.0pt;font-family:"Courier New";color:black'> Transform=
s(doc.getDocumentElement(), </span><b><span style=3D'font-size:10.0pt;fon=
t-family:"Courier New";color:#7F0055'>null</span></b><span style=3D'font-=
size:10.0pt;font-family:"Courier New";color:black'>);</span><span style=3D=
'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p cla=
ss=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.=
0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=3DMso=
Normal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font=
-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; XMLSignatureInput i=
nput =3D </span><b><span style=3D'font-size:10.0pt;font-family:"Courier N=
ew";color:#7F0055'>new</span></b><span style=3D'font-size:10.0pt;font-fam=
ily:"Courier New";color:black'> XMLSignatureInput(data);</span><span styl=
e=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p=
=20class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-si=
ze:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </spa=
n><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p><=
/span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D=
'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbs=
p;&nbsp;</span><b><span style=3D'font-size:10.0pt;font-family:"Courier Ne=
w";color:#7F0055'>long</span></b><span style=3D'font-size:10.0pt;font-fam=
ily:"Courier New";color:black'> heapMaxSize =3D Runtime.<i>getRuntime</i>=
().maxMemory();</span><span style=3D'font-size:10.0pt;font-family:"Courie=
r New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospac=
e:none'><span style=3D'font-size:10.0pt;font-family:"Courier New";color:b=
lack'>&nbsp;&nbsp;&nbsp; Runtime.<i>getRuntime</i>().gc();</span><span st=
yle=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>=
<p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-si=
ze:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </spa=
n><b><span style=3D'font-size:10.0pt;font-family:"Courier New";color:#7F0=
055'>long</span></b><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> availableMemory =3D Runtime.<i>getRuntime</i>().freeMe=
mory();</span><span style=3D'font-size:10.0pt;font-family:"Courier New"'>=
<o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'>=
<span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; System.</span><i><span style=3D'font-size:10=
.0pt;font-family:"Courier New";color:#0000C0'>out</span></i><span style=3D=
'font-size:10.0pt;font-family:"Courier New";color:black'>.println(</span>=
<span style=3D'font-size:10.0pt;font-family:"Courier New";color:#2A00FF'>=
&quot;heapMaxSize: &quot;</span><span style=3D'font-size:10.0pt;font-fami=
ly:"Courier New";color:black'>+heapMaxSize+</span><span style=3D'font-siz=
e:10.0pt;font-family:"Courier New";color:#2A00FF'>&quot;---&quot;</span><=
span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>+he=
apMaxSize/1024);</span><span style=3D'font-size:10.0pt;font-family:"Couri=
er New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospa=
ce:none'><span style=3D'font-size:10.0pt;font-family:"Courier New";color:=
black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><i><span style=3D'font-size:=
10.0pt;font-family:"Courier New";color:#0000C0'>logger</span></i><span st=
yle=3D'font-size:10.0pt;font-family:"Courier New";color:black'>.info(</sp=
an><span style=3D'font-size:10.0pt;font-family:"Courier New";color:#2A00F=
F'>&quot;heapMaxSize: &quot;</span><span style=3D'font-size:10.0pt;font-f=
amily:"Courier New";color:black'>+heapMaxSize+</span><span style=3D'font-=
size:10.0pt;font-family:"Courier New";color:#2A00FF'>&quot;---&quot;</spa=
n><span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>=
);</span><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p>=
</o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span=
=20style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp; System.</span><i><span style=3D'font-size:10.0p=
t;font-family:"Courier New";color:#0000C0'>out</span></i><span style=3D'f=
ont-size:10.0pt;font-family:"Courier New";color:black'>.println(</span><s=
pan style=3D'font-size:10.0pt;font-family:"Courier New";color:#2A00FF'>&q=
uot;Available Memory: &quot;</span><span style=3D'font-size:10.0pt;font-f=
amily:"Courier New";color:black'>+availableMemory);</span><span style=3D'=
font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p clas=
s=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.0=
pt;font-family:"Courier New";color:black'>&nbsp;&nbsp; </span><span style=
=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p =
class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:=
10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;XML=
SignatureInput result =3D transforms.performTransforms(input);</span><spa=
n style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span>=
</p><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'fon=
t-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p c=
lass=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:1=
0.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; available=
Memory =3D Runtime.<i>getRuntime</i>().freeMemory();</span><span style=3D=
'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p cla=
ss=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.=
0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; System.</sp=
an><i><span style=3D'font-size:10.0pt;font-family:"Courier New";color:#00=
00C0'>out</span></i><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>.println(</span><span style=3D'font-size:10.0pt;font-fa=
mily:"Courier New";color:#2A00FF'>&quot;Available Memory after transforma=
tions: &quot;</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>+availableMemory);</span><span style=3D'font-size:10.0p=
t;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal s=
tyle=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-family:=
"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal style=3D'=
text-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courier=
=20New";color:black'>&nbsp;&nbsp;&nbsp; </span><span style=3D'font-size:1=
0.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNorm=
al style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-fam=
ily:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=
=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p =
class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:=
10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;Mes=
sageDigest md =3D MessageDigest.<i>getInstance</i>(</span><span style=3D'=
font-size:10.0pt;font-family:"Courier New";color:#2A00FF'>&quot;SHA&quot;=
</span><span style=3D'font-size:10.0pt;font-family:"Courier New";color:bl=
ack'>);</span><span style=3D'font-size:10.0pt;font-family:"Courier New"'>=
<o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'>=
<span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&n=
bsp;&nbsp;&nbsp; md.update(result.getBytes());</span><span style=3D'font-=
size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DM=
soNormal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;fo=
nt-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </span><b><span s=
tyle=3D'font-size:10.0pt;font-family:"Courier New";color:#7F0055'>byte</s=
pan></b><span style=3D'font-size:10.0pt;font-family:"Courier New";color:b=
lack'>[] digest =3D md.digest();</span><span style=3D'font-size:10.0pt;fo=
nt-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=
=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Cou=
rier New"'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal style=3D'text=
-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courier New=
";color:black'>&nbsp; </span><span style=3D'font-size:10.0pt;font-family:=
"Courier New";color:#3F7F5F'>//&nbsp; System.out.println(&quot;md.digest(=
)&quot;+digest.toString());</span><span style=3D'font-size:10.0pt;font-fa=
mily:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D't=
ext-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>&nbsp;&nbsp;&nbsp; </span><span style=3D'font-size:10.0=
pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;font-family=
:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;String strIRmark =3D =
</span><b><span style=3D'font-size:10.0pt;font-family:"Courier New";color=
:#7F0055'>new</span></b><span style=3D'font-size:10.0pt;font-family:"Cour=
ier New";color:black'> String(Base64.<i>encode</i>(digest));</span><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></=
p><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-=
size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; fis=
.close();</span><span style=3D'font-size:10.0pt;font-family:"Courier New"=
'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none=
'><span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>=
&nbsp;&nbsp; </span><span style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:=
none'><span style=3D'font-size:10.0pt;font-family:"Courier New";color:bla=
ck'>&nbsp;&nbsp;&nbsp;&nbsp;</span><b><span style=3D'font-size:10.0pt;fon=
t-family:"Courier New";color:#7F0055'>return</span></b><span style=3D'fon=
t-size:10.0pt;font-family:"Courier New";color:black'> strIRmark;</span><s=
pan style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></spa=
n></p><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'f=
ont-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;=
=20}</span><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:=
p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><sp=
an style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp=
;&nbsp;&nbsp; </span><b><span style=3D'font-size:10.0pt;font-family:"Cour=
ier New";color:#7F0055'>catch</span></b><span style=3D'font-size:10.0pt;f=
ont-family:"Courier New";color:black'>(Exception e)</span><span style=3D'=
font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p clas=
s=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.0=
pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; {</span><spa=
n style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span>=
</p><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'fon=
t-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; &=
nbsp; System.</span><i><span style=3D'font-size:10.0pt;font-family:"Couri=
er New";color:#0000C0'>out</span></i><span style=3D'font-size:10.0pt;font=
-family:"Courier New";color:black'>.println(</span><span style=3D'font-si=
ze:10.0pt;font-family:"Courier New";color:#2A00FF'>&quot;Exception is in =
IRMARK generation&quot;</span><span style=3D'font-size:10.0pt;font-family=
:"Courier New";color:black'>);</span><span style=3D'font-size:10.0pt;font=
-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D=
'text-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courie=
r New";color:black'>&nbsp;&nbsp;&nbsp; &nbsp; </span><span style=3D'font-=
size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DM=
soNormal style=3D'text-autospace:none'><span style=3D'font-size:10.0pt;fo=
nt-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Strin=
gWriter sw =3D </span><b><span style=3D'font-size:10.0pt;font-family:"Cou=
rier New";color:#7F0055'>new</span></b><span style=3D'font-size:10.0pt;fo=
nt-family:"Courier New";color:black'> StringWriter();</span><span style=3D=
'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p cla=
ss=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.=
0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; PrintWriter pw =3D </span><b><span style=3D'font-size:10.0pt=
;font-family:"Courier New";color:#7F0055'>new</span></b><span style=3D'fo=
nt-size:10.0pt;font-family:"Courier New";color:black'> PrintWriter(sw);</=
span><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:=
p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span sty=
le=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace(pw);</span><span style=3D=
'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p cla=
ss=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:10.=
0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; sw.toString();</span><span style=3D'font-size:10.0pt;font-fa=
mily:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D't=
ext-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><i><s=
pan style=3D'font-size:10.0pt;font-family:"Courier New";color:#0000C0'>lo=
gger</span></i><span style=3D'font-size:10.0pt;font-family:"Courier New";=
color:black'>.error(</span><span style=3D'font-size:10.0pt;font-family:"C=
ourier New";color:#2A00FF'>&quot;Calculate Exception: &quot;</span><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>+sw);</s=
pan><span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p=
></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><span styl=
e=3D'font-size:10.0pt;font-family:"Courier New";color:#3F7F5F'><o:p>&nbsp=
;</o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:none'><spa=
n style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;=
&nbsp;&nbsp; &nbsp; </span><b><span style=3D'font-size:10.0pt;font-family=
:"Courier New";color:#7F0055'>return</span></b><span style=3D'font-size:1=
0.0pt;font-family:"Courier New";color:black'> </span><span style=3D'font-=
size:10.0pt;font-family:"Courier New";color:#2A00FF'>&quot;Error In Irmar=
k&quot;</span><span style=3D'font-size:10.0pt;font-family:"Courier New";c=
olor:black'>;</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text-autospace:=
none'><span style=3D'font-size:10.0pt;font-family:"Courier New";color:bla=
ck'>&nbsp;&nbsp;&nbsp; }</span><span style=3D'font-size:10.0pt;font-famil=
y:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D'text=
-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courier New=
";color:black'>&nbsp;&nbsp;&nbsp; </span><b><span style=3D'font-size:10.0=
pt;font-family:"Courier New";color:#7F0055'>finally</span></b><span style=
=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p =
class=3DMsoNormal style=3D'text-autospace:none'><span style=3D'font-size:=
10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; {</span>=
<span style=3D'font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></s=
pan></p><p class=3DMsoNormal style=3D'text-autospace:none'><span style=3D=
'font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbs=
p; &nbsp; System.<i>gc</i>();</span><span style=3D'font-size:10.0pt;font-=
family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNormal style=3D=
'text-autospace:none'><span style=3D'font-size:10.0pt;font-family:"Courie=
r New";color:black'>&nbsp;&nbsp;&nbsp; }</span><span style=3D'font-size:1=
0.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=3DMsoNorm=
al><span style=3D'font-size:10.0pt;font-family:"Courier New";color:black'=
>&nbsp; }</span><span lang=3DEN-US><o:p></o:p></span></p><p class=3DMsoNo=
rmal><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal>=
<span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span=
=20lang=3DEN-US>Thanks &amp; Regards<o:p></o:p></span></p><p class=3DMsoN=
ormal><span lang=3DEN-US>Sai Suresh Kumar<o:p></o:p></span></p></div>
<FONT face=3DArial size=3D2>
<P><BR>Please consider the environment before printing</P>
<P>This e-mail may contain confidential information and/or copyright mate=
rial.=20
This e-mail and its contents are confidential to the intended recipient o=
nly.=20
Any unauthorised use may be unlawful.</P>
<P>If you receive this e-mail by mistake please advise the sender immedia=
tely by=20
using the reply facility in your e-mail software and delete this email.</=
P>
<P>Friends Life is a business name of the following Friends Life companie=
s:</P>
<P>Friends Life and Pensions Limited Company number 475201<BR>Friends Lif=
e=20
Limited Company number 4096141<BR>Friends Life Marketing Limited Company =
number=20
5059179<BR>Friends Life Investment Solutions Limited Company number=20
6389025<BR>Friends Life WL Limited Company number 3116645<BR>Friends Life=
=20
Services Limited Company number 3424940&nbsp;<BR>Friends Life Company=20
Limited&nbsp; Company number 3291349&nbsp;<BR>Friends Annuities Limited C=
ompany=20
number&nbsp; 6363657</P>
<P>Each of the above companies is authorised and regulated by the Financi=
al=20
Services Authority.</P>
<P>Friends Life Management Services Limited Company number 983330 is an=20
appointed representative of Friends Life Services Limited, Friends Life a=
nd=20
Pensions Limited and Friends Life Limited which are authorised and regula=
ted by=20
the Financial Services Authority.</P>
<P>Suntrust Limited Company number 1460956</P>
<P>Each company is registered in England and Wales with a registered offi=
ce at=20
Pixham End, Dorking, Surrey RH4 1QA.</P>
<P>Visit <A href=3D"http://www.friendslife.co.uk">www.friendslife.co.uk</=
A> to see=20
how our online services can help you</FONT></P>
</body></html>

--_000_697D96E9D82DBA408D0B5FD7F94E9FBD831A93A815SDOREM07fpafp_--