-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
jfx19
-
generic
-
generic
ADDITIONAL SYSTEM INFORMATION :
GNU/LINUX Fedora 36 (x86_64)
5.19.8-200.fc36.x86_64
openjdk 18.0.2 2022-07-19
OpenJDK Runtime Environment (Red_Hat-18.0.2.0.9-1.rolling.fc36) (build 18.0.2+9)
OpenJDK 64-Bit Server VM (Red_Hat-18.0.2.0.9-1.rolling.fc36) (build 18.0.2+9, mixed mode, sharing)
A DESCRIPTION OF THE PROBLEM :
Using Fedora 36 (GNOME), dragging and dropping a file on a JavaFX control will produce a NullPointerException:
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Cannot read field "dragboard" because "this.this$0.dndGesture" is null
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Use Fedora Linux
2. Use ANY JavaFX release (the bug is also present in all JavaFX pre-releases)
2. Run the example code (or a JavaFX project code that has drag and drop feature on a control)
3. Drag and drop a file on a JavaFX control and JavaFX will produce a NullPointerException
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No nullpointerexception
ACTUAL -
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Cannot read field "dragboard" because "this.this$0.dndGesture" is null
at javafx.graphics@19/javafx.scene.Scene$DropTargetListener.drop(Scene.java:3001)
at javafx.graphics@19/com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.lambda$handleDragDrop$2(GlassSceneDnDEventHandler.java:111)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at javafx.graphics@19/com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.handleDragDrop(GlassSceneDnDEventHandler.java:107)
at javafx.graphics@19/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleDragDrop$11(GlassViewEventHandler.java:772)
at javafx.graphics@19/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
at javafx.graphics@19/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleDragDrop(GlassViewEventHandler.java:771)
at javafx.graphics@19/com.sun.glass.ui.View.handleDragDrop(View.java:708)
at javafx.graphics@19/com.sun.glass.ui.View.notifyDragDrop(View.java:1037)
at javafx.graphics@19/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics@19/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:316)
at java.base/java.lang.Thread.run(Thread.java:833)
---------- BEGIN SOURCE ----------
package org.example;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.input.Dragboard;
import javafx.scene.input.TransferMode;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage primaryStage) {
final StackPane root = new StackPane();
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
root.setOnDragOver(event -> {
if (event.getGestureSource() != root && event.getDragboard().hasFiles()) {
event.acceptTransferModes(TransferMode.COPY_OR_MOVE);
}
event.consume();
});
root.setOnDragDropped(event -> {
final Dragboard db = event.getDragboard();
boolean success = false;
if (db.hasFiles()) {
db.getFiles().forEach(f -> System.out.println(f.getAbsolutePath()));
success = true;
}
event.setDropCompleted(success);
event.consume();
});
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
None available
FREQUENCY : always
GNU/LINUX Fedora 36 (x86_64)
5.19.8-200.fc36.x86_64
openjdk 18.0.2 2022-07-19
OpenJDK Runtime Environment (Red_Hat-18.0.2.0.9-1.rolling.fc36) (build 18.0.2+9)
OpenJDK 64-Bit Server VM (Red_Hat-18.0.2.0.9-1.rolling.fc36) (build 18.0.2+9, mixed mode, sharing)
A DESCRIPTION OF THE PROBLEM :
Using Fedora 36 (GNOME), dragging and dropping a file on a JavaFX control will produce a NullPointerException:
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Cannot read field "dragboard" because "this.this$0.dndGesture" is null
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Use Fedora Linux
2. Use ANY JavaFX release (the bug is also present in all JavaFX pre-releases)
2. Run the example code (or a JavaFX project code that has drag and drop feature on a control)
3. Drag and drop a file on a JavaFX control and JavaFX will produce a NullPointerException
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No nullpointerexception
ACTUAL -
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Cannot read field "dragboard" because "this.this$0.dndGesture" is null
at javafx.graphics@19/javafx.scene.Scene$DropTargetListener.drop(Scene.java:3001)
at javafx.graphics@19/com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.lambda$handleDragDrop$2(GlassSceneDnDEventHandler.java:111)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at javafx.graphics@19/com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.handleDragDrop(GlassSceneDnDEventHandler.java:107)
at javafx.graphics@19/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleDragDrop$11(GlassViewEventHandler.java:772)
at javafx.graphics@19/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
at javafx.graphics@19/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleDragDrop(GlassViewEventHandler.java:771)
at javafx.graphics@19/com.sun.glass.ui.View.handleDragDrop(View.java:708)
at javafx.graphics@19/com.sun.glass.ui.View.notifyDragDrop(View.java:1037)
at javafx.graphics@19/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics@19/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:316)
at java.base/java.lang.Thread.run(Thread.java:833)
---------- BEGIN SOURCE ----------
package org.example;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.input.Dragboard;
import javafx.scene.input.TransferMode;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage primaryStage) {
final StackPane root = new StackPane();
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
root.setOnDragOver(event -> {
if (event.getGestureSource() != root && event.getDragboard().hasFiles()) {
event.acceptTransferModes(TransferMode.COPY_OR_MOVE);
}
event.consume();
});
root.setOnDragDropped(event -> {
final Dragboard db = event.getDragboard();
boolean success = false;
if (db.hasFiles()) {
db.getFiles().forEach(f -> System.out.println(f.getAbsolutePath()));
success = true;
}
event.setDropCompleted(success);
event.consume();
});
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
None available
FREQUENCY : always
- duplicates
-
JDK-8275033 Drag and drop a file produces NullPointerException Cannot read field "dragboard"
-
- Resolved
-