JDK-8370253 : CodeArea: NPE on copy
  • Type: Bug
  • Component: javafx
  • Sub-Component: controls
  • Affected Version: jfx25
  • Priority: P4
  • Status: In Progress
  • Resolution: Unresolved
  • Submitted: 2025-10-20
  • Updated: 2025-10-20
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.
Other
tbdUnresolved
Description
To reproduce using the Monkey Tester
https://github.com/andy-goryachev-oracle/MonkeyTest

(or any app that uses the stock CodeArea)

- open the codeArea page
- type in something
- select text
- press command-C or ctrl-C to copy

NPE:
java.lang.NullPointerException: Cannot invoke "jfx.incubator.scene.control.richtext.model.StyleAttributeMap.getTextColor()" because "a" is null
	at jfx.incubator.richtext/com.sun.jfx.incubator.scene.control.richtext.RtfStyledOutput.getTextColor(RtfStyledOutput.java:520)
	at jfx.incubator.richtext/com.sun.jfx.incubator.scene.control.richtext.RtfStyledOutput.writeTextSegment(RtfStyledOutput.java:257)
	at jfx.incubator.richtext/com.sun.jfx.incubator.scene.control.richtext.RtfStyledOutput.consume(RtfStyledOutput.java:196)
	at jfx.incubator.richtext/jfx.incubator.scene.control.richtext.model.RichParagraph.export(RichParagraph.java:147)
	at jfx.incubator.richtext/jfx.incubator.scene.control.richtext.model.StyledTextModel.exportParagraph(StyledTextModel.java:525)
	at jfx.incubator.richtext/jfx.incubator.scene.control.richtext.model.StyledTextModel.export(StyledTextModel.java:478)
	at jfx.incubator.richtext/jfx.incubator.scene.control.richtext.model.RtfFormatHandler.export(RtfFormatHandler.java:91)
	at jfx.incubator.richtext/jfx.incubator.scene.control.richtext.model.RtfFormatHandler.copy(RtfFormatHandler.java:72)
	at jfx.incubator.richtext/com.sun.jfx.incubator.scene.control.richtext.RichTextAreaBehavior.copyWithCut(RichTextAreaBehavior.java:1218)
	at jfx.incubator.richtext/com.sun.jfx.incubator.scene.control.richtext.RichTextAreaBehavior.copy(RichTextAreaBehavior.java:1124)
	at jfx.incubator.input/com.sun.jfx.incubator.scene.control.input.SkinInputMap.execute(SkinInputMap.java:187)
	at jfx.incubator.input/jfx.incubator.scene.control.input.InputMap.executeDefault(InputMap.java:221)
	at jfx.incubator.input/jfx.incubator.scene.control.input.InputMap.execute(InputMap.java:215)
	at jfx.incubator.input/jfx.incubator.scene.control.input.InputMap.execute(InputMap.java:197)
	at jfx.incubator.input/jfx.incubator.scene.control.input.InputMap.handleKeyBindingEvent(InputMap.java:187)
	at jfx.incubator.input/jfx.incubator.scene.control.input.InputMap.lambda$1(InputMap.java:170)
	at jfx.incubator.input/com.sun.jfx.incubator.scene.control.input.PHList.forEach(PHList.java:172)
	at jfx.incubator.input/jfx.incubator.scene.control.input.InputMap.handleEvent(InputMap.java:168)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)