[opencms-dev] Applet upload bug on WebSphere 6.0

Chirouze Olivier olivier.chirouze at volvo.com
Thu Jun 12 18:28:44 CEST 2008


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> 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://webmail.opencms.org/pipermail/opencms-dev/attachments/20080612/88de9447/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ole0.bmp
Type: image/bmp
Size: 69318 bytes
Desc: Picture (Device Independent Bitmap)
URL: <https://webmail.opencms.org/pipermail/opencms-dev/attachments/20080612/88de9447/attachment.bin>


More information about the opencms-dev mailing list