Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot inherit from final class error

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.

like image 774
TommyT Avatar asked Aug 08 '13 23:08

TommyT


People also ask

Can you inherit a final class in java?

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.

Can final method be inherited?

Q) Is final method inherited? Ans) Yes, final method is inherited but you cannot override it.

How do you inherit final class in Kotlin?

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.

How do you declare a final class in java?

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 { . . . }


3 Answers

if you're using kotlin, add open to your class (extends RealmObject) declaration

open class Foo() {

}
like image 197
itzhar Avatar answered Sep 25 '22 14:09

itzhar


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.

like image 36
Stephen C Avatar answered Sep 25 '22 14:09

Stephen C


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
like image 35
Saurabh Avatar answered Sep 26 '22 14:09

Saurabh