davideuler / gitblit

Automatically exported from code.google.com/p/gitblit
Apache License 2.0
0 stars 0 forks source link

Bad encoding in properties-files #538

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Deploy gitblit on tomcat6 or 7 running on a platform supporting utf-8.
My example is dev.gitblit.com
2. Access the site with a browser specifying Norwegian as the Language

(or via curl:

$ curl -H"Accept-Language: no,nb-NO;q=0.8,nn-NO;q=0.5,en-US;q=0.3" 
https://dev.gitblit.com/ -I
HTTP/1.1 500 Server Error
Date: Tue, 25 Nov 2014 13:44:16 GMT
Content-Type: text/html; charset=UTF-8
Content-Language: no
Pragma: no-cache
Cache-Control: no-cache, max-age=0, must-revalidate
Content-Length: 1406
Server: Jetty(9.2.3.v20140905)

3. See the internal error

What is the expected output? What do you see instead?
I see the attached image - internal error. In the logs I'm spammed with this 
output:
2014-11-25 14:07:25 [INFO ] Loading properties files from jar:file:/data/prog/ap
ache-tomcat-7.0.29/webapps/gitblit/WEB-INF/lib/gitblit.jar!/com/gitblit/wicket/G
itBlitWebApp_no.properties
2014-11-25 14:07:25 [ERROR] Can't instantiate page using constructor public com.
gitblit.wicket.pages.MyDashboardPage()
org.apache.wicket.WicketRuntimeException: Can't instantiate page using 
constructor public com.gitblit.wicket.pages.MyDashboardPage()
        at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212)
        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
        at org.apache.wicket.request.target.component.BookmarkablePageRequestTar
get.newPage(BookmarkablePageRequestTarget.java:298)
        at org.apache.wicket.request.target.component.BookmarkablePageRequestTar
get.getPage(BookmarkablePageRequestTarget.java:320)
        at org.apache.wicket.request.target.component.BookmarkablePageRequestTar
get.processEvents(BookmarkablePageRequestTarget.java:234)
        at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents
(AbstractRequestCycleProcessor.java:92)
        at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.j
ava:1279)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
        at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:
486)
        at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.ja
va:319)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:210)
        at com.gitblit.servlet.EnforceAuthenticationFilter.doFilter(EnforceAuthe
nticationFilter.java:87)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:210)
        at com.gitblit.servlet.ProxyFilter$1.doFilter(ProxyFilter.java:74)
        at com.gitblit.servlet.ProxyFilter.doFilter(ProxyFilter.java:77)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:225)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:192)
        ... 34 more
Caused by: java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
        at java.util.Properties.loadConvert(Properties.java:568)
        at java.util.Properties.load0(Properties.java:391)
        at java.util.Properties.load(Properties.java:341)
        at org.apache.wicket.resource.PropertiesFactory$PropertiesFilePropertiesLoader.loadProperties(PropertiesFactory.java:343)
        at org.apache.wicket.resource.PropertiesFactory$AbstractPropertiesLoader.load(PropertiesFactory.java:274)
        at org.apache.wicket.resource.PropertiesFactory.load(PropertiesFactory.java:133)
        at org.apache.wicket.resource.loader.ComponentStringResourceLoader.loadStringResource(ComponentStringResourceLoader.java:141)
        at org.apache.wicket.resource.loader.ClassStringResourceLoader.loadStringResource(ClassStringResourceLoader.java:65)
        at org.apache.wicket.resource.loader.ComponentStringResourceLoader.loadStringResource(ComponentStringResourceLoader.java:261)
        at org.apache.wicket.resource.loader.ClassStringResourceLoader.loadStringResource(ClassStringResourceLoader.java:80)
        at org.apache.wicket.Localizer.getStringIgnoreSettings(Localizer.java:241)
        at org.apache.wicket.Localizer.getString(Localizer.java:313)
        at org.apache.wicket.Localizer.getString(Localizer.java:119)
        at org.apache.wicket.Component.getString(Component.java:1968)
        at org.apache.wicket.Component.getString(Component.java:1955)
        at com.gitblit.wicket.pages.RootPage$LoginForm.<init>(RootPage.java:581)
        at com.gitblit.wicket.pages.RootPage.setupPage(RootPage.java:176)
        at com.gitblit.wicket.pages.MyDashboardPage.setup(MyDashboardPage.java:71)
        at com.gitblit.wicket.pages.MyDashboardPage.<init>(MyDashboardPage.java:57)
        ... 39 more

What version of the product are you using? On what operating system?
1.6.2, running on 
server:/data/prog/apache-tomcat-7.0.29/logs> uname -a
Linux server 2.6.32-279.1.1.el6.x86_64 #1 SMP Wed Jun 20 11:41:22 EDT 2012 
x86_64 x86_64 x86_64 GNU/Linux

Please provide any additional information below.
The file it's complaining about has alle Language-specific characters (æ,ø 
and å) encoded as \u00xx, which corresponds to ISO-8859-1 encoding. The 
correct encoding is to use Unicode.

Original issue reported on code.google.com by thomas....@gmail.com on 25 Nov 2014 at 1:31

Attachments: