Hi,

I'm doing some stress test and I have similar stack very often:

at jrockit/vm/RNI.generateVirtualCode(Ljava/lang/Object;JJ)J(Native
Method)
    at
sun/reflect/GeneratedMethodAccessor350208.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Unknown
 Source)
    at
sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java/lang/reflect/Method.invoke(Method.java:597)
    at
javax/faces/component/_ComponentAttributesMap.getComponentProperty(_ComponentAttributesMap.java:470)
    at
javax/faces/component/_ComponentAttributesMap.get(_ComponentAttributesMap.java:256)
    at
org/apache/myfaces/shared_impl/renderkit/html/HtmlRendererUtils.renderBehaviorizedAttribute(HtmlRendererUtils.java:2514)

thead stays in this state very long (10s-1min) but not forever.

Environment: 
jrockit-jdk1.6.0_24-R28.1.3-4.0.1
myfaces trunk
tomcat 2.0.28
500 thread (with jmeter)

Do you have some new info about this problem from your tests?


Regards,

Kočičák

Rajadurai_p píše v Út 12. 07. 2011 v 20:56 +0530:
> Hi Leonardo,
> Thank you. I will deploy the patch and share the result after performance 
> tests.
> 
> Thanks, rajadurai
> 
> -----Original Message-----
> From: Leonardo Uribe [mailto:[email protected]]
> Sent: Tuesday, July 12, 2011 1:51 AM
> To: MyFaces Discussion
> Cc: Rajadurai_p
> Subject: Re: MyFaces - Thread issues under High load
> 
> Hi
> 
> I have attached some patches on MYFACES-3216 and commited the code on
> trunk and related branches. Please let us know if the code proposed
> fix the problem you mention.
> 
> Leonardo
> 
> 2011/7/11 Leonardo Uribe <[email protected]>:
> > Hi
> >
> > I have created:
> >
> > https://issues.apache.org/jira/browse/MYFACES-3216
> >
> > to deal with this code. I checked it and there is a potential risk of
> > exceptions when map.put is called. Maybe that is the source of your
> > problem, but it could be better if you can give us more info about it.
> >
> > Leonardo Uribe
> >
> > 2011/7/5 Mark Struberg <[email protected]>:
> >> Most importantly: which JDK/JRE are you running WebLogic under? And which 
> >> weblogic version do you use?
> >>
> >> You have definitely checked diskfree? (df -h) and mem is also no concern?
> >> Are you running a 32 or 64 bit JVM?
> >> Under 32 bit JVMs you could easily run out of available threads (the 
> >> higher you tune your -Xmx, the LOWER the amount of available threads get!)
> >>
> >>
> >> Just a few random ideas...
> >>
> >> LieGrue,
> >> strub
> >>
> >> --- On Mon, 7/4/11, Martin Koci <[email protected]> wrote:
> >>
> >>> From: Martin Koci <[email protected]>
> >>> Subject: Re: MyFaces - Thread issues under High load
> >>> To: "MyFaces Discussion" <[email protected]>
> >>> Date: Monday, July 4, 2011, 7:29 PM
> >>> Hi,
> >>>
> >>> what is [STUCK] thread? Is that something special from
> >>> WebLogic thread
> >>> pooler?
> >>> All threads are accessing same
> >>> java.beans.PropertyDescriptor.getReadMethod but this method
> >>> is
> >>> synchronized. So one on them is holding
> >>> java.beans.PropertyDescriptor
> >>> instance as monitor and the others are trying access same
> >>> critical area.
> >>> One of the STUCKs is suspicious: it probably entered
> >>> critical area on
> >>> PropertyDescriptor forever. But it should not happen: this
> >>> is API from
> >>> JRE and myfaces use it only - this looks very  odd.
> >>>
> >>> Suggestions:
> >>>
> >>> 1) set thread timeout if possible. I don't know weblogic
> >>> but thread
> >>> executors can kill thread it it does not end in reasonable
> >>> time.
> >>>
> >>> 2) Is JVM eating 100% of CPU? If so then hotspot can cause
> >>> this type of
> >>> problem - I remement similar problem few year ago - update
> >>> to newer
> >>> version of JVM solved it. What JVM/version do you use?
> >>>
> >>> 3) Is problem repeatable? Do you perform stress test or is
> >>> this problem
> >>> from production deployment?
> >>>
> >>>
> >>> Regards,
> >>>
> >>> Kočičák
> >>>
> >>> Rajadurai_p píše v Po 04. 07. 2011 v 11:17 -0700:
> >>> > Hi,
> >>> > I have attached a weblogic server thread dump file
> >>> collected under high load
> >>> > and when the server was irresponsive. You will find
> >>> almost all the threads
> >>> > (active & stuck) pointing to the same stack trace
> >>> which is My faces/
> >>> > Tomahawk related. Kindly let me know your views.
> >>> >
> >>> > Thanks
> >>> >
> >>> >
> >>> > Matt Benson-2 wrote:
> >>> > >
> >>> > > It looks to me as though you are using the JSF
> >>> reference
> >>> > > implementation.  The only code I see from
> >>> myfaces in your stack trace
> >>> > > is Tomahawk.
> >>> > >
> >>> > > Matt
> >>> > >
> >>> > > On Wed, Jun 29, 2011 at 4:39 AM,
> >>> Rajadurai_p  wrote:
> >>> > >>
> >>> > >> Hi,
> >>> > >> we are facing problems in MyFaces framework
> >>> under high load. Bulk of the
> >>> > >> application container threads (weblogic) are
> >>> stuck upon a same stack
> >>> > >> trace.
> >>> > >> I have pasted a sample stack trace below.
> >>> Kindly help.
> >>> > >>
> >>> > >> We use JSF 1.2, MyFaces 1.2.9, Tomahawk 1.1.9
> >>> & RichFaces 3.3.3.
> >>> > >>
> >>> > >>
> >>> > >>
> >>> > >>
> >>> > >>
> >>> java.beans.PropertyDescriptor.getReadMethod(PropertyDescriptor.java:158)
> >>> > >>
> >>> > >>
> >>> javax.faces.component._ComponentAttributesMap.getComponentProperty(_ComponentAttributesMap.java:382)
> >>> > >>
> >>> > >>
> >>> javax.faces.component._ComponentAttributesMap.get(_ComponentAttributesMap.java:227)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils.renderHTMLAttribute(HtmlRendererUtils.java:584)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils.renderHTMLAttributes(HtmlRendererUtils.java:598)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.custom.htmlTag.HtmlTagRenderer.encodeBegin(HtmlTagRenderer.java:73)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:600)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:525)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.custom.htmlTag.HtmlTagRenderer.encodeChildren(HtmlTagRenderer.java:111)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:528)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.custom.htmlTag.HtmlTagRenderer.encodeChildren(HtmlTagRenderer.java:111)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258)
> >>> > >>
> >>> > >>
> >>> org.richfaces.renderkit.AbstractGridRenderer.encodeOneRow(AbstractGridRenderer.java:96)
> >>> > >>
> >>> > >>
> >>> org.richfaces.renderkit.AbstractRowsRenderer.process(AbstractRowsRenderer.java:83)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.model.SequenceDataModel.walk(SequenceDataModel.java:101)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.component.UIDataAdaptorBase.walk(UIDataAdaptorBase.java:1156)
> >>> > >>
> >>> > >>
> >>> org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:104)
> >>> > >>
> >>> > >>
> >>> org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:88)
> >>> > >>
> >>> > >>
> >>> org.richfaces.renderkit.AbstractRowsRenderer.encodeChildren(AbstractRowsRenderer.java:137)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.html.AjaxOutputPanelRenderer.encodeChildren(AjaxOutputPanelRenderer.java:78)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:528)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.custom.htmlTag.HtmlTagRenderer.encodeChildren(HtmlTagRenderer.java:111)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:250)
> >>> > >>
> >>> > >>
> >>> com.sun.facelets.component.RepeatRenderer.encodeChildren(RepeatRenderer.java:64)
> >>> > >>
> >>> com.sun.facelets.component.UIRepeat.process(UIRepeat.java:423)
> >>> > >>
> >>> > >>
> >>> com.sun.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:684)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258)
> >>> > >>
> >>> > >>
> >>> org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:200)
> >>> > >>
> >>> > >>
> >>> org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:195)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:120)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:279)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.renderkit.html.AjaxOutputPanelRenderer.encodeChildren(AjaxOutputPanelRenderer.java:78)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:528)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.custom.htmlTag.HtmlTagRenderer.encodeChildren(HtmlTagRenderer.java:111)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:528)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:532)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.custom.htmlTag.HtmlTagRenderer.encodeChildren(HtmlTagRenderer.java:111)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:528)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.custom.htmlTag.HtmlTagRenderer.encodeChildren(HtmlTagRenderer.java:111)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:528)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.custom.htmlTag.HtmlTagRenderer.encodeChildren(HtmlTagRenderer.java:111)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:528)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.custom.htmlTag.HtmlTagRenderer.encodeChildren(HtmlTagRenderer.java:111)
> >>> > >>
> >>> > >>
> >>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:627)
> >>> > >>
> >>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:250)
> >>> > >>
> >>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:257)
> >>> > >>
> >>> > >>
> >>> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:594)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
> >>> > >>
> >>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:187)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
> >>> > >>
> >>> weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
> >>> > >>
> >>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
> >>> > >>
> >>> > >>
> >>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
> >>> > >>
> >>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
> >>> > >>
> >>> > >>
> >>> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
> >>> > >>
> >>> > >>
> >>> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
> >>> > >>
> >>> > >>
> >>> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:407)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:384)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> com.xxx.yyy.zzz.CookieCartCountFilter.doFilter(CookieCartCountFilter.java:69)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> com.xxx.yyy.zzz.webservice.onesite.OneSiteCacheFilter.doFilter(OneSiteCacheFilter.java:388)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> com.xxx.yyy.zzz.util.CachingFilter.doFilter(CachingFilter.java:143)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> com.xxx.yyy.zzz.util.JsessionidFilter.doFilter(JsessionidFilter.java:43)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> com.xxx.yyy.zzz.util.SessionCookieSupportFilter.doFilter(SessionCookieSupportFilter.java:180)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> de.hybris.platform.util.RootRequestFilter.doFilter(RootRequestFilter.java:741)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:26)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3229)
> >>> > >>
> >>> > >>
> >>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> >>> > >>
> >>> > >>
> >>> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)
> >>> > >>
> >>> > >>
> >>> weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)
> >>> > >>
> >>> weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
> >>> > >>
> >>> weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
> >>> > >>
> >>> > >> Thanks, rajadurai
> >>> > >> --
> >>> > >> View this message in context:
> >>> > >> http://old.nabble.com/MyFaces---Thread-issues-under-High-load-tp31953250p31953250.html
> >>> > >> Sent from the MyFaces - Users mailing list
> >>> archive at Nabble.com.
> >>> > >>
> >>> > >>
> >>> > >
> >>> > >
> >>> > http://old.nabble.com/file/p31991479/Weblogic%2BThread%2BDump.zip
> >>> > Weblogic+Thread+Dump.zip
> >>> > http://old.nabble.com/file/p31991479/Weblogic%2BThread%2BDump.zip
> >>> > Weblogic+Thread+Dump.zip
> >>> > --
> >>> > View this message in context: 
> >>> > http://old.nabble.com/MyFaces---Thread-issues-under-High-load-tp31953250p31991479.html
> >>> > Sent from the MyFaces - Users mailing list archive at
> >>> Nabble.com.
> >>>
> >>>
> >>>
> >>
> >
> 
> **************** CAUTION - Disclaimer *****************
> This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely 
> for the use of the addressee(s). If you are not the intended recipient, 
> please 
> notify the sender by e-mail and delete the original message. Further, you are 
> not 
> to copy, disclose, or distribute this e-mail or its contents to any other 
> person and 
> any such actions are unlawful. This e-mail may contain viruses. Infosys has 
> taken 
> every reasonable precaution to minimize this risk, but is not liable for any 
> damage 
> you may sustain as a result of any virus in this e-mail. You should carry out 
> your 
> own virus checks before opening the e-mail or attachment. Infosys reserves 
> the 
> right to monitor and review the content of all messages sent to or from this 
> e-mail 
> address. Messages sent to or from this e-mail address may be stored on the 
> Infosys e-mail system.
> ***INFOSYS******** End of Disclaimer ********INFOSYS***
> 


Reply via email to