Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8243091 | 8u261 | Arun Joseph | P4 | Resolved | Fixed | b05 |
ADDITIONAL SYSTEM INFORMATION :
The bug is reproduced only if the retina display is in use. So if you close the retina display and you use an external monitor, the pattern is correctly drawn.
A DESCRIPTION OF THE PROBLEM :
SVG patterns are drawn with half the expected size and with a gap between each repetition, if we are using a MacBook with a retina display and the retina display is active.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Draw an SVG object with the fill attribute assigned to a pattern, in a Mac computer with Retina display (any MacBook Pro after 2013).
The retina display must be active.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The object is drawn with a repetitive pattern with no gaps between the pattern.
Example, if we have "O" as a pattern:
OOOO
OOOO
OOOO
I can send for better explanation a file with a correct and a wrong plot.
ACTUAL -
The object is drawn with a repetitive pattern with half the expected size, and a gap between each pattern.
Example, if we have "O" as a patter:
o o o o
o o o o
o o o o
I can send for better explanation a file with a correct and a wrong plot.
---------- BEGIN SOURCE ----------
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Region;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class PatternSVGTest extends Application {
private Scene scene;
@Override public void start(Stage stage) {
scene = new Scene(new PatternWebSVG());
stage.setScene(scene);
stage.show();
}
public static void main(String[] args){
launch(args);
}
private class PatternWebSVG extends Region {
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
public PatternWebSVG() {
webEngine.loadContent(
"<!DOCTYPE html> " +
"<html> " +
"<body> " +
"<svg height='150' width='400'> " +
" " +
" <rect width='100%' height='476' x='0' y='2' fill='url(#pattern_id)'></rect> " +
" <pattern id='pattern_id' x='0' y='0' width='30' height='30' patternUnits='userSpaceOnUse'> " +
" <rect width='30' height='30' fill='green'></rect> " +
" <circle cx='15' cy='15' r='15' stroke='black' stroke-width='1' fill='red' /> " +
" </pattern> " +
"</svg> " +
"</body> " +
"</html> "
);
getChildren().add(browser);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Use an external monitor instead the retina display.
FREQUENCY : always
The bug is reproduced only if the retina display is in use. So if you close the retina display and you use an external monitor, the pattern is correctly drawn.
A DESCRIPTION OF THE PROBLEM :
SVG patterns are drawn with half the expected size and with a gap between each repetition, if we are using a MacBook with a retina display and the retina display is active.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Draw an SVG object with the fill attribute assigned to a pattern, in a Mac computer with Retina display (any MacBook Pro after 2013).
The retina display must be active.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The object is drawn with a repetitive pattern with no gaps between the pattern.
Example, if we have "O" as a pattern:
OOOO
OOOO
OOOO
I can send for better explanation a file with a correct and a wrong plot.
ACTUAL -
The object is drawn with a repetitive pattern with half the expected size, and a gap between each pattern.
Example, if we have "O" as a patter:
o o o o
o o o o
o o o o
I can send for better explanation a file with a correct and a wrong plot.
---------- BEGIN SOURCE ----------
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Region;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class PatternSVGTest extends Application {
private Scene scene;
@Override public void start(Stage stage) {
scene = new Scene(new PatternWebSVG());
stage.setScene(scene);
stage.show();
}
public static void main(String[] args){
launch(args);
}
private class PatternWebSVG extends Region {
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
public PatternWebSVG() {
webEngine.loadContent(
"<!DOCTYPE html> " +
"<html> " +
"<body> " +
"<svg height='150' width='400'> " +
" " +
" <rect width='100%' height='476' x='0' y='2' fill='url(#pattern_id)'></rect> " +
" <pattern id='pattern_id' x='0' y='0' width='30' height='30' patternUnits='userSpaceOnUse'> " +
" <rect width='30' height='30' fill='green'></rect> " +
" <circle cx='15' cy='15' r='15' stroke='black' stroke-width='1' fill='red' /> " +
" </pattern> " +
"</svg> " +
"</body> " +
"</html> "
);
getChildren().add(browser);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Use an external monitor instead the retina display.
FREQUENCY : always
- backported by
-
JDK-8243091 SVG patterns are drawn wrong
-
- Resolved
-
- relates to
-
JDK-8243110 SVGTest.testSVGRenderingWithPattern fails intermittently
-
- Resolved
-