Mercurial > jhg
comparison src/org/tmatesoft/hg/internal/EncodingHelper.java @ 456:909306e412e2
Refactor LogFacility and SessionContext, better API for both
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Mon, 18 Jun 2012 16:54:00 +0200 |
| parents | 528b6780a8bd |
| children | 0be5be8d57e9 |
comparison
equal
deleted
inserted
replaced
| 454:36fd1fd06492 | 456:909306e412e2 |
|---|---|
| 13 * For information on how to redistribute this software under | 13 * For information on how to redistribute this software under |
| 14 * the terms of a license other than GNU General Public License | 14 * the terms of a license other than GNU General Public License |
| 15 * contact TMate Software at support@hg4j.com | 15 * contact TMate Software at support@hg4j.com |
| 16 */ | 16 */ |
| 17 package org.tmatesoft.hg.internal; | 17 package org.tmatesoft.hg.internal; |
| 18 | |
| 19 import static org.tmatesoft.hg.util.LogFacility.Severity.Error; | |
| 18 | 20 |
| 19 import java.nio.ByteBuffer; | 21 import java.nio.ByteBuffer; |
| 20 import java.nio.CharBuffer; | 22 import java.nio.CharBuffer; |
| 21 import java.nio.charset.CharacterCodingException; | 23 import java.nio.charset.CharacterCodingException; |
| 22 import java.nio.charset.Charset; | 24 import java.nio.charset.Charset; |
| 69 // } | 71 // } |
| 70 byte[] rv = new byte[bb.remaining()]; | 72 byte[] rv = new byte[bb.remaining()]; |
| 71 bb.get(rv, 0, rv.length); | 73 bb.get(rv, 0, rv.length); |
| 72 return rv; | 74 return rv; |
| 73 } catch (CharacterCodingException ex) { | 75 } catch (CharacterCodingException ex) { |
| 74 sessionContext.getLog().error(getClass(), ex, String.format("Use of charset %s failed, resort to system default", charset().name())); | 76 sessionContext.getLog().dump(getClass(), Error, ex, String.format("Use of charset %s failed, resort to system default", charset().name())); |
| 75 // resort to system-default | 77 // resort to system-default |
| 76 return s.getBytes(); | 78 return s.getBytes(); |
| 77 } | 79 } |
| 78 } | 80 } |
| 79 | 81 |
| 86 | 88 |
| 87 private String decodeWithSystemDefaultFallback(byte[] data, int start, int length) { | 89 private String decodeWithSystemDefaultFallback(byte[] data, int start, int length) { |
| 88 try { | 90 try { |
| 89 return decoder.decode(ByteBuffer.wrap(data, start, length)).toString(); | 91 return decoder.decode(ByteBuffer.wrap(data, start, length)).toString(); |
| 90 } catch (CharacterCodingException ex) { | 92 } catch (CharacterCodingException ex) { |
| 91 sessionContext.getLog().error(getClass(), ex, String.format("Use of charset %s failed, resort to system default", charset().name())); | 93 sessionContext.getLog().dump(getClass(), Error, ex, String.format("Use of charset %s failed, resort to system default", charset().name())); |
| 92 // resort to system-default | 94 // resort to system-default |
| 93 return new String(data, start, length); | 95 return new String(data, start, length); |
| 94 } | 96 } |
| 95 } | 97 } |
| 96 | 98 |
