Mercurial > jhg
diff src/org/tmatesoft/hg/repo/HgChangelog.java @ 589:c18095eedde0
Username in changeset uses UTF-8, not system encoding
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Mon, 29 Apr 2013 17:02:30 +0200 |
parents | 1ee452f31187 |
children | 46f29b73e51e |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/repo/HgChangelog.java Mon Apr 29 16:37:57 2013 +0200 +++ b/src/org/tmatesoft/hg/repo/HgChangelog.java Mon Apr 29 17:02:30 2013 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2012 TMate Software Ltd + * Copyright (c) 2010-2013 TMate Software Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -247,10 +247,19 @@ if (breakIndex2 == -1) { throw new HgInvalidDataFormatException("Bad Changeset data"); } - String _user = new String(data, breakIndex1 + 1, breakIndex2 - breakIndex1 - 1); - if (usersPool != null) { - _user = usersPool.unify(_user); + String _user; + try { + // TODO use encoding helper? Although where encoding is fixed (like here), seems to be just too much + _user = new String(data, breakIndex1 + 1, breakIndex2 - breakIndex1 - 1, "UTF-8"); + if (usersPool != null) { + _user = usersPool.unify(_user); + } + } catch (UnsupportedEncodingException ex) { + _user = ""; + // Could hardly happen + throw new HgInvalidDataFormatException("Bad Changeset data", ex); } + int breakIndex3 = indexOf(data, lineBreak, breakIndex2 + 1, bufferEndIndex); if (breakIndex3 == -1) { throw new HgInvalidDataFormatException("Bad Changeset data");