JDK-8085952 : An Exception is thrown if the mouse gets clicked a few times and is moved on the WebView
  • Type: Bug
  • Component: javafx
  • Sub-Component: web
  • Affected Version: 7u79,8u45
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_7
  • CPU: x86_64
  • Submitted: 2015-06-06
  • Updated: 2015-06-19
  • Resolved: 2015-06-19
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 9
9Resolved
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
Windows 8.1

A DESCRIPTION OF THE PROBLEM :
An Exception is  thrown if the mouse gets clicked a few times and is moved on the webview.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
create a simple WebView and add the following html with contentType "text/html" to the webview

<html  >
	<head  >
		<style type="text/css">
			body           {padding-top: 0; padding-right: 2; padding-bottom: 0; padding-left: 2; margin-top: 0; 
								margin-right: 0; margin-bottom: 0; margin-left: 0}
			p              {padding: 0; margin: 0; font-size: 15px; line-height: 1.2}
			.error         {color: red}
			#error         {color: red}
			.success       {color: #069f00}
			#success       {color: #069f00}
			.notice        {color: #b77213}
			#notice        {color: #b77213}
			.tipp          {color: #426aff}
			#tipp          {color: #426aff}
			.keyshortcuts  {color: #426aff}
			#keyshortcuts  {color: #426aff}
			.key           {padding-right: 1cm}
			.indent        {margin-left: 1cm}
			.doubleindent  {margin-left: 2cm}
		</style>
	</head>
	<body  >
		<div id="error" >
			<p  >an error </p>
		</div>
		<div id="success" >
			<p  >a success </p>
		</div>
		<div id="notice" >
			<p  >a notice </p>
		</div>
		<div id="tipp" >
			<p  >a tipp </p>
		</div>
		<div id="keyshortcuts" >
			<table id="keyshortcuts" >
				<tr  />
			</table>
		</div>
	</body>
</html>

now start the application.
click the left mouse-Button two times hold the mouse-button down move it and click it a third time and the exception will occur. The click timing must match a 3-click on the left mouse button. Its a bit tricky to get it but it occurs almost always.
(The bug does NOT occur if no html is loaded!!!)

the same Bug exists in Java 8 update 45 64-bit on Windows 8.1. The only difference is the exception

java.lang.IllegalArgumentException: Image dimensions must be > 0
	at com.sun.prism.Image.<init>(Image.java:292)
	at com.sun.prism.Image.<init>(Image.java:268)
	at com.sun.prism.Image.fromByteBgraPreData(Image.java:111)
	at com.sun.javafx.webkit.prism.RTImage.getImage(RTImage.java:61)
	at com.sun.javafx.webkit.prism.PrismImage.getPlatformImage(PrismImage.java:57)
	at com.sun.javafx.webkit.UIClientImpl.startDrag(UIClientImpl.java:277)
	at com.sun.webkit.WebPage.fwkStartDrag(WebPage.java:2160)
	at com.sun.webkit.WebPage.twkProcessMouseEvent(Native Method)
	at com.sun.webkit.WebPage.dispatchMouseEvent(WebPage.java:759)
	at javafx.scene.web.WebView.processMouseEvent(WebView.java:1021)
	at javafx.scene.web.WebView.lambda$registerEventHandlers$32(WebView.java:1144)
	at javafx.scene.web.WebView$$Lambda$82/1588691119.handle(Unknown Source)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3758)
	at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3486)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2495)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:350)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$350(GlassViewEventHandler.java:385)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$128/1863228738.get(Unknown Source)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:404)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:384)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
	at com.sun.glass.ui.View.notifyMouse(View.java:927)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$null$145(WinApplication.java:101)
	at com.sun.glass.ui.win.WinApplication$$Lambda$38/1988281053.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:745)







ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.NullPointerException: Clipboard.putContent: null data
	at com.sun.javafx.tk.quantum.QuantumClipboard.putContent(QuantumClipboard.java:450)
	at javafx.scene.input.Clipboard.setContent(Clipboard.java:230)
	at com.sun.webpane.sg.UIClientImpl.confirmStartDrag(UIClientImpl.java:178)
	at com.sun.webpane.platform.WebPage.confirmStartDrag(WebPage.java:861)
	at javafx.scene.web.WebView$19.handle(WebView.java:1204)
	at javafx.scene.web.WebView$19.handle(WebView.java:1201)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
	at javafx.event.Event.fireEvent(Event.java:171)
	at javafx.scene.Scene$DnDGesture.fireEvent(Scene.java:2642)
	at javafx.scene.Scene$DnDGesture.process(Scene.java:2722)
	at javafx.scene.Scene$DnDGesture.access$8700(Scene.java:2618)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3385)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3209)
	at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3164)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1582)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2267)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:250)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:173)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:292)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:530)
	at com.sun.glass.ui.View.notifyMouse(View.java:924)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:17)
	at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:67)
	at java.lang.Thread.run(Thread.java:745)

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
only load the given html into a Webview and execute the explained steps.
---------- END SOURCE ----------


Comments
Kevin, thanks for the check. Yes, this is fixed with JDK-8092649.
19-06-2015

I was able to reproduce this easily with 8u45 once I realized that you must click in an *empty* area of the web page. The bug will not happen if you select the text that is displayed. I can also reproduce this with 8u60-b15, but not with the current build. Anton: is there a post-b15 change that would explain this? Either something in drag and drop or the image handling code, such that we no longer get an image with a 0 dimension?
18-06-2015