What does this error mean .. It runs fine in Eclipse but not in intellij idea
Exception in thread "main" java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at com.couchbase.client.ViewConnection.createConnections(ViewConnection.java:120)
at com.couchbase.client.ViewConnection.<init>(ViewConnection.java:100)
at com.couchbase.client.CouchbaseConnectionFactory.createViewConnection(CouchbaseConnectionFactory.java:179)
at com.couchbase.client.CouchbaseClient.<init>(CouchbaseClient.java:243)
at com.couchbase.client.CouchbaseClient.<init>(CouchbaseClient.java:175)
at com.couchbase.App.putincbase(App.java:122)
at examplesCons.TestCons.run(TestCons.java:89)
at examplesCons.TestCons.main(TestCons.java:121)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
I get this error when I try to run couchbase using couchbase-client-1.1.6.jar from Intellij IDea.
The final class is a class that is declared with the final keyword. Subclasses can't inherit a final class or a final class cannot be inherited by any subclass. So, We can restrict class inheritance by making use of a final class.
Q) Is final method inherited? Ans) Yes, final method is inherited but you cannot override it.
All Kotlin classes are final, so they cannot be inherited. To make a class inheritable, the keyword open needs to be present at the beginning of the class signature, which also makes them non-final.
To specify that your class is a final class, use the keyword final before the class keyword in your class declaration. For example, if you wanted to declare your (perfect) ChessAlgorithm class as final, its declaration would look like this: final class ChessAlgorithm { . . . }
if you're using kotlin, add open
to your class (extends RealmObject) declaration
open class Foo() {
}
The message means what it says.
Somewhere, somehow you have managed to create a class that extends a superclass, where the superclass has been declared as final
.
The most likely cause is that you have a conflict between your build classpath and your launch classpath. In other words, you are compiling your subclass against a version of the superclass that is not final
, and then running against a version that is final
. The verifier is saying (correctly) that this is wrong.
If it is not your build / one of your classes that is causing this, then it is some internal conflict within the CouchDB client classes that you are using. Indeed the fact that this is a VerifyError
rather than an IncompatibleClassChangeError
suggests that this maybe a problem with some dynamically generated bytecodes.
I also faced this with IntelliJ Idea: 2018.3 Community Edition, However running following fixed it for me:
mvn -U idea:idea clean compile install -DskipTests
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With