When I first open a fresh install of Counterclockwise standalone and attempt to create a Clojure project I get an error dialog with the following message:
The selected wizard could not be started.
Reason:
Plug-in ccw.core was unable to load class ccw.leiningen.NewLeiningenProjectWizard
Details:
An error occurred while automatically activating bundle ccw.core (4)
No further information on this error seems to be available. I've put the Counterclockwise installation directory (C:\counterclockwise-0.35.1.STABLE001) in the class path but this did not affect anything.
If I try to open a Namespace Browser I get something similar:
org.eclipse.core.runtime.CoreException: Plug-in ccw.core was unable to load class ccw.repl.NamespaceBrowser.
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:176)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
...etc...
I suspect that this is some type of classpath issue but as I'm new to Java I don't know how to resolve this.
I've hunted the web and haven't found anything which looks like this issue.
This occurs on multiple machines with:
- Windows 10 64-bit
- Counterclockwise IDE Version 0.35.1.STABLE001 for Windows 64
- Clojure 1.8
java
java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
Any suggestions appreciated.
EDIT
Would I be better off installing Eclipse Neon first and then installing Counterclockwise as a plug-in?
EDIT
TL;DR If you dig through the error log excerpt below, near the bottom you'll find
Caused by: java.lang.IllegalArgumentException: No implementation of method: :matcher-fn of protocol: #'net.cgrand.parsley.lrplus/MatcherFactory found for class: paredit.parser$reify__1553
So is this some kind of issue with the Clojure version being run? I do notice that in the Counterclockwise dependencies below I see
[org.clojure/clojure-contrib "1.2.0"]
which seem like its from a very outdated version of Clojure. I've got this on my machine because it's part of a plugin for another editor (jEdit). Might this be the source of the issue? I've got jEdit and its Clojure plugin which includes this outdated version of Clojure on the other machines I've tried this on too, but the directory containing the old version of Clojure is not in the class path or the path. ????
FWIW when I export the Eclipse error log view I get about 12K+ lines of output. The first several hundred are
!SESSION 2016-12-30 20:49:15.136 -----------------------------------------------
eclipse.buildId=0.35.1.STABLE001
java.version=1.8.0_111
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64
!ENTRY ccw.core 1 0 2016-12-30 20:49:31.022
!MESSAGE CCWPlugin.start(): ENTER
!ENTRY ccw.core 1 0 2016-12-30 20:49:36.144
!MESSAGE Counterclockwise dependencies:
[bultitude "0.2.1"]
[ccw/ccw.server "0.2.1"]
[ccw/clojure-ccw "1.7.0"]
[cheshire "5.0.2"]
[classlojure "0.6.6"]
[clj-http "0.9.2"]
[clj-stacktrace "0.2.7"]
[clj-tuple "0.1.2"]
[clojure-complete "0.2.3"]
[com.cemerick/drawbridge "0.0.6"]
[com.cemerick/pomegranate "0.3.0"]
[com.fasterxml.jackson.core/jackson-core "2.1.3"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.1.2"]
[com.hypirion/io "0.3.1"]
[commons-codec "1.9"]
[commons-fileupload "1.2.1"]
[commons-io "2.4"]
[commons-lang "2.6"]
[commons-logging "1.1.3"]
[dynapath "0.2.0"]
[jline "2.12"]
[leiningen "2.5.1"]
[leiningen-core "2.5.1"]
[net.cgrand/parsley "0.9.2"]
[net.cgrand/regex "1.1.0"]
[net.cgrand/sjacket "0.1.1"]
[net.mikera/cljunit "0.2.0"]
[org.apache.httpcomponents/httpclient "4.3.3"]
[org.apache.httpcomponents/httpcore "4.3.2"]
[org.apache.httpcomponents/httpmime "4.3.3"]
[org.apache.maven/maven-aether-provider "3.0.4"]
[org.apache.maven/maven-model "3.0.4"]
[org.apache.maven/maven-model-builder "3.0.4"]
[org.apache.maven/maven-repository-metadata "3.0.4"]
[org.apache.maven.indexer/indexer-artifact "4.1.3"]
[org.apache.maven.indexer/indexer-core "4.1.3"]
[org.apache.maven.wagon/wagon-http "2.7"]
[org.apache.maven.wagon/wagon-http-shared "2.7"]
[org.apache.maven.wagon/wagon-provider-api "2.2"]
[org.clojure/clojure-contrib "1.2.0"]
[org.clojure/core.incubator "0.1.0"]
[org.clojure/data.xml "0.0.3"]
[org.clojure/java.classpath "0.2.2"]
[org.clojure/java.data "0.1.1"]
[org.clojure/tools.cli "0.3.1"]
[org.clojure/tools.logging "0.2.3"]
[org.clojure/tools.macro "0.1.1"]
[org.clojure/tools.nrepl "0.2.10"]
[org.clojure/tools.reader "0.8.4"]
[org.codehaus.plexus/plexus-classworlds "2.4"]
[org.codehaus.plexus/plexus-component-annotations "1.5.5"]
[org.codehaus.plexus/plexus-interpolation "1.14"]
[org.codehaus.plexus/plexus-utils "2.0.6"]
[org.jsoup/jsoup "1.7.2"]
[org.sonatype.aether/aether-api "1.13.1"]
[org.sonatype.aether/aether-connector-file "1.13.1"]
[org.sonatype.aether/aether-connector-wagon "1.13.1"]
[org.sonatype.aether/aether-impl "1.13.1"]
[org.sonatype.aether/aether-spi "1.13.1"]
[org.sonatype.aether/aether-util "1.13.1"]
[org.sonatype.sisu/sisu-inject-bean "2.2.3"]
[org.sonatype.sisu/sisu-inject-plexus "2.2.3"]
[org.tcrawley/dynapath "0.2.3"]
[pedantic "0.2.0"]
[potemkin "0.3.4"]
[prismatic/schema "0.4.4"]
[quoin "0.1.2"]
[reply "0.3.5"]
[riddley "0.1.6"]
[ring/ring-core "1.0.2"]
[robert/hooke "1.3.0"]
[scout "0.1.0"]
[slingshot "0.10.3"]
[stencil "0.3.5"]
[trptcolin/versioneer "0.1.1"]
!ENTRY org.eclipse.osgi 4 0 2016-12-30 20:49:40.712
!MESSAGE An error occurred while automatically activating bundle ccw.core (4).
!STACK 0
org.osgi.framework.BundleException: Exception in ccw.CCWPlugin.start() of bundle ccw.core.
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:792)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:941)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:318)
at org.eclipse.osgi.container.Module.doStart(Module.java:571)
at org.eclipse.osgi.container.Module.start(Module.java:439)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:327)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:402)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:573)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.processLanguages(ReflectionContributionFactory.java:137)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.<init>(ReflectionContributionFactory.java:45)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:502)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:522)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:203)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:628)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
Caused by: java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.classForName(RT.java:2155)
at clojure.lang.RT.classForName(RT.java:2164)
at clojure.lang.RT.loadClassForName(RT.java:2183)
at clojure.lang.RT.load(RT.java:436)
at clojure.lang.RT.load(RT.java:412)
at clojure.core$load$fn__5448.invoke(core.clj:5866)
at clojure.core$load.doInvoke(core.clj:5865)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5671)
at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
at clojure.core$load_lib.doInvoke(core.clj:5710)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:632)
at clojure.core$load_libs.doInvoke(core.clj:5749)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:632)
at clojure.core$require.doInvoke(core.clj:5832)
at clojure.lang.RestFn.invoke(RestFn.java:619)
at ccw.editors.clojure.editor_support$loading__5340__auto____2430.invoke(editor_support.clj:12)
at ccw.editors.clojure.editor_support__init.load(Unknown Source)
at ccw.editors.clojure.editor_support__init.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.classForName(RT.java:2155)
at clojure.lang.RT.classForName(RT.java:2164)
at clojure.lang.RT.loadClassForName(RT.java:2183)
at clojure.lang.RT.load(RT.java:436)
at clojure.lang.RT.load(RT.java:412)
at clojure.core$load$fn__5448.invoke(core.clj:5866)
at clojure.core$load.doInvoke(core.clj:5865)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5671)
at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
at clojure.core$load_lib.doInvoke(core.clj:5710)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:632)
at clojure.core$load_libs.doInvoke(core.clj:5749)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:632)
at clojure.core$require.doInvoke(core.clj:5832)
at clojure.lang.RestFn.invoke(RestFn.java:1096)
at ccw.editors.clojure.hover_support$loading__5340__auto____7902.invoke(hover_support.clj:12)
at ccw.editors.clojure.hover_support__init.load(Unknown Source)
at ccw.editors.clojure.hover_support__init.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.classForName(RT.java:2155)
at clojure.lang.RT.classForName(RT.java:2164)
at clojure.lang.RT.loadClassForName(RT.java:2183)
at clojure.lang.RT.load(RT.java:436)
at clojure.lang.RT.load(RT.java:412)
at clojure.core$load$fn__5448.invoke(core.clj:5866)
at clojure.core$load.doInvoke(core.clj:5865)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5671)
at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
at clojure.core$load_lib.doInvoke(core.clj:5710)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:632)
at clojure.core$load_libs.doInvoke(core.clj:5749)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:632)
at clojure.core$require.doInvoke(core.clj:5832)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.lang.Var.invoke(Var.java:379)
at ccw.util.osgi.ClojureOSGi$1.run(ClojureOSGi.java:137)
at ccw.util.osgi.ClojureOSGi.withBundle(ClojureOSGi.java:107)
at ccw.util.osgi.ClojureOSGi.withBundle(ClojureOSGi.java:52)
at ccw.util.osgi.ClojureOSGi.require(ClojureOSGi.java:133)
at ccw.util.ClojureInvoker.newInvoker(ClojureInvoker.java:46)
at ccw.util.ClojureInvoker.newInvoker(ClojureInvoker.java:42)
at ccw.CCWPlugin.initInjections(CCWPlugin.java:727)
at ccw.CCWPlugin.start(CCWPlugin.java:276)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764)
... 42 more
Caused by: java.lang.IllegalArgumentException: No implementation of method: :matcher-fn of protocol: #'net.cgrand.parsley.lrplus/MatcherFactory found for class: paredit.parser$reify__1553
at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:554)
at net.cgrand.parsley.lrplus$eval775$fn__776$G__766__783.invoke(lrplus.clj:32)
at net.cgrand.parsley.lrplus$matcher$fn__846.invoke(lrplus.clj:123)
OK, problem solved.
The resolution was fairly simple - it boils down to the old joke:
In this case the "DON'T DO THAT!" is "don't use the pre-built standalone version of CounterClockwise", at least on Windows. Install Eclipse Neon (I used the 64-bit version of the "Eclipse IDE For Java Developers" package from http://www.eclipse.org/downloads/eclipse-packages/), go to the marketplace (Help/Eclipse Marketplace...), type "counterclockwise" into the Find box, hit enter, install the CounterClockwise plug-in, restart Eclipse, and it runs. I still can't get it the debugger to work - it won't break on breakpoints - but at least I've gotten it to work somewhat.