[opencms-dev] Applet upload bug on WebSphere 6.0

Michael Moossen m.moossen at alkacon.com
Fri Jun 13 17:09:20 CEST 2008


Hi Olivier!

Good to see that you have not give up ;)

You have to debug the FileUploadApplet class, which sets that cookie.
you find this class under src-components.

HTH

Kind regards,
Michael

-------------------

Alkacon Software GmbH  - The OpenCms Experts
http://www.alkacon.com - http://www.opencms.org


Chirouze Olivier wrote:
> Hi list.
> 
> I finally managed to install, run, and debug OpenCms 7.0.4 on WebSphere 
> 6.0.
> It seems the "applet upload bug" is not related to Oracle but to 
> WebSphere. I reproduced the bug locally, connected to mysql.
> 
> Here's the technical part:
> 
> It seems to be linked with JSESSION ID, as the exception is thrown when 
> calling getSessionInfo(). The value throws an exception when trying to 
> get Sessino information. The value used in OpenCms code (constructor of 
> class CmsUUID, parameter uuid) was : lpILkdTn8JRnlRPijS-7-Sk. That value 
> threw a NumberFormatException (it is not, indeed, a 36-char value)
> 
> Here's a screenshot of my firefox cookie:
> 
> Picture (Device Independent Bitmap)
> 
> The exception was thrown the first time I a CmsUUID was built, after I 
> clicked on "choose" (in the applet). The whole debug track is:
> 
> CmsUUID.<init>(String) line: 130       
> CmsSessionManager.getSessionUUID(String) line: 467     
> CmsSessionManager.getSessionInfo(String) line: 226     
> CmsSessionManager.getSessionInfo(HttpServletRequest) line: 191 
> OpenCmsCore.initCmsObjectFromSession(HttpServletRequest) line: 869     
> OpenCmsCore.initCmsObject(HttpServletRequest, HttpServletResponse) line: 
> 2066  
> OpenCmsCore.showResource(HttpServletRequest, HttpServletResponse) line: 
> 1489   
> OpenCmsServlet.doGet(HttpServletRequest, HttpServletResponse) line: 152
> OpenCmsServlet.doPost(HttpServletRequest, HttpServletResponse) line: 
> 164       
> OpenCmsServlet(HttpServlet).service(HttpServletRequest, 
> HttpServletResponse) line: 763 
> OpenCmsServlet(HttpServlet).service(ServletRequest, ServletResponse) 
> line: 856 
> ServletWrapper.service(ServletRequest, ServletResponse, 
> WebAppServletInvocationEvent) line: 1694       
> ServletWrapper.handleRequest(ServletRequest, ServletResponse) line: 823
> CacheServletWrapper.handleRequest(ServletRequest, ServletResponse) line: 
> 90    
> WebContainer.handleRequest(IRequest, IResponse) line: 1936     
> WCChannelLink.ready(VirtualConnection) line: 116       
> HttpInboundLink.handleDiscrimination() line: 434       
> HttpInboundLink.handleNewInformation() line: 373       
> HttpInboundLink.ready(VirtualConnection) line: 253     
> NewConnectionInitialReadCallback.sendToDiscriminaters(VirtualConnection, 
> TCPReadRequestContext, boolean) line: 207     
> 
> NewConnectionInitialReadCallback.complete(VirtualConnection, 
> TCPReadRequestContext) line: 109  
> WorkQueueManager.requestComplete(TCPBaseRequestContext, IOException) 
> line: 566 
> WorkQueueManager.attemptIO(TCPBaseRequestContext, boolean) line: 619   
> WorkQueueManager.workerRun(TCPBaseRequestContext, IOException) line: 
> 952       
> WorkQueueManager$Worker.run() line: 1039       
> ThreadPool$Worker.run() line: 1475     
> 
> The method where the exception is catched is:
> 
> 
> *protected** void* showResource(HttpServletRequest req, 
> HttpServletResponse res) {
> 
>         CmsObject cms =* null*;
>        * try* {
>             cms = initCmsObject(req, res);
>             // user is initialized, now deliver the requested resource
>             CmsResource resource = initResource(cms, 
> cms.getRequestContext().getUri(), req, res);
>            * if* (resource !=* null*) {
>                 // a file was read, go on process it
>                 m_resourceManager.loadResource(cms, resource, req, res);
>                 m_sessionManager.updateSessionInfo(cms, req);
>             }
> 
>         }* catch* (Throwable t) {
>             errorHandling(cms, req, res, t);
>         }
>     }
> 
> The exception and backtrace are:
> 
> java.lang.NumberFormatException: UUID has to be represented by the 
> standard 36-char representation
> 
> class org.safehaus.uuid.UUID
> class org.opencms.util.CmsUUID
> class org.opencms.main.CmsSessionManager
> class org.opencms.main.CmsSessionManager
> class org.opencms.main.CmsSessionManager
> class org.opencms.main.OpenCmsCore
> class org.opencms.main.OpenCmsCore
> class org.opencms.main.OpenCmsCore
> class org.opencms.main.OpenCmsServlet
> class org.opencms.main.OpenCmsServlet
> class javax.servlet.http.HttpServlet
> class javax.servlet.http.HttpServlet
> class com.ibm.ws.webcontainer.servlet.ServletWrapper
> class com.ibm.ws.webcontainer.servlet.ServletWrapper
> class com.ibm.ws.webcontainer.servlet.CacheServletWrapper
> class com.ibm.ws.webcontainer.WebContainer
> class com.ibm.ws.webcontainer.channel.WCChannelLink
> class com.ibm.ws.http.channel.inbound.impl.HttpInboundLink
> class com.ibm.ws.http.channel.inbound.impl.HttpInboundLink
> class com.ibm.ws.http.channel.inbound.impl.HttpInboundLink
> class com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback
> class com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback
> class com.ibm.ws.tcp.channel.impl.WorkQueueManager
> class com.ibm.ws.tcp.channel.impl.WorkQueueManager
> class com.ibm.ws.tcp.channel.impl.WorkQueueManager
> class com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker
> class com.ibm.ws.util.ThreadPool$Worker
> 
> I don't know why this happens here and not elsewhere. Other values for 
> uuid I saw where URLs, and other strange values like 
> c7a2e451-11b7-11db-91cd-fdbae480bac9 or 
> c7a79f4c-11b7-11db-91cd-fdbae480bac9 or even 
> 00000000-0000-0000-0000-000000000000: they passed without error (but all 
> had the same pattern). Only that specific JSESSIONID value made it crash.
> 
> So… will that help someone fix it?
> 
> I'm available for some more tests: everything is now setup on my PC.
> 
> Thanks
> 
> Olivier
> 
> *Olivier CHIROUZE
> */I&0 Infrastructure
> / 
> ___*Volvo Information 
> Technology                                                                                            *_** 
> 
> 
> 402 avenue Charles de Gaulle    ( phone: +33 (0)4.72.96.89.39      
> API: VNX 0A0 0 02                       6 telecopy: +33(0)4.72.96.76.80
> 69635 Vénissieux Cedex - France * _olivier.chirouze at volvo.com_ 
> <mailto:olivier.chirouze at external.renault-trucks.com>
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://lists.opencms.org/mailman/listinfo/opencms-dev



More information about the opencms-dev mailing list