We have many users complaining about the error message in the forum that the entered message would be too long.
There are three issues here:
1) While typing users don't see how long the message already is. A feature like when writing SMS messages would be very handy that counts back the number of available characters. When the error appears, a user has absolutely no clue how much too long the message is. At least it should say: it's 5222 characters, but only 4000 are allowed or something like this. A user has to know how much he has to delete.
2) The 4000 characters include the HTML markup. We can not change this, this is due to the fact that we allow formatting with HTML markup. The problem here is that this is not transparent to users, they might enter 3500 characters only (copy past from word) and the system complains about having entered more than 4000 characters.
3) In many situations 4000 characters is just not enough. From a user perspective it's not understandable why such a short limitation is there. It's frustrating.
The solution is IMHO simple: use a much larger limit. While does not solve the problems 1) and 2) it would still help a lot since most users will never upload insanely large postings. But large postings should be allowed.
The database definition is unclear in the case of the MessageImpl.hbm.xml. The definition says it is of type string with an explicit limit of about 16mio characters (With UTF-8 this might be only 4mio, but still compared to the GUI which allows 4k only....). Which this limit the type should actually be text/blob and not string.
For MySQL it is probably no issue at all to raise the limit to something more, however with Postgres and Oracle this might need some database alter scripts. Since we do not use search features within the forum I don't see any problems with using blob instead of varchar.