FULL PRODUCT VERSION :
java version "1.7.0_06-ea"
Java(TM) SE Runtime Environment (build 1.7.0_06-ea-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.2-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
10.7.4
A DESCRIPTION OF THE PROBLEM :
When a CALayer is attached to an AWT Canvas via
id <JAWT_SurfaceLayers> surfaceLayers = (id <JAWT_SurfaceLayers>) dsi->platformInfo;
CALayer *layer = [[CALayer alloc] init];
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB ();
CGFloat rgba[4] = {1.0, 0.0, 0.0, 0.5};
CGColorRef color = CGColorCreate (colorspace, rgba);
layer.backgroundColor = color;
surfaceLayers.layer = layer;
That CALayer is not positioned over the Canvas. It is instead positioned in the lower-left corner of the window. With the layer created in the above code fragment, we will see a red semi-transparent rectangle the size of the Canvas but positioned in the lower-left corner of the window. With Apple's Java 6, we see a red semi-transparent rectangle both the size of the canvas and positioned over the Canvas.
REGRESSION. Last worked in version 6u31
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Attach a CALayer to a Canvas using the code fragment given in the description.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
A red semi-transparent rectangle the size of the canvas rendered over the Canvas in the window.
ACTUAL -
A red semi-transparent rectangle the size of the canvas rendered in the lower-left corner of the window.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
This modified version of Apple's JAWT example code demonstrates the issue:
http://www.jeffsplace.net/JAWTExample.tar.gz
To build, run build.sh.
To run on Java 6, run run-java6.sh, for Java 7, run-java7.sh
JAVA_HOME may need modification in build.sh and run-java7.sh to point to the appropriate Java 7 home.
---------- END SOURCE ----------