Merge pull request #5271 from nicoddemus/lone-surrogate-jython-5256
Handle lone surrogate unicode character not being representable in Jython
This commit is contained in:
commit
d94b4b031f
|
@ -0,0 +1 @@
|
||||||
|
Handle internal error due to a lone surrogate unicode character not being representable in Jython.
|
|
@ -998,7 +998,15 @@ def _get_line_with_reprcrash_message(config, rep, termwidth):
|
||||||
# u'😄' will result in a High Surrogate (U+D83D) character, which is
|
# u'😄' will result in a High Surrogate (U+D83D) character, which is
|
||||||
# rendered as u'<27>'; in this case we just strip that character out as it
|
# rendered as u'<27>'; in this case we just strip that character out as it
|
||||||
# serves no purpose being rendered
|
# serves no purpose being rendered
|
||||||
msg = msg.rstrip(u"\uD83D")
|
try:
|
||||||
|
surrogate = six.unichr(0xD83D)
|
||||||
|
msg = msg.rstrip(surrogate)
|
||||||
|
except ValueError: # pragma: no cover
|
||||||
|
# Jython cannot represent this lone surrogate at all (#5256):
|
||||||
|
# ValueError: unichr() arg is a lone surrogate in range
|
||||||
|
# (0xD800, 0xDFFF) (Jython UTF-16 encoding)
|
||||||
|
# ignore this case as it shouldn't appear in the string anyway
|
||||||
|
pass
|
||||||
msg += ellipsis
|
msg += ellipsis
|
||||||
line += sep + msg
|
line += sep + msg
|
||||||
return line
|
return line
|
||||||
|
|
Loading…
Reference in New Issue