IMPORTANT: JAC is a Public system and anyone on the internet will be able to view the data in the created JAC tickets. Please don’t include Customer or Sensitive data in the JAC ticket.
Uploaded image for project: 'Bitbucket Data Center'
  1. Bitbucket Data Center
  2. BSERV-5373

Branch listing page throws an error for commit messages written in non-UTF8 encoding

      When rendering the branch list page, if non-UTF-8 commit messages are encountered, Jackson will abort JSON production, leaving an incomplete JSON object (see end of description for stack trace).

      The likely cause is a user setting their accepted character encoding for git to a non-UTF-8 character set (eg EUC-JP). Stash assumes the git default is used by all users.

      Pending reproduction there are likely to be two approaches:

      1. remove the commit messages from the branch list JSON before rendering; this will only be a stop-gap as it does not prevent the problem occurring in other parts of the application
      2. perform normalization or non-UTF-8 character stripping at read time; this will be more time consuming to implement but a more robust solution
      2014-10-14 11:00:46,237 ERROR [http-bio-7990-exec-4025] XXX XXX  X.X.X.X,127.0.0.1 "GET /mvc/error500 HTTP/1.1" c.a.s.i.web.ErrorPageController There was an unhandled exception loading [/rest/api/latest/projects/XXX]
      org.codehaus.jackson.JsonGenerationException: Incomplete surrogate pair: first char 0xde64, second 0xfffd
              at org.codehaus.jackson.impl.JsonGeneratorBase._reportError(JsonGeneratorBase.java:480) ~[jackson-core-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.impl.Utf8Generator._decodeSurrogate(Utf8Generator.java:1702) ~[jackson-core-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.impl.Utf8Generator._outputSurrogates(Utf8Generator.java:1657) ~[jackson-core-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.impl.Utf8Generator._outputRawMultiByteChar(Utf8Generator.java:1643) ~[jackson-core-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.impl.Utf8Generator.writeRaw(Utf8Generator.java:751) ~[jackson-core-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.impl.Utf8Generator.writeRaw(Utf8Generator.java:691) ~[jackson-core-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.impl.JsonGeneratorBase.writeRawValue(JsonGeneratorBase.java:254) ~[jackson-core-asl-1.9.13.jar:1.9.13]
              at com.atlassian.stash.rest.data.RestJsonable$RestJsonSerializer.serialize(RestJsonable.java:45) ~[na:na]
              at com.atlassian.stash.rest.data.RestJsonable$RestJsonSerializer.serialize(RestJsonable.java:39) ~[na:na]
              at org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:186) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:186) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:122) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:71) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:86) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:186) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1604) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
              at org.codehaus.jackson.jaxrs.JacksonJsonProvider.writeTo(JacksonJsonProvider.java:558) ~[na:na]
              at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25) ~[na:na]
              at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:86) ~[StashAuthenticationFilter.class:na]
              at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:111) ~[BeforeLoginPluginAuthenticationFilter.class:na]
              at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:77) ~[BeforeLoginPluginAuthenticationFilter.class:na]
              at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:100) ~[atlassian-trusted-apps-core-3.0.6.jar:na]
              at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:69) ~[na:na]
              at com.atlassian.analytics.client.filter.DefaultAnalyticsFilter.doFilter(DefaultAnalyticsFilter.java:33) ~[na:na]
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) ~[atlassian-core-4.6.15.jar:na]
              at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:89) ~[BeforeLoginPluginAuthenticationFilter.class:na]
              at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75) ~[BeforeLoginPluginAuthenticationFilter.class:na]
              at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:84) ~[stash-service-impl-3.2.4.jar:na]
              at com.hazelcast.web.WebFilter.doFilter(WebFilter.java:446) ~[hazelcast-wm-3.3-RC2.jar:3.3-RC2]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_21]
              at java.lang.Thread.run(Thread.java:722) [na:1.7.0_21]
              ... 181 frames trimmed
      

            Loading...
            IMPORTANT: JAC is a Public system and anyone on the internet will be able to view the data in the created JAC tickets. Please don’t include Customer or Sensitive data in the JAC ticket.
            Uploaded image for project: 'Bitbucket Data Center'
            1. Bitbucket Data Center
            2. BSERV-5373

            Branch listing page throws an error for commit messages written in non-UTF8 encoding

                When rendering the branch list page, if non-UTF-8 commit messages are encountered, Jackson will abort JSON production, leaving an incomplete JSON object (see end of description for stack trace).

                The likely cause is a user setting their accepted character encoding for git to a non-UTF-8 character set (eg EUC-JP). Stash assumes the git default is used by all users.

                Pending reproduction there are likely to be two approaches:

                1. remove the commit messages from the branch list JSON before rendering; this will only be a stop-gap as it does not prevent the problem occurring in other parts of the application
                2. perform normalization or non-UTF-8 character stripping at read time; this will be more time consuming to implement but a more robust solution
                2014-10-14 11:00:46,237 ERROR [http-bio-7990-exec-4025] XXX XXX  X.X.X.X,127.0.0.1 "GET /mvc/error500 HTTP/1.1" c.a.s.i.web.ErrorPageController There was an unhandled exception loading [/rest/api/latest/projects/XXX]
                org.codehaus.jackson.JsonGenerationException: Incomplete surrogate pair: first char 0xde64, second 0xfffd
                        at org.codehaus.jackson.impl.JsonGeneratorBase._reportError(JsonGeneratorBase.java:480) ~[jackson-core-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.impl.Utf8Generator._decodeSurrogate(Utf8Generator.java:1702) ~[jackson-core-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.impl.Utf8Generator._outputSurrogates(Utf8Generator.java:1657) ~[jackson-core-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.impl.Utf8Generator._outputRawMultiByteChar(Utf8Generator.java:1643) ~[jackson-core-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.impl.Utf8Generator.writeRaw(Utf8Generator.java:751) ~[jackson-core-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.impl.Utf8Generator.writeRaw(Utf8Generator.java:691) ~[jackson-core-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.impl.JsonGeneratorBase.writeRawValue(JsonGeneratorBase.java:254) ~[jackson-core-asl-1.9.13.jar:1.9.13]
                        at com.atlassian.stash.rest.data.RestJsonable$RestJsonSerializer.serialize(RestJsonable.java:45) ~[na:na]
                        at com.atlassian.stash.rest.data.RestJsonable$RestJsonSerializer.serialize(RestJsonable.java:39) ~[na:na]
                        at org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:186) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:186) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:122) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:71) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:86) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:186) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1604) ~[jackson-mapper-asl-1.9.13.jar:1.9.13]
                        at org.codehaus.jackson.jaxrs.JacksonJsonProvider.writeTo(JacksonJsonProvider.java:558) ~[na:na]
                        at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25) ~[na:na]
                        at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:86) ~[StashAuthenticationFilter.class:na]
                        at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:111) ~[BeforeLoginPluginAuthenticationFilter.class:na]
                        at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:77) ~[BeforeLoginPluginAuthenticationFilter.class:na]
                        at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:100) ~[atlassian-trusted-apps-core-3.0.6.jar:na]
                        at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:69) ~[na:na]
                        at com.atlassian.analytics.client.filter.DefaultAnalyticsFilter.doFilter(DefaultAnalyticsFilter.java:33) ~[na:na]
                        at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) ~[atlassian-core-4.6.15.jar:na]
                        at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:89) ~[BeforeLoginPluginAuthenticationFilter.class:na]
                        at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75) ~[BeforeLoginPluginAuthenticationFilter.class:na]
                        at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:84) ~[stash-service-impl-3.2.4.jar:na]
                        at com.hazelcast.web.WebFilter.doFilter(WebFilter.java:446) ~[hazelcast-wm-3.3-RC2.jar:3.3-RC2]
                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_21]
                        at java.lang.Thread.run(Thread.java:722) [na:1.7.0_21]
                        ... 181 frames trimmed
                

                        jpalacios Juan Palacios (Inactive)
                        jgorman James Gorman
                        Votes:
                        3 Vote for this issue
                        Watchers:
                        19 Start watching this issue

                          Created:
                          Updated:
                          Resolved:

                            jpalacios Juan Palacios (Inactive)
                            jgorman James Gorman
                            Affected customers:
                            3 This affects my team
                            Watchers:
                            19 Start watching this issue

                              Created:
                              Updated:
                              Resolved: