Hi,
Similar to the thread posted here, I am also experiencing issues after updates last night. Since midnight last night I am receiving exceptions when running code in production. This does not occur when running through CodeRunner in debug (locally through terminal).
Specifically, I am getting the following exceptions:
Exception 1)
Exception: java.lang.IncompatibleClassChangeError: Found interface com.backendless.Messaging, but class was expected at com.btcmarketsticker.timers.NotificationSenderTimer.execute(NotificationSenderTimer.java:304) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at com.backendless.coderunner.runtime.task.TimerInvocationTask.runImpl(TimerInvocationTask.java:55) at com.backendless.coderunner.runtime.executor.ExtendedRunnable.run(ExtendedRunnable.java:42) at java.base/java.lang.Thread.run(Thread.java:833)
Which is relating to this particular line of code:
Backendless.Messaging.publish("default", "this is a message", publishOptions, deliveryOptions);
Exception 2)
Exception: java.lang.NoSuchFieldError: Persistence at com.btcmarketsticker.timers.JavaWorkerTimer.execute(JavaWorkerTimer.java:320) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at com.backendless.coderunner.runtime.task.TimerInvocationTask.runImpl(TimerInvocationTask.java:55) at com.backendless.coderunner.runtime.executor.ExtendedRunnable.run(ExtendedRunnable.java:42) at java.base/java.lang.Thread.run(Thread.java:833)
Which is relating to this line of code:
Backendless.Persistence.of(DailyChange.class).remove(firstElement);
Exception 3)
Exception: java.lang.NoSuchFieldError: Persistence at com.btcmarketsticker.timers.PriceGetterTimer.execute(PriceGetterTimer.java:645) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at com.backendless.coderunner.runtime.task.TimerInvocationTask.runImpl(TimerInvocationTask.java:55) at com.backendless.coderunner.runtime.executor.ExtendedRunnable.run(ExtendedRunnable.java:42) at java.base/java.lang.Thread.run(Thread.java:833)
Which is relating to the following line of code:
Backendless.Persistence.of(Prices.class).remove(firstElement);
As mentioned these exceptions are not thrown in debug mode when running CodeRunner locally through terminal. This occurs only for published timers running in production.
Please advise if any breaking changes have been made to the production environment overnight. As it stands my app is essentially useless until this is resolved.