{"action":"opened","issue":{"url":"https://api.github.com/repos/raml-org/raml-java-parser/issues/79","labels_url":"https://api.github.com/repos/raml-org/raml-java-parser/issues/79/labels{/name}","comments_url":"https://api.github.com/repos/raml-org/raml-java-parser/issues/79/comments","events_url":"https://api.github.com/repos/raml-org/raml-java-parser/issues/79/events","html_url":"https://github.com/raml-org/raml-java-parser/issues/79","id":105622669,"number":79,"title":"Surrogate characters are not supported","user":{"login":"mkrup","id":6058884,"avatar_url":"https://avatars.githubusercontent.com/u/6058884?v=3","gravatar_id":"","url":"https://api.github.com/users/mkrup","html_url":"https://github.com/mkrup","followers_url":"https://api.github.com/users/mkrup/followers","following_url":"https://api.github.com/users/mkrup/following{/other_user}","gists_url":"https://api.github.com/users/mkrup/gists{/gist_id}","starred_url":"https://api.github.com/users/mkrup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkrup/subscriptions","organizations_url":"https://api.github.com/users/mkrup/orgs","repos_url":"https://api.github.com/users/mkrup/repos","events_url":"https://api.github.com/users/mkrup/events{/privacy}","received_events_url":"https://api.github.com/users/mkrup/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-09T15:34:30Z","updated_at":"2015-09-09T15:34:30Z","closed_at":null,"body":"**Issue:**\r\nValidation fails for RAML documents that contain surrogate chars (e.g. **'𠿿'**).\r\n\r\n**Investigation:**\r\nRaml-java-parser uses the 'org.yaml.snakeyaml.reader.StreamReader.checkPrintable()' method for validation of RAML documents.\r\nThis method works with chars from a String representation of a RAML document.\r\nA surrogate character from the example is represented by a pair of chars: uD843 and uDFFF (https://docs.oracle.com/javase/6/docs/api/java/lang/Character.html).\r\nLooks like StreamReader.checkPrintable() doesn't support the case and checks each of these two chars as a separate char.\r\nThat's why the check fails."}}