JDK-8125928 : Surrogate pair characters are not rendered in certain conditions
  • Type: Bug
  • Component: javafx
  • Sub-Component: web
  • Affected Version: 7u10,8
  • Priority: P4
  • Status: Resolved
  • Resolution: Cannot Reproduce
  • Submitted: 2012-11-07
  • Updated: 2015-06-17
  • Resolved: 2013-08-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8Resolved
Related Reports
Relates :  
Description
Surrogate pair characters are not rendered in certain conditions.
To reproduce, try the following application:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class Main extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override public void start(Stage stage) {
        System.setProperty("proxyHost", "www-proxy.ru.oracle.com");
        System.setProperty("proxyPort", "80");
        
        System.out.println(com.sun.javafx.runtime.VersionInfo.getRuntimeVersion());
        
        Text t = new Text("\ud800\udf02");
        
        WebView wv = new WebView();
        wv.getEngine().loadContent("<!DOCTYPE html><html><body>&#x10302; </body></html>");
        wv.setMaxSize(100, 100);
        wv.setMinSize(100, 100);
        wv.setPrefSize(100, 100);
        
        WebView wv1 = new WebView();
        wv1.getEngine().loadContent("<!DOCTYPE html><html><body>o &#x10302; </body></html>");
        wv1.setMaxSize(100, 100);
        wv1.setMinSize(100, 100);
        wv1.setPrefSize(100, 100);

        WebView wv2 = new WebView();
        wv2.getEngine().load("http://en.wikibooks.org/wiki/Unicode/Character_reference/10000-10FFF");
                
        VBox g = new VBox();
        g.getChildren().addAll(t, wv, wv1, wv2);
        Scene s = new Scene(g);
        
        stage.setScene(s);
        stage.sizeToScene();
        stage.show();
    }
} 

Notice that even though the text and the first WebView (lavender one) render the character well, the second (pink) WebView does not render it.
WebView with reference table renders the character on some systems, and does not on others (character number in table is 10300-2 (x10302).
This might happen because WebKit doesn't render such character if it is the single character on line.
Comments
All chars are rendered with 8b102.
14-08-2013