Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.
/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