/internal/workItems.shtm DWR invocation exception java.lang.NoSuchMethodError:
-
This NoSuchMethodError occurs as soon as I click on the Work Items link under Internal metric.
- I have no class or jar files overridden.
- This was first noticed on core 2.7.2, but continues on core 2.7.4.
2016-02-25 09:26:35,362 ERROR (com.serotonin.m2m2.web.dwr.util.ExceptionDetectionFilter.doFilter:38) - DWR invocation exception java.lang.NoSuchMethodError: com.serotonin.m2m2.rt.maint.BackgroundProcessing.getHighPriorityServiceQueueClassCounts()Ljava/util/Map; at com.serotonin.m2m2.internal.threads.ThreadsDwrDef$ThreadsDwr.getWorkItems(ThreadsDwrDef.java:99) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) at com.serotonin.m2m2.web.dwr.util.TranslationsFilter.doFilter(TranslationsFilter.java:37) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) at com.serotonin.m2m2.web.dwr.util.ExceptionDetectionFilter.doFilter(ExceptionDetectionFilter.java:26) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) at com.serotonin.m2m2.web.dwr.util.DwrPermissionFilter.doFilter(DwrPermissionFilter.java:45) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283) at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83) at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:300) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745)
-
This is caused by the same issue as your medium priority pool not being able to save, probably (it is the same class you're trying to invoke methods in).
I know you say you don't have any overrides, but I'm not sure I believe you. It doesn't help that I know you've had the BackgroundProcessing class overridden in the past. The only other thing I believe would cause that error is duplicate jars in your Mango/lib/ folder (specifically, multiple ma-core-2.x.x.jar I would think).
-
I have previously pasted my overrides file listing straight from the console find command output, so that should eliminate the "not sure I believe you" issue. Here it is again:
$ find /opt/mango/overrides -type f /opt/mango/overrides/web/favicon.ico /opt/mango/overrides/web/MangoDailyScheduled.sh /opt/mango/overrides/web/images/favicon.ico /opt/mango/overrides/web/images/logo.png /opt/mango/overrides/web/images/Tides_icon.png /opt/mango/overrides/web/WEB-INF/tags/page.tag /opt/mango/overrides/web/WEB-INF/tags/html5/footer.tag /opt/mango/overrides/web/WEB-INF/tags/html5/footer.tag-orig /opt/mango/overrides/web/WEB-INF/tags/mobile-page.tag /opt/mango/overrides/properties/keystore.jks /opt/mango/overrides/properties/i18n.properties /opt/mango/overrides/properties/env.properties-derby~ /opt/mango/overrides/properties/env.properties-mysql~ /opt/mango/overrides/properties/env.properties /opt/mango/overrides/properties/env.properties.13Jan2015 /opt/mango/overrides/__MACOSX/classes/._.DS_Store /opt/mango/overrides/__MACOSX/classes/com/._.DS_Store /opt/mango/overrides/__MACOSX/classes/com/serotonin/m2m2/._.DS_Store /opt/mango/overrides/__MACOSX/classes/com/serotonin/m2m2/rt/._.DS_Store /opt/mango/overrides/__MACOSX/classes/com/serotonin/._.DS_Store /opt/mango/overrides/classes/log4j.xml
I don't know why there is a MACOSX override folder there as this is not a MAC. Can I delete it?
Only one Mango/lib core file:
$ ls /opt/mango/lib/ma-core* /opt/mango/lib/ma-core-2.7.4.jar
There are 156 files in /opt/mango/lib/. All are dated Feb 22:
$ ls -x /opt/mango/lib/ | wc -l 156
-
I do not know what that __MACOSX directory is, but that the override path is to com.serotonin.m2m2.rt is a good sign it could be related to your issue. Definitely deletable from my perspective.
Your jar count is also correct. I will try to find your system settings json in the spam folder, but I haven't seen that email yet.
-
I deleted __MACOSX/. I don't know where it came from, but I'm thinking perhaps one of you using a MAC inadvertently zipped it to me once. I can't think of another explanation. When circumstances force me to work up the courage to restart, I'll let you know how it went.
-
For what it's worth, /opt/mango/overrides/__MACOSX was dated Mar 16 2015. Again, I don't have a MAC.
-
I do not know either, I am not a MAC guy. I suspect you are correct in how it got there.
The Mango/classes directory is also on the classpath. Could your override be in there?
-
Thanks, I did not know to look there. I think you found the problem. I think I may have been asked to place some files there a while ago, and since they were not in /overrides/, I did not know to delete them during an upgrade. Can you please state very precisely which I should delete? Thanks.
$ find /opt/mango/classes/ -type f | xargs ls -l -rw-r--r-- 1 root root 1419 May 8 2015 /opt/mango/classes/com/serotonin/m2m2/rt/maint/BackgroundProcessing$1.class -rw-r--r-- 1 root root 5678 May 8 2015 /opt/mango/classes/com/serotonin/m2m2/rt/maint/BackgroundProcessing.class -rw-r--r-- 1 root root 3788 Feb 22 23:05 /opt/mango/classes/debug-log4j.xml -rw-r--r-- 1 root root 4349 Feb 22 23:05 /opt/mango/classes/env.properties -rw-r--r-- 1 root root 86283 Feb 22 23:05 /opt/mango/classes/i18n.properties -rw-r--r-- 1 root root 3756 Feb 22 23:05 /opt/mango/classes/log4j.xml -rw-r--r-- 1 mango mango 4323 Jun 24 2014 /opt/mango/classes/org/jfree/data/Range.class -rw-r--r-- 1 root root 34 Feb 22 23:05 /opt/mango/classes/swagger.properties
-
I didn't either, or I would have mentioned it sooner. You can delete your classes/com directory entirely.
-
Deleted. I presume this will only take effect after a restart?
-
Correct