I tried shutting down zap when the active scan was still in progress but ZAP shut down is not successful.
ZAP is not shut down yet and I can see the message window "Shutting down server and database" and approx. 1 hour has passed since then.
2022-12-18 21:22:39,105 [ZAP-Scanner-0] INFO HostProcess - stopped host/plugin
http://localhost:3333 | SqlInjectionMsSqlScanRule in 600.024s with 21 message(s) sent and 0 alert(s) raised.
2022-12-18 21:22:39,242 [ZAP-Scanner-0] INFO HostProcess - stopped host/plugin
http://localhost:3333 | SqlInjectionMsSqlScanRule in 600.034s with 21 message(s) sent and 0 alert(s) raised.
2022-12-18 21:23:50,571 [ZAP-Scanner-0] INFO HostProcess - stopped host/plugin
http://localhost:3333 | SqlInjectionMsSqlScanRule in 600.022s with 21 message(s) sent and 0 alert(s) raised.
2022-12-18 21:27:39,122 [ZAP-Scanner-0] INFO HostProcess - completed host
http://localhost:3333 in 1509.739s with 0 alert(s) raised.
2022-12-18 21:27:39,125 [Thread-666] INFO Scanner - scanner completed in 1509.753s
2022-12-18 21:27:39,255 [ZAP-Scanner-0] INFO HostProcess - completed host
http://localhost:3333 in 1509.909s with 0 alert(s) raised.
2022-12-18 21:27:39,256 [Thread-663] INFO Scanner - scanner completed in 1509.92s
2022-12-18 21:28:50,588 [ZAP-Scanner-0] INFO HostProcess - completed host
http://localhost:3333 in 1507.672s with 0 alert(s) raised.
2022-12-18 21:28:50,590 [Thread-4218] INFO Scanner - scanner completed in 1507.684s
2022-12-18 22:05:27,725 [AWT-EventQueue-0] INFO Control - Discard Session
2022-12-18 22:05:27,779 [AWT-EventQueue-0] ERROR ExtensionLoader - Cant access or use PMF after it has been closed.
javax.jdo.JDOUserException: Cant access or use PMF after it has been closed.
at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.assertIsOpen(JDOPersistenceManagerFactory.java:1316) ~[?:?]
at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceManager(JDOPersistenceManagerFactory.java:905) ~[?:?]
at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceManager(JDOPersistenceManagerFactory.java:892) ~[?:?]
at org.zaproxy.addon.database.Database.getAll(Database.java:101) ~[?:?]
at org.zaproxy.addon.oast.ExtensionOast$OastSessionChangedListener.addRegisteredServersFromPermanentDatabase(ExtensionOast.java:414) ~[?:?]
at org.zaproxy.addon.oast.ExtensionOast$OastSessionChangedListener.sessionChanged(ExtensionOast.java:390) ~[?:?]
at org.parosproxy.paros.extension.ExtensionLoader.sessionChangedAllPlugin(ExtensionLoader.java:547) ~[zap-2.12.0.jar:2.12.0]
at org.parosproxy.paros.control.Control.discardSession(Control.java:610) ~[zap-2.12.0.jar:2.12.0]
at org.parosproxy.paros.control.Control.exit(Control.java:298) ~[zap-2.12.0.jar:2.12.0]
at org.parosproxy.paros.control.MenuFileControl.exit(MenuFileControl.java:109) ~[zap-2.12.0.jar:2.12.0]
at org.zaproxy.zap.OsXGui.exitZap(OsXGui.java:163) ~[zap-2.12.0.jar:2.12.0]
at org.zaproxy.zap.OsXGui.lambda$setup$0(OsXGui.java:77) ~[zap-2.12.0.jar:2.12.0]
at com.sun.proxy.$Proxy18.handleQuitRequestWith(Unknown Source) ~[?:?]
at com.apple.eawt._AppEventHandler$_QuitDispatcher.performUsing(Unknown Source) ~[?:?]
at com.apple.eawt._AppEventHandler$_QuitDispatcher.performUsing(Unknown Source) ~[?:?]
at com.apple.eawt._AppEventHandler$_AppEventDispatcher$1.run(Unknown Source) ~[?:?]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) ~[?:?]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[?:?]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:?]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:?]
at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[?:?]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) ~[?:?]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[?:?]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[?:?]
at java.awt.WaitDispatchSupport$2.run(Unknown Source) ~[?:?]
at java.awt.WaitDispatchSupport$4.run(Unknown Source) ~[?:?]
at java.awt.WaitDispatchSupport$4.run(Unknown Source) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at java.awt.WaitDispatchSupport.enter(Unknown Source) ~[?:?]
at java.awt.Dialog.show(Unknown Source) ~[?:?]
at java.awt.Component.show(Unknown Source) ~[?:?]
at java.awt.Component.setVisible(Unknown Source) ~[?:?]
at java.awt.Window.setVisible(Unknown Source) ~[?:?]
at java.awt.Dialog.setVisible(Unknown Source) ~[?:?]
at org.parosproxy.paros.extension.AbstractDialog.setVisible(AbstractDialog.java:136) ~[zap-2.12.0.jar:2.12.0]
at org.parosproxy.paros.control.Control.exit(Control.java:342) ~[zap-2.12.0.jar:2.12.0]
at org.parosproxy.paros.control.MenuFileControl.exit(MenuFileControl.java:109) ~[zap-2.12.0.jar:2.12.0]
at org.parosproxy.paros.view.MainFrame$1.windowClosing(MainFrame.java:258) ~[zap-2.12.0.jar:2.12.0]
at java.awt.AWTEventMulticaster.windowClosing(Unknown Source) ~[?:?]
at java.awt.Window.processWindowEvent(Unknown Source) ~[?:?]
at javax.swing.JFrame.processWindowEvent(Unknown Source) ~[?:?]
at java.awt.Window.processEvent(Unknown Source) ~[?:?]
at java.awt.Component.dispatchEventImpl(Unknown Source) ~[?:?]
at java.awt.Container.dispatchEventImpl(Unknown Source) ~[?:?]
at java.awt.Window.dispatchEventImpl(Unknown Source) ~[?:?]
at java.awt.Component.dispatchEvent(Unknown Source) ~[?:?]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[?:?]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:?]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:?]
at java.awt.EventQueue$5.run(Unknown Source) ~[?:?]
at java.awt.EventQueue$5.run(Unknown Source) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:?]
at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[?:?]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) ~[?:?]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[?:?]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) ~[?:?]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) ~[?:?]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) ~[?:?]
at java.awt.EventDispatchThread.run(Unknown Source) ~[?:?]
2022-12-18 22:05:28,114 [ZAP-Shutdown] INFO WebSocketPassiveScannerManager - Passive scan thread had already been closed
2022-12-18 22:05:28,117 [ZAP-Shutdown] ERROR ExtensionLoader - Publisher with name org.zaproxy.zap.extension.websocket.WebSocketEventPublisher not registered
java.security.InvalidParameterException: Publisher with name org.zaproxy.zap.extension.websocket.WebSocketEventPublisher not registered
at org.zaproxy.zap.eventBus.SimpleEventBus.unregisterPublisher(SimpleEventBus.java:127) ~[zap-2.12.0.jar:2.12.0]
at org.zaproxy.zap.extension.websocket.WebSocketEventPublisher.shutdown(WebSocketEventPublisher.java:141) ~[?:?]
at org.zaproxy.zap.extension.websocket.ExtensionWebSocket.stop(ExtensionWebSocket.java:500) ~[?:?]
at org.parosproxy.paros.extension.ExtensionLoader.stopAllExtension(ExtensionLoader.java:865) ~[zap-2.12.0.jar:2.12.0]
at org.parosproxy.paros.control.AbstractControl.shutdown(AbstractControl.java:71) ~[zap-2.12.0.jar:2.12.0]
at org.parosproxy.paros.control.Control.shutdown(Control.java:228) ~[zap-2.12.0.jar:2.12.0]
at org.parosproxy.paros.control.Control$1.run(Control.java:308) ~[zap-2.12.0.jar:2.12.0]
at java.lang.Thread.run(Unknown Source) ~[?:?]
Can this be looked into please.