Thursday, October 07, 2004

JDocs: Sun is right

First of all, I think JDocs is a great a Idea. Especially if you need to refer to several open source java docs. But using JDocs for a while I can see why Sun didn't want to provide JavaDocs at JDocs.com.

JDocs.com doesn't have same uptime as java.sun.com: With little or no money that JDocs makes, Rick has little resources to maintain uptime required. Last two hours I am not able to access JDocs for whatever reason.

Missing features: There are several features that are missing in JDocs. Index is disabled on main page for all api's where as index link doesn't work in individual class docs(But link is not disabled).

Unwanted Advertisements: Do we really want to see Microsoft advertisements on JavaDocs?

EOL Docs removal: Sun prefers to remove javadocs for EOL products to encourage users to move to supported versions of J2SE. Everytime it needs to do this, it has to deal with Rick.

I love JDocs.com and use it very often but that doesn't mean I want J2SE JavaDocs on JDocs.com.

Firefox and Google Browser

Firefox seems to be already the most popular browser that java developers are using. Looking at sitemeter reports for my Blog showed that IE has less than 30% share (ofcourse among people who visit this blog).
A surprising entry is Google4.x browser. I am assuming its some fowl play :-)

Here is the report anyway:

Tuesday, October 05, 2004

Adding sound to a boring build

Well, the builds that I do at my day job take a couple of minutes and I hate wating for build to complete. So i decided to add a simple voice notification mechanism at the end of the build so that I can go back to poor dos prompt.

I was left with three options:

1. Using optional ant task Sound.
Using sound task is little boring since you need the audio files for what your build process want to say to you. Also this requires modifying the original build which could be annoying for other team members who don't prefer the sound notification.

2. Writing a custom ant task using FreeTTS.
Writing a custom ant task would help me relearn how to write custom ant task as it has been 2 years since i wrote a custom ant task. But the problem is this also requires modifying the original build which could be annoying for other team members who don't prefer the sound notification.

3. Writing a custom logger.
Well this option probably is simplest and doesn't require any change to regular build file. So this works great for me.


Its really amazing how simeple this task is using FreeTTS and Ant. Write a simple logger extending DefaultLogger. Extending DefaultLogger helps because you only need to listen to events that you want to add sound to. Here is my code for providing sound to build complete event:


package org.js.build;

import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.DefaultLogger;

import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;


public class FreeTTSLogger extends DefaultLogger {

    public void buildFinished(BuildEvent e)
    {
      //Let default logger do what ever it doing.
        super.buildFinished(e);

        String voiceName = "kevin16";
        //create voice 
        Voice buildVoice = VoiceManager.getInstance().getVoice(voiceName);

        if (buildVoice == null) {
            System.err.println("Cannot load a voice named " + voiceName + ".");
            return;
        }
        //Allocate the resources for the voice.
        buildVoice.allocate();

        /* Synthesize speech based on whether or not build is successful
         */
        if(e.getException() == null)
          buildVoice.speak("Build completed Mr. Kumar.");
        else
          buildVoice.speak("Build failed.");

        //cleanup. Be a good citizen.
        buildVoice.deallocate();

    }

}


For using the logger copile this code into a jar file of its own. You can download my jar file. copy this jar file into lib directory of your ANT_HOME. Now you need to copy FreeTTS libraries (all jars under freetts\lib directory) to ANT_HOME\lib directory. But ant 1.6 and FreeTTS 1.2Beta2, this throws a unexpected Exception:

java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.Vector.toArray(Vector.java:688)
at com.sun.speech.freetts.UniqueVector.toArray(VoiceManager.java:840)
at com.sun.speech.freetts.VoiceManager.getVoiceDirectories(VoiceManager.java:203)
at com.sun.speech.freetts.VoiceManager.getVoices(VoiceManager.java:109)
at com.sun.speech.freetts.VoiceManager.getVoice(VoiceManager.java:519)
at org.js.build.FreeTTSLogger.buildFinished(FreeTTSLogger.java:55)
at org.apache.tools.ant.Project.fireBuildFinished(Project.java:1796)
at org.apache.tools.ant.Main.runBuild(Main.java:693)
at org.apache.tools.ant.Main.startAnt(Main.java:188)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)

A simple way to get around this is by copying FreeTTS libraries to JRE\lib\ext directory. Now to use this new logger, just use the command:

ant -logger org.js.build.FreeTTSLogger

What bubble got Right

Paul Graham has a great write up on What The Bubble Got Right. Its a great read since everthing that became fashionable during the Bubble is now unfashionable.

Sunday, October 03, 2004

Longest Stack Trace Ever?

Jason Hunter posted a stack trace that appears to be longest ever. Ofcourse credit goes IBM :-)

Here it goes:


Nested Exception is java.lang.IllegalStateException
at com.ibm.wps.pe.pc.legacy.impl.PortletRequestImpl.getInputStream(PortletRequestImpl.java:221)
at com.oreilly.servlet.multipart.MultipartParser.(MultipartParser.java:183)
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:222)
at com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:109)
at resume.ResumePortlet.doView(ResumePortlet.java:166)
at org.apache.jetspeed.portlet.PortletAdapter.service(PortletAdapter.java:154)
at org.apache.jetspeed.portlet.Portlet._dispatch(Portlet.java:744)
at org.apache.jetspeed.portlet.Portlet.access$100(Portlet.java:88)
at org.apache.jetspeed.portlet.Portlet$Context.callPortlet(Portlet.java:899)
at com.ibm.wps.pe.pc.legacy.cmpf.impl.PortletFilterManager.doFilter(PortletFilterManager.java:253)
at org.apache.jetspeed.portlet.Portlet.dispatch(Portlet.java:636)
at org.apache.jetspeed.portlet.Portlet.doPost(Portlet.java:516)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jetspeed.portlet.Portlet.service(Portlet.java:491)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:972)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:554)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:246)
at com.ibm.wps.pe.pc.legacy.invoker.impl.PortletInvokerImpl.callMethod(PortletInvokerImpl.java:474)
at com.ibm.wps.pe.pc.legacy.invoker.impl.PortletInvokerImpl.render(PortletInvokerImpl.java:144)
at com.ibm.wps.pe.pc.legacy.PortletContainerImpl.callPortletMethod(PortletContainerImpl.java:1372)
at com.ibm.wps.pe.pc.legacy.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:380)
at com.ibm.wps.pe.pc.PortletContainerImpl.doRenderPortlet(PortletContainerImpl.java:413)
at com.ibm.wps.pe.pc.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:98)
at com.ibm.wps.pe.pc.PortletContainer.renderPortlet(PortletContainer.java:95)
at com.ibm.wps.composition.PortletHolder.render(PortletHolder.java:87)
at com.ibm.wps.engine.tags.PortletRenderTag.doStartTag(PortletRenderTag.java:151)
at org.apache.jsp._Control._jspService(Control.jsp :176)
at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:357)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:675)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:773)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:967)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:554)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:246)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
at com.ibm.wps.engine.templates.skins.Default.render(Default.java:70)
at com.ibm.wps.engine.templates.SkinTemplate.render(SkinTemplate.java:75)
at com.ibm.wps.composition.elements.Component.render(Component.java:906)
at com.ibm.wps.composition.elements.Control.render(Control.java:210)
at com.ibm.wps.composition.Composition.render(Composition.java:2745)
at org.apache.jsp._UnlayeredContainer_2D_V._jspService(UnlayeredContainer-V.jsp :12)
at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:357)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:675)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:773)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:967)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:554)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:246)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
at com.ibm.wps.engine.templates.skins.Default.render(Default.java:70)
at com.ibm.wps.engine.templates.SkinTemplate.render(SkinTemplate.java:75)
at com.ibm.wps.composition.elements.Component.render(Component.java:906)
at com.ibm.wps.composition.elements.SingleEntryContainer.render(SingleEntryContainer.java:207)
at com.ibm.wps.engine.tags.CompositionRenderTag.doStartTag(CompositionRenderTag.java:318)
at org.apache.jsp._LayeredContainer._jspService(LayeredContainer.jsp:176)
at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:357)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:675)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:773)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:967)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:554)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:246)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
at com.ibm.wps.engine.templates.skins.Default.render(Default.java:70)
at com.ibm.wps.engine.templates.SkinTemplate.render(SkinTemplate.java:75)
at com.ibm.wps.composition.elements.Component.render(Component.java:906)
at com.ibm.wps.composition.elements.SingleEntryContainer.render(SingleEntryContainer.java:207)
at com.ibm.wps.engine.tags.CompositionRenderTag.doStartTag(CompositionRenderTag.java:318)
at org.apache.jsp._Home._jspService(Home.jsp :2)
at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:357)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:675)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:773)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:967)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:554)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:246)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
at com.ibm.wps.engine.templates.screens.Default.render(Default.java:73)
at com.ibm.wps.engine.templates.ScreenTemplate.render(ScreenTemplate.java:64)
at com.ibm.wps.engine.tags.ScreenRenderTag.doStartTag(ScreenRenderTag.java:69)
at org.apache.jsp._Default._jspService(Default.jsp :572)
at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:357)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:675)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:773)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:967)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:554)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:246)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
at com.ibm.wps.engine.templates.themes.Default.render(Default.java:129)
at com.ibm.wps.engine.templates.ThemeTemplate.render(ThemeTemplate.java:71)
at com.ibm.wps.engine.Servlet.callPortal(Servlet.java:770)
at com.ibm.wps.engine.Servlet.doGet(Servlet.java:465)
at com.ibm.wps.engine.Servlet.doPost(Servlet.java:801)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:76)
at com.ibm.wps.mappingurl.impl.URLAnalyzer.doFilter(URLAnalyzer.java:185)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:963)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:554)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:198)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:201)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:114)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:610)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:431)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)