Cannot open Micro-Manager MDA in icy 2.1.2.0

Cannot open MDA after my Icy updated and installed new plugins automatically.

It says the AcquisitionEngine2010 cannot be opened.

I’ve tried a fresh installation of both icy and MM1.4 (latest nightly build).

No success, however Icy 2.0.3.0 still functions as intended.

Hi @MasoudR

I just tested and it works with last Icy (with a recent nightly from Micro-Manager):

The thing is that if you loaded Micro-Manager plugin, then you update some plugins and try to re-opened Micro-Manager it will fails. You need to restart Icy to get Micro-Manager back working.

Best,

– Stephane

1 Like

Dear Stephane,

I know about the first time start-up issue and this is different. I get the problem even when re-launching icy several times. See the image below for some error messages.
Interestingly it seems this is only an issue on certain computers.
I’m having the error on my office PC (64bit windows 10 with java version "1.8.0_251" Java(TM) SE Runtime Environment (build 1.8.0_251-b08) Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)).
But not on the laboratory PC (64bit window 7 with java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode))
My home PC with a 64 bit windows 10 worked, though I dont have the java version handy right now.

I noticed that the first one appears while launching Icy (when the splash screen is still going) and disappears before Icy comes up. Because of this message I tried running as administrator, and I’ve tried running it from a network drive as administrator. Same issues occured, but when starting MM I got a strange Digitally Signed Driver required message from windows. I have not been able to recreate that pop-up, nor did it give any option to install said driver.
The second one shows when launching MM.
The third one shows when I hit Acquire! in the MDA window.

Judging from the Output log below it seems to have something to do with Clojure:

Mar 02, 2021 12:18:32 PM java.util.prefs.WindowsPreferences <init> WARNING: Could not create windows registry node Software\JavaSoft\Prefs\org at root 0xffffffff80000002. Windows RegCreateKeyEx(...) returned error code 5. Mar 02, 2021 12:18:32 PM java.util.prefs.WindowsPreferences WindowsRegOpenKey1 WARNING: Trying to recreate Windows registry node Software\JavaSoft\Prefs\org at root 0xffffffff80000002. Mar 02, 2021 12:18:32 PM java.util.prefs.WindowsPreferences openKey WARNING: Could not open windows registry node Software\JavaSoft\Prefs\org at root 0xffffffff80000002. Windows RegOpenKey(...) returned error code 2. Mar 02, 2021 12:18:32 PM java.util.prefs.WindowsPreferences WindowsRegOpenKey1 WARNING: Trying to recreate Windows registry node Software\JavaSoft\Prefs\org\micromanager at root 0xffffffff80000002. Mar 02, 2021 12:18:32 PM java.util.prefs.WindowsPreferences openKey WARNING: Could not open windows registry node Software\JavaSoft\Prefs\org\micromanager at root 0xffffffff80000002. Windows RegOpenKey(...) returned error code 2. Mar 02, 2021 12:18:32 PM java.util.prefs.WindowsPreferences WindowsRegOpenKey1 WARNING: Trying to recreate Windows registry node Software\JavaSoft\Prefs\org\micromanager at root 0xffffffff80000002. Mar 02, 2021 12:18:32 PM java.util.prefs.WindowsPreferences openKey WARNING: Could not open windows registry node Software\JavaSoft\Prefs\org\micromanager at root 0xffffffff80000002. Windows RegOpenKey(...) returned error code 2. java.lang.ExceptionInInitializerError at clojure.lang.Namespace.<init>(Namespace.java:34) at clojure.lang.Namespace.findOrCreate(Namespace.java:176) at clojure.lang.Var.internPrivate(Var.java:163) at org.micromanager.AcquisitionEngine2010.<clinit>(Unknown Source) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at org.micromanager.MMStudio$1.run(MMStudio.java:587) Caused by : java.lang.IllegalArgumentException: Must hint overloaded method: toArray, compiling:(clojure/gvec.clj:122:1) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6567) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyze(Compiler.java:6322) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6009) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyze(Compiler.java:6322) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5139) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3751) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6558) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.eval(Compiler.java:6616) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__1451.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$eval2906.invoke(core.clj:6159) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.lang.RT.doInit(RT.java:447) at clojure.lang.RT.<clinit>(RT.java:329) at clojure.lang.Namespace.<init>(Namespace.java:34) at clojure.lang.Namespace.findOrCreate(Namespace.java:176) at clojure.lang.Var.internPrivate(Var.java:163) at org.micromanager.AcquisitionEngine2010.<clinit>(Unknown Source) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at org.micromanager.MMStudio$1.run(MMStudio.java:587) Caused by : java.lang.IllegalArgumentException: Must hint overloaded method: toArray at clojure.lang.Compiler$NewInstanceMethod.parse(Compiler.java:7879) at clojure.lang.Compiler$NewInstanceExpr.build(Compiler.java:7471) at clojure.lang.Compiler$NewInstanceExpr$DeftypeParser.parse(Compiler.java:7352) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyze(Compiler.java:6322) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6009) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyze(Compiler.java:6322) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5139) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3751) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6558) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.eval(Compiler.java:6616) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__1451.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$eval2906.invoke(core.clj:6159) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.lang.RT.doInit(RT.java:447) at clojure.lang.RT.<clinit>(RT.java:329) at clojure.lang.Namespace.<init>(Namespace.java:34) at clojure.lang.Namespace.findOrCreate(Namespace.java:176) at clojure.lang.Var.internPrivate(Var.java:163) at org.micromanager.AcquisitionEngine2010.<clinit>(Unknown Source) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at org.micromanager.MMStudio$1.run(MMStudio.java:587)

I want to note that a collaborator I recommended Icy to is having a similar issue (they too mentioned reloading icy several times):

1 Like

Hi @MasoudR

I tried to download the last nightly to see if it makes any difference (mine was dated from november 2020) but it does not make any difference for me. But i tried with a fresh Icy 2.1.2 and this time i was able to reproduce it. I’m almost certain it comes from an incompatible / conflicting version of library (Clojure probably as you mentioned). We will investigate it and get back to you when we will have more information about it. Thanks again for your report !

Edit: well it appears the issue i got was just because Icy was updating some plugins in the background. As soon plugins updates were made Micro-Manager started to work correctly, so in the end I have not yet been able to reproduce the issue.

Did you try to load the MM demo config to see if that make any difference ?

Best,

– Stephane

1 Like

Hi Stephane,

Thank you for helping out. I’ve tested everything on MM demo config, since the issue is happening on my office computer used to test plugins.
My home computer works fine: Windows 10, 64bit, java 1.8.0.251, MM 1.4.22, icy 2.1.2.0

I’ve never touched anything related to clojure before as far as I know, so I’m not sure how this is happening.

1 Like

Hi @MasoudR

Did you try to use the exact same Micro-Manager and Icy on both system ?
For instance by directly copying the Icy folder from your office computer to your other computer to see if that allows to reproduce the problem ?
I suspect a plugin embedding a different version of Clojure library or something like that.
I didn’t managed yet to reproduce it but there is certainly a good reason for it to happen on your office computer.

Best,

– Stephane

1 Like