logo       

my patches for Enhydra 5.1: msg#00008

java.enhydra.general

Subject: my patches for Enhydra 5.1

Hi guys,

I have just sent a couple of bug fixes and ideas to Alfred to get them
included in the upcoming Enhydra 5.1. I thought it would be wise to
allow you all to look at my patches and ideas and perhaps correct me if
I overlooked something. This mailing list was intended for such
discussions, wasn't it?

First there are some simple patches but later are some more important
ideas. The most serious thing I wanted to get fixed in Enhydra 5.1 is
the URL based session handling. The ";jsessionid=" is not working
properly for all client browsers and various cache servers, I am
afraid... See below.

So here follows the original mail:

There is a whole bunch of things I would like to get included in Enhydra
5.1:

1) redirection to default URL should use ServerPageRedirect, not
ClientPageRedirect, because with ClientPageRedirect the query parameters
get lost!

Patch attached: POSTpatch.diff

2) pointsToPO() function is broken for URLs with query that contains a
".po". This is a serious bug!

Patch attached: PointsToPO.diff

3) in Enhydra 5.0 the documentation of changes says that my patch for
sessionHome variable made protected instead of private was accepted but
the actual source code was not changed.

Patch attached: ProtectedSessionHome.diff

This patch was meant for easier overriding the session manager. Though
perhaps it would be better if you included the alternate method for
inquiring the active sessions without modifying their state (without
calling the internal "touch()"). It's mentioned in the enhydra mailing
list several times recently - see Terry Steichen's mail from December or
Mike Schubert from November (subj. "User management"). I could develop a
patch for this if you wish.

4) XMLC needs newer DTD for xHTML. At least the following file must get
updated with a new revision from w3.org:

modules/xHTML/src/org/enhydra/xml/xhtml/xhtml1-transitional.dtd

The key thing is that ALL XHTML tags can now contain the "ID" - for
example also the <TITLE> (which is not possible with current Enhydra 5.0
DTD).

5) there's a warning that occurs when ServerPageRedirect takes place.
This warning is IMHO unnecessary and just pollutes the log file. I'll
create a patch for it and send it to you.

6) writeDOM() calls setDropHtmlSpanIds() with a remark that it's a hack
for IE compatibility. This is a serious Enhydra bug since ID attributes
are used for CSS and if they're missing the whole CSS stops working.
This "IE hack" mode should be killed ASAP - it was developed for IE4 and
that browser is dead already, anyway. I'll create a patch for this and
send it to you.


Even more issues: I have run into troubles with generating XHTML
documents. The header is set to "xml" which is very wrong. I asked it to
change this to "html" but the XMLC guys didn't like it much. There
should be a compatibility setting somewhere in the configuration that
would allow "XHTML" documents to be marked as "html" files, I think.
Will work on this issue more in the next few days.


And the most important problem: cookie based sessions do not work
reliably when user opens several windows in the same browser thus the
only solution is to switch to URL based session IDs. Unfortunately the
"URL;jsessionid=XxXxXx" seems to confuse some gateways or proxy servers
or god knows what but the end result is that often the ";jsessionid"
gets lost. The solution seems to be to switch from "URL;jsessionid=" to
standard query "URL?jsessionid=". I understand that this would probably
break the session affinity in enhydra director so it's not an easy
change... but we need a solution for this.

Also, we need a public function in Enhydra that would mangle a passed
URL the same way it mangles the URLs in the DOM tree. I.e. it appends
the ";jsessionid" (or not), it appends my random "t=time" parameter (or
not) and in future it would also know whether to append ";jsessionid" or
the "?jsessionid". This public function is to be called by programmer in
the getElementUrl().setHref("page.po") cases (when you set the URL
manually and cannot make use of the nice automatic XMLC ".html" ->
".po;jsessionid" conversion. The idea is to call
.setHref(comms.response.mangleUrl("page.po")) or something like that.

Uff. That's it. Thanks if you read up to this. Please ask me if I wasn't
clear on something.

Petr

Attachment: POSTpatch.diff
Description: Text document

Attachment: PointsToPO.diff
Description: Text document

Attachment: ProtectedSessionHome.diff
Description: Text document

<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise