You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by André Warnier <aw...@ice-sa.com> on 2008/11/25 16:55:51 UTC

Manager app language

Hi.
I have a strange happening in Tomcat 5.5, under Linux Debian.
Apparently since today, the Manager app (accessed through /manager/html) 
responds with its main page in German.
This is bizarre, because
- it was not so before
- I have 3 browsers installed on my laptop, and with all3 I have the 
same thing
- my Firefox browser speaks English to me and, as per capture by 
LiveHttpHeaders plugin, is sending the request to the Manager as follows :

GET /manager/html/list HTTP/1.1
...
Accept-Language: en-gb,en;q=0.5

- to my knowledge, we have never installed anything on that system 
specifying German as the language
- the system default locale is en_US_iso8859-15
- the Tomcat startup script sets LC_CTYPE to the same value prior to 
calling Tomcat (this is due to a badly-behaved webapp which does not 
work correctly otherwise)
- I can find nowhere in Tomcat's configuration files, or in the Manager 
webapp setup, a parameter that would indicate German as a language
- Tomcat's help pages are in English, even the Manager's help pages are 
English

About the only thing I can think of that connects to the German language 
is the fact that the host itself is geographically located in Germany.

But where the h.. does Tomcat or the Manager figure that it needs to 
send the "application list" main page in German ?
Where could this be coming from ?

Is there some system property file that I should be looking at ?

Thanks




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Manager app language

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: André Warnier [mailto:aw@ice-sa.com]
> Subject: Re: Manager app language

> But where the h.. does Tomcat or the Manager figure that it needs to
> send the "application list" main page in German ?

The nice Tomcat folks provided a few language translations of the manager strings in LocalStrings[_xx].properties files (buried inside server/webapps/manager/WEB-INF/lib/catalina-manager.jar).  The appropriate one is read up as a ResourceBundle during manager initialization based on the value of Locale.getDefault().  The default Locale is derived from the user.language system property, which itself initially comes from LC_xxx variants, if not set on the command line.  The default Locale can be changed on the fly (as can user.language), but that shouldn't affect message bundles already read in.

If Tomcat or the manager app were not restarted before each language change, I still don't understand how this could happen.  I went so far as to modify the manager servlet to change the Locale after each display of the status page (and show the current language), but it still had no effect.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Caldarale, Charles R wrote:
>> From: André Warnier [mailto:aw@ice-sa.com]
>> Subject: Re: Manager app language
>>
>> Attached the page I get.
> 
> It got stripped off somewhere along the way.
> 
>> In the official Tomcat, where is this page hidden ?
> 
> The manager pages in 5.5 are generated dynamically by servlets in:
>   server/webapps/manager/WEB-INF/lib/catalina-manager.jar
> 
> Now that I look in there, I have to correct what I said previously: there are indeed German strings available for the manager messages, so something could have gotten switched.  Will have to look at the source code to see what triggers use of the LocalStrings_de.properties file.
> 
Thanks.
Here is the page.
At least I'm sure this time that I attach it.
Grosse Bruder might still remove it though.



RE: Manager app language

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: André Warnier [mailto:aw@ice-sa.com]
> Subject: Re: Manager app language
>
> Attached the page I get.

It got stripped off somewhere along the way.

> In the official Tomcat, where is this page hidden ?

The manager pages in 5.5 are generated dynamically by servlets in:
  server/webapps/manager/WEB-INF/lib/catalina-manager.jar

Now that I look in there, I have to correct what I said previously: there are indeed German strings available for the manager messages, so something could have gotten switched.  Will have to look at the source code to see what triggers use of the LocalStrings_de.properties file.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Caldarale, Charles R wrote:
>> From: André Warnier [mailto:aw@ice-sa.com]
>> Subject: Manager app language
>>
>> I have a strange happening in Tomcat 5.5, under Linux Debian.
> 
> Red flag goes up: real Tomcat, or Debian corruption?
> 
>> Apparently since today, the Manager app (accessed through
>> /manager/html) responds with its main page in German.
> 
> Pretty cool.
> 
> A standard Tomcat does not have any German in it.  (There are French, Japanese, and Spanish translations of some messages - and some distributions add other languages, but I've never seen one with alternate language web pages.)
> 
> Have you been hacked?  (Or perhaps Google translation is more widespread than we knew...)
> 
> Großer Bruder aufpaßt Sie ie.
> 
Looks like it.
Attached the page I get.
It's cool, but I have no idea where it comes from.

In the official Tomcat, where is this page hidden ?




RE: Manager app language

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: André Warnier [mailto:aw@ice-sa.com]
> Subject: Manager app language
>
> I have a strange happening in Tomcat 5.5, under Linux Debian.

Red flag goes up: real Tomcat, or Debian corruption?

> Apparently since today, the Manager app (accessed through
> /manager/html) responds with its main page in German.

Pretty cool.

A standard Tomcat does not have any German in it.  (There are French, Japanese, and Spanish translations of some messages - and some distributions add other languages, but I've never seen one with alternate language web pages.)

Have you been hacked?  (Or perhaps Google translation is more widespread than we knew...)

Großer Bruder aufpaßt Sie ie.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Michael Ludwig wrote:
> Michael Ludwig schrieb am 26.11.2008 um 20:57:12 (+0100):
>> LC_MESSAGES or LC_ALL would be the ones to look out for. LC_CTYPE is
>> for character classification.
>>
>> Watch out for LANG, which overrides everything else.
> 
> I was mistaken here. LANG is *not* the one that overrides everything
> else. LANG is overriden by LC_MESSAGES (or any other LC_* accordingly),
> which in turn are overridden by LC_ALL.
> 
In any case :

- setting LC_CTYPE to either "en_GB.iso885915" or "de_DE.iso885915" in 
the Tomcat startup scripts (e.g. sentenv.sh), and restarting Tomcat, 
results in the Tomcat Manager "list applications" page to be displayed 
respectively in English or German.
Setting LC_ALL would probably have the same effect.

- in our case, we still have something somewhere that causes (or caused) 
the Manager to display its list apps page in German, despite the fact 
that LC_CTYPE was always set to "en_GB.iso885915" on that host (except 
for the above test).
The most likely suspect so far, would be some other web application, 
which during the execution of its init() method, would (have) reset the 
user.language property of the JVM, at a time before the init() method of 
the Tomcat Manager was called.

It is however a bit difficult to track down now, because in the meantime 
we have removed some unnecessary web applications (servlet-examples, 
jsp-examples, balancer example,..), and we are not sure that the 
resulting order of web application startup is the same as it was before 
these deletions.

As a general comment, and considering that nowadays the place where 
Tomcat is being managed may not necessarily reflect the geographical 
location of the host on which it runs, I would recommend in future that 
either the Manager would respond in function of the browser's 
"Accept-Language" headers, or that the Manager language would be set in 
an <init-param> section in it's web.xml.

It would definitely remove an element of surprise and wonder though, 
which could be preserved by allowing a value of "any" for said 
init-param.  This would also help advertise the fact that the Tomcat 
Manager can speak in tongues, which was unknown to us until a couple of 
weeks ago.



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by Michael Ludwig <mi...@gmx.de>.
Michael Ludwig schrieb am 26.11.2008 um 20:57:12 (+0100):
> LC_MESSAGES or LC_ALL would be the ones to look out for. LC_CTYPE is
> for character classification.
> 
> Watch out for LANG, which overrides everything else.

I was mistaken here. LANG is *not* the one that overrides everything
else. LANG is overriden by LC_MESSAGES (or any other LC_* accordingly),
which in turn are overridden by LC_ALL.

Michael Ludwig

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Christopher Schultz wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> André,
> 
> André Warnier wrote:
>> This Tomcat, Sir, was born English-speaking, in an English-speaking
>> Host, and spoke exclusively English for the first 3 years of his life.
>> Only yesterday did he ever speak German
> 
> I would be overjoyed if my 3-year-old could suddenly speak German: he'd
> probably be better than me: Ich spreche nur ein bischen Deutsch. Ma
> parlo un poco d'Italiano. I just can't decide which language to master.
> Maybe I'll start with English ;)
> 
With a name like yours, I'd definitely go for Italian though, for the 
surprise effect. Il Schulz-e, de Tedesco niente, ma parla Italiano como 
un mafioso.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

André,

André Warnier wrote:
> This Tomcat, Sir, was born English-speaking, in an English-speaking
> Host, and spoke exclusively English for the first 3 years of his life.
> Only yesterday did he ever speak German

I would be overjoyed if my 3-year-old could suddenly speak German: he'd
probably be better than me: Ich spreche nur ein bischen Deutsch. Ma
parlo un poco d'Italiano. I just can't decide which language to master.
Maybe I'll start with English ;)

- -chris

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkk1VFMACgkQ9CaO5/Lv0PBoWACfTx5KJd1EZdyFKYZjV521Zr/9
eeEAn1UaqolARQGBrriLdF5MaKRNfXk6
=d0Oq
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: [OT] RE: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Peter Crowther wrote:
>> From: André Warnier [mailto:aw@ice-sa.com]
>> Caldarale, Charles R wrote:
>>> Is the server named after a legendary British king, the
>> Kinks album, or the HHGTTG character?
>> HHGTTG.
>> We also have marvin, ford, dent, zaphod, trillian, fenchurch,.. even a
>> slartibartfast (wich also has an alias, for evident reasons).
>> marvin is an old Sun, which has been making strange complaining noises
>> for a while now, unsurprisingly.
> 
> Zaphod: "Computer..."
> 
> Eddie: "Hi, this is Eddie, your shipboard computer.  I hope you're having a great day!"
> 
> Zaphod: "... yeah.  Er... computer..."
> 
> Eddie: "Call me Ed, please, if it'll help you relax."
> 
> Zaphod: "... look, can you just tell me the probability of everybody on the Tomcat mailing list being able to get the right combination of JVM, Tomcat version, lack of repackaging, AJP connector options and logging configured?"
> 
> Eddie: "Oh, that's an easy one!  Two to the power of infinity minus one... and rising!"
> 
Well, this whole discussion started because we have this webapp which 
does the same thing to Tomcat as making a cup of tea did to Eddie.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


[OT] RE: Manager app language

Posted by Peter Crowther <Pe...@melandra.com>.
> From: André Warnier [mailto:aw@ice-sa.com]
> Caldarale, Charles R wrote:
> > Is the server named after a legendary British king, the
> Kinks album, or the HHGTTG character?
> HHGTTG.
> We also have marvin, ford, dent, zaphod, trillian, fenchurch,.. even a
> slartibartfast (wich also has an alias, for evident reasons).
> marvin is an old Sun, which has been making strange complaining noises
> for a while now, unsurprisingly.

Zaphod: "Computer..."

Eddie: "Hi, this is Eddie, your shipboard computer.  I hope you're having a great day!"

Zaphod: "... yeah.  Er... computer..."

Eddie: "Call me Ed, please, if it'll help you relax."

Zaphod: "... look, can you just tell me the probability of everybody on the Tomcat mailing list being able to get the right combination of JVM, Tomcat version, lack of repackaging, AJP connector options and logging configured?"

Eddie: "Oh, that's an easy one!  Two to the power of infinity minus one... and rising!"

                - Peter

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Caldarale, Charles R wrote:
> Is the server named after a legendary British king, the Kinks album, or the HHGTTG character?
HHGTTG.
We also have marvin, ford, dent, zaphod, trillian, fenchurch,.. even a 
slartibartfast (wich also has an alias, for evident reasons).
marvin is an old Sun, which has been making strange complaining noises 
for a while now, unsurprisingly.
We recently started with an enterprise (VMWare server) and a spock and a 
kirk (VM machines) though, cause we ran out of main characters in HHGTTG.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: How to set Log4J debug flag in Tomcat

Posted by Martin Gainty <mg...@hotmail.com>.
LOGGING:
Create a file called log4j.properties with the following content 
            and save it into common/classes.
          log4j.rootLogger=DEBUG,R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%
--Container specific
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, 
--core specific
log4j.logger.org.apache.catalina.core=DEBUG, R
--session specific
log4j.logger.org.apache.catalina.session=DEBUG, R

Download Log4J 
            (v1.2 or later) and place the log4j jar in $CATALINA_HOME/common/lib.
            Download Commons Logging and place the commons-logging-x.y.z.jar 
            (not commons-logging-api-x.y.z.jar) in $CATALINA_HOME/common/lib with 
            the log4j jar.Start Tomcat
Documentation is located at
http://tomcat.apache.org/tomcat-5.5-doc/logging.html

hth
Martin 
______________________________________________ 
Disclaimer and confidentiality note 
Everything in this e-mail and any attachments relates to the official business of Sender. This transmission is of a confidential nature and Sender does not endorse distribution to any party other than intended recipient. Sender does not necessarily endorse content contained within this transmission. 




> Subject: How to set Log4J debug flag in Tomcat
> Date: Wed, 10 Dec 2008 19:31:09 -0500
> From: Rebeccah.H.Prastein@questdiagnostics.com
> To: users@tomcat.apache.org
> 
> How do I start tomcat as an application (not a service) and set the
> log4j debug commandline parameter?
> 
> I tried editing startup.bat to prepend -Dlog4j.debug to %CMD_LINE_ARGS%,
> but I get the following error on startup, and I don't see any log4j
> debug output:
> 
> usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ]
> [ -nonaming ] { start | stop }
> 
> Thanks for any help.
> 
> Rebeccah
> ------------------------------------------
> The contents of this message, together with any attachments, are
> intended only for the use of the person(s) to which they are
> addressed and may contain confidential and/or privileged
> information. Further, any medical information herein is
> confidential and protected by law. It is unlawful for unauthorized
> persons to use, review, copy, disclose, or disseminate confidential
> medical information. If you are not the intended recipient,
> immediately advise the sender and delete this message and any
> attachments. Any distribution, or copying of this message, or any
> attachment, is prohibited.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 

_________________________________________________________________
Send e-mail faster without improving your typing skills.
http://windowslive.com/Explore/hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_speed_122008

RE: How to set Log4J debug flag in Tomcat

Posted by "Prastein, Rebeccah H" <Re...@questdiagnostics.com>.
I'll take a look, thanks.

Rebeccah
 

-----Original Message-----
From: André Warnier [mailto:aw@ice-sa.com] 
Sent: Wednesday, December 10, 2008 4:51 PM
To: Tomcat Users List
Subject: Re: How to set Log4J debug flag in Tomcat

Prastein, Rebeccah H wrote:
> How do I start tomcat as an application (not a service) and set the 
> log4j debug commandline parameter?
> 
> I tried editing startup.bat to prepend -Dlog4j.debug to 
> %CMD_LINE_ARGS%, but I get the following error on startup, and I don't 
> see any log4j debug output:
> 
> usage: java org.apache.catalina.startup.Catalina [ -config {pathname} 
> ] [ -nonaming ] { start | stop }
> 
Sounds like your added switch gets added at the end, after the -jar.
I don't have a Windows Tomcat handy, but you might try to add it in JAVA_OPTS instead, like JAVA_OPTS="$JAVA_OPTS -Dlog4j.debug"
(Unix version)
Maybe in sentenv.bat, if it exists ?

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org

------------------------------------------
The contents of this message, together with any attachments, are
intended only for the use of the person(s) to which they are
addressed and may contain confidential and/or privileged
information. Further, any medical information herein is
confidential and protected by law. It is unlawful for unauthorized
persons to use, review, copy, disclose, or disseminate confidential
medical information. If you are not the intended recipient,
immediately advise the sender and delete this message and any
attachments. Any distribution, or copying of this message, or any
attachment, is prohibited.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: How to set Log4J debug flag in Tomcat

Posted by André Warnier <aw...@ice-sa.com>.
Prastein, Rebeccah H wrote:
> How do I start tomcat as an application (not a service) and set the
> log4j debug commandline parameter?
> 
> I tried editing startup.bat to prepend -Dlog4j.debug to %CMD_LINE_ARGS%,
> but I get the following error on startup, and I don't see any log4j
> debug output:
> 
> usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ]
> [ -nonaming ] { start | stop }
> 
Sounds like your added switch gets added at the end, after the -jar.
I don't have a Windows Tomcat handy, but you might try to add it in 
JAVA_OPTS instead, like
JAVA_OPTS="$JAVA_OPTS -Dlog4j.debug"
(Unix version)
Maybe in sentenv.bat, if it exists ?

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


How to set Log4J debug flag in Tomcat

Posted by "Prastein, Rebeccah H" <Re...@questdiagnostics.com>.
How do I start tomcat as an application (not a service) and set the
log4j debug commandline parameter?

I tried editing startup.bat to prepend -Dlog4j.debug to %CMD_LINE_ARGS%,
but I get the following error on startup, and I don't see any log4j
debug output:

usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ]
[ -nonaming ] { start | stop }

Thanks for any help.

Rebeccah
------------------------------------------
The contents of this message, together with any attachments, are
intended only for the use of the person(s) to which they are
addressed and may contain confidential and/or privileged
information. Further, any medical information herein is
confidential and protected by law. It is unlawful for unauthorized
persons to use, review, copy, disclose, or disseminate confidential
medical information. If you are not the intended recipient,
immediately advise the sender and delete this message and any
attachments. Any distribution, or copying of this message, or any
attachment, is prohibited.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Caldarale, Charles R wrote:
>> From: André Warnier [mailto:aw@ice-sa.com]
>> Subject: Re: Manager app language
>>
>> Personally, I don't see anything in there that looks like it
>> is setting the global JVM user.language property.
> 
> So what was the basis of your previous statement that the JSP is doing that?  As you noted, there's nothing in it now reflecting that behavior other than the comment.

The basis was that when I explained what to the developer of that app 
what was happening to the Manager, along with your comment that an 
application's init() could change the global user.language before the 
Manager got a look at it, he said "Oops !, I think I do that by default".
So, the version that you saw may not have it anymore, but it is possible 
that the developer (who is German) changed it in the meantime; or it is 
possible that the developer was wrong and that his app did not do that 
in the first place.  I will find out tomorrow when I talk to him.

There is still the possibility that another application is doing it.
There are still other apps that are launched there, two of which we do 
not have the source.  What I still don't know, is where these apps (any 
app for that matter, even the Manager) would have picked up German, 
rather than any other language.



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Manager app language

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: André Warnier [mailto:aw@ice-sa.com]
> Subject: Re: Manager app language
>
> Personally, I don't see anything in there that looks like it
> is setting the global JVM user.language property.

So what was the basis of your previous statement that the JSP is doing that?  As you noted, there's nothing in it now reflecting that behavior other than the comment.

> These appear :
> en_US
> en_US.iso88591
> en_US.iso885915
> en_US.utf8

Hyphens are squeezed out when looking for a match, and case is ignored.  There also appear to be some internal aliases used for some well-known character sets.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Caldarale, Charles R wrote:
>> From: André Warnier [mailto:aw@ice-sa.com]
>> Subject: Re: Manager app language
>>
>> In the Welcome page of this application (the one mentioned in the
>> web.xml's <welcome-file> tag), right before anything gets displayed to
>> the user calling it up, the user.language property is currently being
>> set to German
> 
> Sounds like we have a prime suspect.  Can you post the portion of the JSP that does that?
So we have a suspect.  That would be good. But see further.
The code is here : http://dev.dev.wissensbank.com/public/index.jsp
Personally, I don't see anything in there that looks like it is setting 
the global JVM user.language property.
But maybe the developer (to whom I told the story) has already updated 
his app. I'll have to ask him.

> 
>> Now my question is : assuming Tomcat is started anew, that all
>> applications are deployed and loaded
> 
> Are they?  What is the value of deployOnStartup in your <Host> element(s)?  (The default value is true.)
> 
       <Host name="localhost" appBase="webapps"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">

So, true, apparently.

>> And I guess any init() method called by Tomcat would thus be
>> the one of this jsp compiler.
> 
> Correct.
> 
>> But does that jsp compiler already pre-compile some of the pages, and
>> execute some of the methods invoked in these pages, even before a user
>> would actually call up the page ?
> 
> They don't have to be pre-compiled, just not modified since the last usage.  The JSP servlet saves the generated .java and .class files in Tomcat's work directory and reuses them across Tomcat restarts.  However, I can't find any mechanism that will invoke the generated code prior to a request occurring.
> 
Too bad then, I think we've just lost our prime suspect.

> Since the manager servlets are not configured with <load-on-startup>, it looks to me like any request for your main webapp that arrives before one for the manager will trigger the observed behavior.  There may be some subtleties in the Tomcat initialization process that narrows the window, but I haven't dug into it enough to see them.
> 

Understand : it does not really bother me that much that the Manager
would come up either in German or English.  That, we can live with.
It is the underlying reason that I would like to track down, because
that may tell us more about what to do and not to do in our webapps, or
what may be wrong in our current setup.
For example, the webapp above which set user.language by default is
something developed in-house.  So now we know we should not do this, and
it's easy to fix.

Anyway, I have done a couple of tests :
1) if in the Tomcat startup scripts (*), I set
LC_CTYPE=en_GB.iso885915
and restart Tomcat, and call up the Manager page first, then the Manager 
responds in English.
1) if in the Tomcat startup scripts, I set
LC_CTYPE=de_DE.iso885915@euro
then the Manager responds in German.

(*) (tomcat_dir)/bin/setenv.sh

In both cases, I also tried to call up the suspicious webapp first, and 
to change its language,  but in the current version of the webapp, this 
did not influence the way the Manager responded afterward.

So, I have to conclude that either this webapp was modified between my 
previous posts and now, or else that at some point in time the LC_CTYPE 
in the startup scripts was set to German.  That is something I have a 
real difficulty imagining though, because as far as I know I am the only 
one to touch these scripts, and I am quite sure that except today and 
for the above tests, I never ever put a german locale in there.
And the system's default locale (in /etc/default/locale) is

#  File generated by update-locale
LANG=en_US.ISO-8859-15
and was last modified in 2007.

The strange thing however is that the above locale does not appear when 
I enter "locale -a | grep US" on that system. These appear :
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8

Oh well, I guess some element of mystery must remain.
Thanks again for all the help.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Manager app language

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: André Warnier [mailto:aw@ice-sa.com]
> Subject: Re: Manager app language
>
> In the Welcome page of this application (the one mentioned in the
> web.xml's <welcome-file> tag), right before anything gets displayed to
> the user calling it up, the user.language property is currently being
> set to German

Sounds like we have a prime suspect.  Can you post the portion of the JSP that does that?

> Now my question is : assuming Tomcat is started anew, that all
> applications are deployed and loaded

Are they?  What is the value of deployOnStartup in your <Host> element(s)?  (The default value is true.)

> And I guess any init() method called by Tomcat would thus be
> the one of this jsp compiler.

Correct.

> But does that jsp compiler already pre-compile some of the pages, and
> execute some of the methods invoked in these pages, even before a user
> would actually call up the page ?

They don't have to be pre-compiled, just not modified since the last usage.  The JSP servlet saves the generated .java and .class files in Tomcat's work directory and reuses them across Tomcat restarts.  However, I can't find any mechanism that will invoke the generated code prior to a request occurring.

Since the manager servlets are not configured with <load-on-startup>, it looks to me like any request for your main webapp that arrives before one for the manager will trigger the observed behavior.  There may be some subtleties in the Tomcat initialization process that narrows the window, but I haven't dug into it enough to see them.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Caldarale, Charles R wrote:
>> From: André Warnier [mailto:aw@ice-sa.com]
>> Subject: Re: Manager app language
>>
>> Do you really mean that one webapp can change that setting and thus
>> influence other webapps that way ?
> 
> Yes - which is why you can configure a SecurityManager to restrict anti-social behavior.
Ok. I understand the idea. But I have a question below.

> 
>> If Tomcat <Host> has autoDeploy=true, is that still valid ?
> 
> It's not autoDeploy that would affect it, but rather deployOnStartup; regardless, the init() method of a servlet could change the value if its webapp happened to be deployed before the manager webapp.
> 

Ok again. Let me detail this painstakingly, as I want to make sure I 
understand this correctly, and my understanding of JSP is even more 
scarce than that of Java and servlets in general.

We have one application, which consist exclusively of jsp pages.
In the Welcome page of this application (the one mentioned in the 
web.xml's <welcome-file> tag), right before anything gets displayed to 
the user calling it up, the user.language property is currently being 
set to German, as a default value, and the initial page display is in 
German, with a possibility for the user to switch the language right away.

So, I understand that as soon as this page is being *displayed*, the 
JVM's user.language property is now "de", and that any webapp which, 
from this point on, would read this property from the same JVM would 
also get "de".

Now my question is : assuming Tomcat is started anew, that all 
applications are deployed and loaded, but assuming the above application 
has not yet been *accessed* by anyone since that restart, can this 
application already have changed the value of the user.language property ?

Even more painstakingly : not knowing the jsp mechanism very well, I 
nevertheless imagine that the "real servlet" in that case is some "jsp 
compiler", ready to compile on-the-fly any jsp page called up by the 
application (and thereafter caching the compiled code for later re-use).
And I guess any init() method called by Tomcat would thus be the one of 
this jsp compiler.
But does that jsp compiler already pre-compile some of the pages, and 
execute some of the methods invoked in these pages, even before a user 
would actually call up the page ?


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Manager app language

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: André Warnier [mailto:aw@ice-sa.com]
> Subject: Re: Manager app language
>
> Do you really mean that one webapp can change that setting and thus
> influence other webapps that way ?

Yes - which is why you can configure a SecurityManager to restrict anti-social behavior.

> If Tomcat <Host> has autoDeploy=true, is that still valid ?

It's not autoDeploy that would affect it, but rather deployOnStartup; regardless, the init() method of a servlet could change the value if its webapp happened to be deployed before the manager webapp.

> > If your server's locale file was somehow unavailable
> that is unlikely

It would only have to be momentarily, at the time the JVM attempts to retrieve the settings.

> I'll have to ask the colleague tomorrow if it also resets the system's
> user.language setting.  Better, I'll try it.

Despite the name "system properties", they are not system-wide, but rather just for each JVM independently.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Caldarale, Charles R wrote:
> 
Also, since the manager app is an administrative function, one would expect
  that responsibility to be handled in-country..

Yeah, thought of that too. Ok, I guess it is acceptable for the Manager.


> As I mentioned previously, the user.language setting can be changed on the fly.
   If a webapp altered it before the first reference to the manager app,
  that would affect the response of the manager.

I missed that before.
Do you really mean that one webapp can change that setting and thus 
influence other webapps that way ?
If Tomcat <Host> has autoDeploy=true, is that still valid ?

> 
> One question remains unanswered: was Tomcat restarted between the English -> Deutsch transition,
probably
  and then again between the Deutsch -> English one?
probably
   If your server's locale file was somehow unavailable
that is unlikely

I mean that I certinly restarted Tomcat several times in the last week, 
including probably in-between the Manager language changes.  But I did 
not change the LANG environment value in the modified catalina.sh,bcause 
that makes one of other apps fail visibly, and that did not happen.

I will try tonight again.  We do have one webapp that has its own 
properties file and changes its language on the fly (at user request). 
I'll have to ask the colleague tomorrow if it also resets the system's 
user.language setting.  Better, I'll try it.


I will also play again with the LANG environment setting of the overall 
Tomcat, to see if the Manager switches.
Today it was still English, on all stations.
I'm really glad I took a snapshot the other day, and had a colleague try 
it, or else people around me would think I imagined the whole thing.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Manager app language

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: André Warnier [mailto:aw@ice-sa.com]
> Subject: Re: Manager app language
>
> It means that despite its inherent capability of
> speaking in tongues, it only does so according to
> the overall Tomcat LANG setting, and does not pay
> attention to the browser's "Accept-Language" headers.

That's due to its use of the standard Java internationalization mechanism.  Supporting multiple languages simultaneously is a good bit more complicated.  Also, since the manager app is an administrative function, one would expect that responsibility to be handled in-country (although that's probably a lot less true now than just a few years ago).

> set the LANG to "en_GB.iso885915"
> It certainly did not change over the last week, overlapping thus the
> fateful day when the Manager spoke German to us.

As I mentioned previously, the user.language setting can be changed on the fly.  If a webapp altered it before the first reference to the manager app, that would affect the response of the manager.

One question remains unanswered: was Tomcat restarted between the English -> Deutsch transition, and then again between the Deutsch -> English one?  If your server's locale file was somehow unavailable and the en_GB.iso885915 setting became undecipherable at the time the JVM initialized, the platform may well have resorted to some default - which could be German in this case.

> root@arthur:~# locale -a

Is the server named after a legendary British king, the Kinks album, or the HHGTTG character?

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

André,

André Warnier wrote:
> Now, and no fault of yours of course, that seems like a curious way for
> the Manager to work, in my opinion.  It means that despite its inherent
> capability - discovered 2 days ago by still unexplained accident - of
> speaking in tongues, it only does so according to the overall Tomcat
> LANG setting, and does not pay attention to the browser's
> "Accept-Language" headers.

Sounds like an opportunity for a patch ;)

- -chris

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkk1VKEACgkQ9CaO5/Lv0PAjwwCdF7gnRCugCfH257wRRmyVtjRC
aMMAoJfGvvh59ov4ngT5To80ggc7GjDe
=VrKS
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Caldarale, Charles R wrote:
>> From: Michael Ludwig [mailto:milu71@gmx.de]
>> Subject: Re: Manager app language
>>
>> I'm not sure Tomcat would bother what character encoding you
>> specify in LANG.
> 
> It does, albeit indirectly.  JVM initialization uses the LANG value to set user.language, user.country, sun.jnu.encoding, and file.encoding, and it's the user.language setting that determines which LocalStrings file the manager uses.
> 
> Curiously enough, LANG=de_DE.iso885915 does not work on the SuSE box I'm using; the JVM reverted to en, US, and ANSI-X3.4-1968 when I tried that.  LANG=de_DE.iso88591 does work as expected, even though "locale -a" doesn't list it.
> 
Chuck, Michael,
Thanks to both of you for researching this.
I will try different settings to start Tomcat, and see if it does it.
I have to wait until the night to do that, because there's other people 
using that cat.
But I still have a doubt, see below.

Now, and no fault of yours of course, that seems like a curious way for
the Manager to work, in my opinion.  It means that despite its inherent
capability - discovered 2 days ago by still unexplained accident - of 
speaking in tongues, it only does so according to the overall Tomcat 
LANG setting, and does not pay attention to the browser's 
"Accept-Language" headers.

Now, about my doubts and the LANG setting : our Tomcat, for a different 
reason, is and was always set up with a small change in catalina.sh, to 
set the LANG to "en_GB.iso885915", which is a valid locale on that 
system (Linux Debian Etch now, Sarge earlier).
It certainly did not change over the last week, overlapping thus the 
fateful day when the Manager spoke German to us.

The (almost) unrelated reason is that we have one webapp (object-code 
only) which apparently does not interpret some input streams correctly 
otherwise (like when Tomcat is started under a UTF-8 locale such as 
"en_GB.utf8").
So as far as I am concerned thus, the mystery about the German Manager 
episode two days ago remains whole.


root@arthur:~# locale -a
C
de_BE
de_BE@euro
de_BE.iso88591
de_BE.iso885915@euro
de_BE.utf8
de_BE.utf8@euro
de_DE
de_DE@euro
de_DE.iso88591
de_DE.iso885915@euro
de_DE.utf8
de_DE.utf8@euro
deutsch
dutch
en_GB
en_GB.iso88591
en_GB.iso885915
en_GB.utf8
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
es_ES
es_ES@euro
es_ES.iso88591
es_ES.iso885915@euro
es_ES.utf8
es_ES.utf8@euro
français
fr_BE
fr_BE@euro
fr_BE.iso88591
fr_BE.iso885915@euro
fr_BE.utf8
fr_BE.utf8@euro
french
fr_FR
fr_FR@euro
fr_FR.iso88591
fr_FR.iso885915@euro
fr_FR.utf8
fr_FR.utf8@euro
german
italian
it_IT
it_IT@euro
it_IT.iso88591
it_IT.iso885915@euro
it_IT.utf8
it_IT.utf8@euro
nl_NL
nl_NL@euro
nl_NL.iso88591
nl_NL.iso885915@euro
nl_NL.utf8
nl_NL.utf8@euro
pl_PL
pl_PL.iso88592
pl_PL.utf8
polish
portuguese
POSIX
pt_PT
pt_PT@euro
pt_PT.iso88591
pt_PT.iso885915@euro
pt_PT.utf8
pt_PT.utf8@euro
spanish
root@arthur:~#


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Manager app language

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: Michael Ludwig [mailto:milu71@gmx.de]
> Subject: Re: Manager app language
>
> I'm not sure Tomcat would bother what character encoding you
> specify in LANG.

It does, albeit indirectly.  JVM initialization uses the LANG value to set user.language, user.country, sun.jnu.encoding, and file.encoding, and it's the user.language setting that determines which LocalStrings file the manager uses.

Curiously enough, LANG=de_DE.iso885915 does not work on the SuSE box I'm using; the JVM reverted to en, US, and ANSI-X3.4-1968 when I tried that.  LANG=de_DE.iso88591 does work as expected, even though "locale -a" doesn't list it.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by Michael Ludwig <mi...@gmx.de>.
André Warnier schrieb am 26.11.2008 um 23:48:50 (+0100):
> Only yesterday did he ever speak German, and by today he seems to have
> forgotten all of it, despite all our attempts to feed him appetising
> bits of LANG=de_DE.iso885915, Accept-language=de; and other Gummy
> Bäre.

I'm not sure Tomcat would bother what character encoding you specify in
LANG. I'd say this gets configured at the web application level.

What does `locale -a' on your Debian machine say? Maybe your LANG
setting is not installed. Try a LANG that is listed among the installed
locales. (GNU Gettext requires the requested locale be installed in the
OS, else ignoring the locale you're trying to set.)

Or simply:

    LANG=de_DE ./startup.sh         # or maybe even
    LANG=de ./startup.sh

Michael Ludwig

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Michael Ludwig wrote:
> André Warnier schrieb am 26.11.2008 um 21:02:10 (+0100):
>> I told Chuck already (but not the list) that this morning it is back
>> to English, and all attempts to display the Manager page again in
>> German fail. Not only from my workstation and my 3 browsers, also on
>> the workstation of another colleague who, like me, saw it in German
>> yesterday for the first time.
>> Wie nennt man gremlins in Deutsch ?
> 
> Kobolde.
> 
> Zur See auch Klabautermänner, aber ich schätze, Dein Tomcat ist eine
> Landratte. Oder wohl eher eine Landkatze.
> 
This Tomcat, Sir, was born English-speaking, in an English-speaking 
Host, and spoke exclusively English for the first 3 years of his life. 
Only yesterday did he ever speak German, and by today he seems to have 
forgotten all of it, despite all our attempts to feed him appetising 
bits of LANG=de_DE.iso885915, Accept-language=de; and other Gummy Bäre.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by Michael Ludwig <mi...@gmx.de>.
André Warnier schrieb am 26.11.2008 um 21:02:10 (+0100):
> I told Chuck already (but not the list) that this morning it is back
> to English, and all attempts to display the Manager page again in
> German fail. Not only from my workstation and my 3 browsers, also on
> the workstation of another colleague who, like me, saw it in German
> yesterday for the first time.
> Wie nennt man gremlins in Deutsch ?

Kobolde.

Zur See auch Klabautermänner, aber ich schätze, Dein Tomcat ist eine
Landratte. Oder wohl eher eine Landkatze.

Michael Ludwig

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by André Warnier <aw...@ice-sa.com>.
Michael Ludwig wrote:
> André Warnier schrieb am 25.11.2008 um 16:55:51 (+0100):
>> Apparently since today, the Manager app (accessed through
>> /manager/html) responds with its main page in German.
> 
> Ist doch schön!
> 
>> - the Tomcat startup script sets LC_CTYPE to the same value prior to 
> 
> LC_MESSAGES or LC_ALL would be the ones to look out for. LC_CTYPE is for
> character classification.
> 
> Watch out for LANG, which overrides everything else.
> 
>> But where the h.. does Tomcat or the Manager figure that it needs to
>> send the "application list" main page in German ?
> 
> Don't complain about user-friendliness :-)
> 
I told Chuck already (but not the list) that this morning it is back to 
English, and all attempts to display the Manager page again in German fail.
Not only from my workstation and my 3 browsers, also on the workstation 
of another colleague who, like me, saw it in German yesterday for the 
first time.
Wie nennt man gremlins in Deutsch ?


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Manager app language

Posted by Michael Ludwig <mi...@gmx.de>.
André Warnier schrieb am 25.11.2008 um 16:55:51 (+0100):
> Apparently since today, the Manager app (accessed through
> /manager/html) responds with its main page in German.

Ist doch schön!

> - the Tomcat startup script sets LC_CTYPE to the same value prior to 

LC_MESSAGES or LC_ALL would be the ones to look out for. LC_CTYPE is for
character classification.

Watch out for LANG, which overrides everything else.

> But where the h.. does Tomcat or the Manager figure that it needs to
> send the "application list" main page in German ?

Don't complain about user-friendliness :-)

Michael Ludwig

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org