That JRE_HOME looks a bit suspicious, while it's syntactically correct in the sense that the canonical resolution of /./usr/jdk1.5.0_07/ is in fact /usr/jdk1.5.0_07, you might be confusing something.
startup and shutdown.sh eventually call "catalina.sh".
You should have a look at that, with particular reference to the "variables" that are documented at the top of file (JAVA_OPTS / CATALINA_OPTS being common culprits).
Scroll down to the section that actually does the "-stop", and echo the command line it's executing. you'd end up with something like.
And check for any obvious foolishness (like -Xmx128 which sets your max mem size to be 128 bytes, as opposed to -Xmx128m for instance)
catalina.sh is just a script, nothing terribly complicated.