import javafx.application.Application;
import javafx.application.Platform;
import javafx.concurrent.Worker;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

import java.io.File;

public class LocalStorageBugDemo extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(final Stage stage) {
        final WebView webView = new WebView();
        final WebEngine webEngine = webView.getEngine();
        webEngine.setJavaScriptEnabled(true);
        webEngine.setUserDataDirectory(new File("D://Incidents//JI-9067550//java-store"));
        webEngine.load("file:///D://Incidents//JI-9067550//foo.html");
        webEngine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> {
			if (newValue == Worker.State.SUCCEEDED) {
				System.out.println("localStorage before close is: " + webEngine.executeScript("localStorage;"));
				webEngine.executeScript("window.close();");
				System.out.println("localStorage after close is: " + webEngine.executeScript("localStorage;"));
				Platform.exit();
			}
		});
		
    }
} 