13

I am working on a project in netbeans that when I launch it using the glassfish 3.1.2.Everything works fine.But when i call the /invite url which is mapped to following method

@RequestMapping(value = "/invite", method = RequestMethod.POST)
    @ExceptionHandler(GenericException.class)
    public ModelAndView create(@ModelAttribute(value = "preRegister") @Valid PreRegister preRegister, BindingResult result, HttpServletRequest request) {
        mav = new ModelAndView();
        validator.validate(preRegister, result);
        List<Role> roleList = null;
        if (result.hasErrors()) {
            mav.setViewName("user_populate_create");
            try {
                roleList = roleDao.list();
            } catch (Exception ex) {
                logger.error("UserController: Unable to list Roles: ", ex);
                throw new GenericException("UserController: Unable to list Roles: " + ex.getMessage());
            }
            if (roleList == null || roleList.isEmpty()) {
                throw new GenericException("UserController: Unable to list Roles");
            } else {
                mav.addObject("roles", roleList);
            }

        } else {
            String uuid = RandomUuid.generate();
            preRegister.setUrlCode(uuid);
            preRegister.setCreatedOn(Helper.rightNow());
            List<PreRegister> p;

            try {
                p = preRegisterDao.findbyQuery("checkAvailability", preRegister.getLoginId());
                if (p == null || p.isEmpty()) {
                    preRegisterDao.saveOrUpdate(preRegister);
                } else {
                    throw new GenericException("User Email Id is Exist! try With another Email Id ");
                }
            } catch (Exception exception) {
                exception.printStackTrace();
                logger.error("Invite user: ", exception);
                throw new GenericException("Exception :: " + exception.getMessage());

            }



        }
        return mav;

    }

Even the first line of method is not executed and gives me this stacktrace

java.lang.AbstractMethodError
    at javax.persistence.Persistence$PersistenceUtilImpl.isLoaded(Unknown Source)
    at org.hibernate.validator.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:61)
    at org.hibernate.validator.engine.resolver.DefaultTraversableResolver.isReachable(DefaultTraversableResolver.java:131)
    at org.hibernate.validator.engine.resolver.SingleThreadCachedTraversableResolver.isReachable(SingleThreadCachedTraversableResolver.java:46)
    at org.hibernate.validator.engine.ValidatorImpl.isValidationRequired(ValidatorImpl.java:1242)
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:448)
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:397)
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:361)
    at org.hibernate.validator.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:313)
    at org.hibernate.validator.engine.ValidatorImpl.validate(ValidatorImpl.java:139)
    at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:86)
    at org.springframework.validation.DataBinder.validate(DataBinder.java:692)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doBind(HandlerMethodInvoker.java:807)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:359)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:722)

I am using Spring MVC 3.0 Hibernate 3 and i have recently updated my jdk version from jdk6 to jdk7 and I am using IBM generic DAO. I searched hours on the internet about this but could not find the solution.

UPDATE : Jar files list which i used.

file: dwr.jar
file: gson-2.2.1.jar
file: javaee-api-6.0.jar
file: ejb3-persistence.jar
file: hibernate-annotations.jar
file: hibernate-commons-annotations.jar
file: hibernate-entitymanager.jar
file: hibernate-validator.jar
file: hibernate3.jar
file: persistence.jar
file: Jhove-final.jar
file: jhove-handler.jar
file: jhove-module.jar
file: jhove.jar
file: json-org.jar
file: json-taglib-0.4.1.jar
file: antlr-2.7.6.jar
file: antlr-runtime-3.0.jar
file: aspectjrt.jar
file: aspectjweaver.jar
file: commons-beanutils-1.8.0.jar
file: commons-collections-3.1.jar
file: commons-dbcp.jar
file: commons-digester-2.0.jar
file: dom4j-1.6.1.jar
file: ehcache-1.2.3.jar
file: javassist-3.9.0.GA.jar
file: jstl-1.2.jar
file: jta-1.1.jar
file: log4j-1.2.14.jar
file: mysql-connector-java-5.1.18-bin.jar
file: servlet-api-2.3.jar
file: slf4j-api-1.5.8.jar
file: slf4j-log4j12-1.5.8.jar
file: cas-client-core-3.1.10.jar
file: ldapsdk-4.1.jar
file: spring-ldap-core-1.3.0.RELEASE.jar
file: spring-security-acl-3.0.5.RELEASE.jar
file: spring-security-cas-client-3.0.5.RELEASE.jar
file: spring-security-config-3.0.5.RELEASE.jar
file: spring-security-core-3.0.5.RELEASE.jar
file: spring-security-ldap-3.0.5.RELEASE.jar
file: spring-security-openid-3.0.5.RELEASE.jar
file: spring-security-taglibs-3.0.5.RELEASE.jar
file: spring-security-web-3.0.5.RELEASE.jar
file: com.springsource.net.sf.cglib-2.2.0.jar
file: com.springsource.org.aopalliance-1.0.0.jar
file: com.springsource.org.apache.commons.logging-1.1.1.jar
file: com.springsource.org.apache.commons.pool-1.5.3.jar
file: com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
file: org.springframework.aop-3.0.5.RELEASE.jar
file: org.springframework.asm-3.0.5.RELEASE.jar
file: org.springframework.aspects-3.0.5.RELEASE.jar
file: org.springframework.beans-3.0.5.RELEASE.jar
file: org.springframework.context-3.0.5.RELEASE.jar
file: org.springframework.context.support-3.0.5.RELEASE.jar
file: org.springframework.core-3.0.5.RELEASE.jar
file: org.springframework.expression-3.0.5.RELEASE.jar
file: org.springframework.instrument-3.0.5.RELEASE.jar
file: org.springframework.instrument.tomcat-3.0.5.RELEASE.jar
file: org.springframework.jdbc-3.0.5.RELEASE.jar
file: org.springframework.orm-3.0.5.RELEASE.jar
file: org.springframework.test-3.0.5.RELEASE.jar
file: org.springframework.transaction-3.0.5.RELEASE.jar
file: org.springframework.web-3.0.5.RELEASE.jar
file: org.springframework.web.servlet-3.0.5.RELEASE.jar
file: tiles-api-2.2.2.jar
file: tiles-compat-2.2.2.jar
file: tiles-core-2.2.2.jar
file: tiles-el-2.2.2.jar
file: tiles-extras-2.2.2.jar
file: tiles-freemarker-2.2.2.jar
file: tiles-jsp-2.2.2.jar
file: tiles-mvel-2.2.2.jar
file: tiles-ognl-2.2.2.jar
file: tiles-servlet-2.2.2.jar
file: tiles-servlet-wildcard-2.2.2.jar
file: tiles-template-2.2.2.jar
file: tiles-velocity-2.2.2.jar
file: UUID-Parser.jar
file: SafeCommons.jar
file: safe_commons_v2.jar
file: FileUtillsDoc.jar
file: SAFE_MS2_V1_FILEUTILLS.jar
file: jackson-annotations-2.0.4.jar
file: jackson-core-2.0.4.jar
file: jackson-databind-2.0.4.jar
file: jai_codec-1.1.3.jar
file: jai_core-1.1.3.jar
file: pdfbox-app-1.3.1.jar
file: sanselan-0.97-incubator.jar
file: jai_codec-1.1.3.jar
file: jai_core-1.1.3.jar
file: pdfbox-app-1.3.1.jar
file: sanselan-0.97-incubator.jar
Dangling Piyush
  • 3,658
  • 8
  • 37
  • 52

10 Answers10

36

java.lang.AbstractMethodError is thrown when an application tries to call an abstract method. Normally, this error is caught by the compiler; this error can only occur at run time if the definition of some class has incompatibly changed since the currently executing method was last compiled.

Seems like this problem is due to version incompatibility in some of the jar file. I can not figure it from your code. Please check this thread.

Nandkumar Tekale
  • 16,024
  • 8
  • 58
  • 85
  • 1
    The link to the original documentation and corresponding formatting for citing text would be nice. – morpheus05 Aug 18 '15 at 12:53
  • 1
    That was my problem, different versions of classes. Thank you very much. – Roberto Rodriguez May 17 '16 at 18:08
  • in my case I called the method through returned interface, and overlooked compilation error was there :) – kiedysktos Jul 13 '16 at 11:22
  • in my case I had changed the dependency to `org.springframework.cloud` to version Greenich.SR2, but I had a dependency to `org.springframework.boot` version 2.0.5.RELEASE. The error occurred in a JUnit test. Once I updated the latter dependency to 2.1.7.RELEASE the error went away. *Conclusion*: check also the version compatibility of dependencies that might be interrelated. – Paulo Merson Oct 29 '19 at 11:53
3

This error occurs because an abstract method is called without actual implementation. It usually happens after some library is upgraded while some is not. The dependencies are missing somehow.

Hence please check whether all library upgrades complete successfully.

Here is a good example and demonstration on how an AbstractMethodError can occur.

PixelsTech
  • 3,229
  • 1
  • 33
  • 33
2

I had this error from a cause not mentioned here.

I was using proguard and it obfuscated a class, which then led to the AbstractMethodError. Just had to keep that class in proguard.

Fred Andrews
  • 648
  • 9
  • 18
  • Did you have to keep the interface (or abstract class) or the concrete implementation class? – tir38 Mar 01 '19 at 22:16
1

This can occur in NetBeans while running Java 8 and implementing an interface using lambdas and then changing the interfaces signature.

Simple solution: run Clean and build (Shift+F11 is by default)*

Abhishek
  • 6,912
  • 14
  • 59
  • 85
Zar
  • 6,786
  • 8
  • 54
  • 76
0

Put a Breakpoint on the Exception (or the line where it is occurring) to find out which class/method exactly is causing the problem, then search your classpath for all occurrences of this class. If you have more than one version of a class on your classpath, remove the wrong one.

koljaTM
  • 10,064
  • 2
  • 40
  • 42
0

I also had the same issue in my case the problem was i have two .class files with same name in two different jar files.I excluded on of the jar file from pom.xml it started working!

Eric Aya
  • 69,473
  • 35
  • 181
  • 253
Narendra
  • 127
  • 3
  • 11
0

I lost some time on this.

In pom.xml, for dependencies if you have set LATEST, it can be due to that, please specify the correct version no there, it is a best practice too

Nazeel
  • 326
  • 3
  • 10
0

This could probably also be happening if you are mixing any spring dependecies with spring-boot. Check all the dependencies and find if there is sping-boot dependency. If you are using spring-boot then don't import spring dependencies as spring-boot already gives everyting. If you are trying to use spring then do not go for spring-boot and vice-versa.

HackerRaj
  • 39
  • 1
  • 8
0

I ran into this error also, using Tomcat 8.5. Another message stated that it required Tomcat 9.0, but this is not the case - I am using Spring Boot 2.2.5, and my issue was the lack of two methods from being included:

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    @Override
    public void destroy() {
    }

Adding those two methods resolved the issue.

Barry Chapman
  • 6,690
  • 3
  • 36
  • 64
-1

Aspectj version 1.7.3 will solve this issue .Please try it out

AVM
  • 9
  • 4