Java stack Exception with Juce 6.1 (and 6.1.1)

Hi,

Since we have updated to 6.1, we have experienced some crashes in our app on some devices.

We got some call stacks from Google Play Console “pre-launch” automatic tests.

Though it seems to be related to Android - accessibility crashes - #5 by peteatjuce, the stack trace is not the same.

The crash seems to be related to a stack overflow on the Java side.

Any idea ?

Native stack

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/x1quex/x1q:10/QP1A.190711.020/G981U1UES1ATFB:user/release-keys'
Revision: '14'
ABI: 'arm64'
Timestamp: 2021-09-09 09:18:42-0700
pid: 5732, tid: 5732, name: wireless_remote  >>> com.two_notes.torpedo_wireless_remote <<<
uid: 10285
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: 'No pending exception expected: java.lang.StackOverflowError: stack size 8192KB
  at haean com.rmsl.juce.ComponentPeerView.populateAccessibilityNodeInfo(long, int, android.view.accessibility.AccessibilityNodeInfo) (ComponentPeerView.java:-2)
  at boolean com.rmsl.juce.ComponentPeerView.access$500(com.rmsl.juce.ComponentPeerView, long, int, android.view.accessibility.AccessibilityNodeInfo) (ComponentPeerView.java:55)
  at android.view.accessibility.AccessibilityNodeInfo com.rmsl.juce.ComponentPeerView$JuceAccessibilityNodeProvider.createAccessibilityNodeInfo(int) (ComponentPeerView.java:568)
  at void android.view.ViewRootImpl.handleWindowContentChangedEvent(android.view.accessibility.AccessibilityEvent) (ViewRootImpl.java:9678)
  at boolean android.view.ViewRootImpl.requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) (ViewRootImpl.java:9601)
  at boolean android.view.ViewGroup.requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) (ViewGroup.java:1090)
  at boolean com.rmsl.juce.ComponentPeerView.populateAccessibilityNodeInfo(long, int, android.view.accessibility.AccessibilityNodeInfo) (ComponentPeerView.java:-2)
  at boolean com.rmsl.juce.ComponentPeerView.access$500(com.rmsl.juce.ComponentPeerView, long, int, android.view.accessibility.AccessibilityNodeInfo) (ComponentPeerView.java:55)
  at android.view.accessibility.AccessibilityNodeInfo com.rmsl.juce.ComponentPeerView$JuceAccessibilityNodeProvider.createAccessibilityNodeInfo(int) (ComponentPeerView.java:568)
  at void android.view.ViewRootImpl.handleWindowContentChangedEvent(android.view.accessibility.AccessibilityEvent) (ViewRootImpl.java:9678)
  at boolean android.view.ViewRootImpl.requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) (ViewRootImpl.java:9601)
  at boolean android.view.ViewGroup.requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) (ViewGroup.java:1090)
  at boolean com.rmsl.juce.ComponentPeerView.populateAccessibilityNodeInfo(long, int, android.view.accessibility.AccessibilityNodeInfo) (ComponentPeerView.java:-2)
  at boolean com.rmsl.juce.ComponentPeerView.access$500(com.rmsl.juce.ComponentPeerView, long, int, android.view.accessibility.AccessibilityNodeInfo) (ComponentPeerView.java:55)
  at android.view.accessibility.AccessibilityNodeInfo com.rmsl.juce.ComponentPeerView$JuceAccessibilityNodeProvider.createAccessibilityNodeInfo(int) (ComponentPeerView.java:568)
  at void android.view.ViewRootImpl.handleWindowContentChangedEvent(android.view.accessibility.AccessibilityEvent) (ViewRootImpl.java:9678)
  at boolean android.view.ViewRootImpl.requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) (ViewRootImpl.java:9601)
  at boolean android.view.ViewGroup.requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) (ViewGroup.java:1090)
  at boolean com.rmsl.juce.ComponentPeerView.populateAccessibilityNodeInfo(long, int, android.view.accessibility.AccessibilityNodeInfo) (ComponentPeerView.java:-2)
  at boolean com.rmsl.juce.ComponentPeerView.access$500(com.rmsl.juce.ComponentPeerView, long, int, android.view.accessibility.AccessibilityNodeInfo) (ComponentPeerView.java:55)
  at android.view.accessibility.AccessibilityNodeInfo com.rmsl.juce.ComponentPeerView$JuceAccessibilityNodeProvider.createAccessibilityNodeInfo(int) (ComponentPeerView.java:568)
  at void android.view.ViewRootImpl.handleWindowContentChangedEvent(android.view.accessibility.AccessibilityEvent) (ViewRootImpl.java:9678)
  at boolean android.view.ViewRootImpl.requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) (ViewRootImpl.java:9601)
  at boolean android.view.ViewGroup.requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) (ViewGroup.java:1090)
  at boolean com.rmsl.juce.ComponentPeerView.populateAccessibilityNod
    x0  0000000000000000  x1  0000000000001664  x2  0000000000000006  x3  0000007fc205e3d0
    x4  fefeff79cd51af97  x5  fefeff79cd51af97  x6  fefeff79cd51af97  x7  7f7f7f7fff7fffff
    x8  00000000000000f0  x9  a081d47479728eed  x10 0000000000000001  x11 0000000000000000
    x12 fffffff0fffffbdf  x13 ffffffffffffffff  x14 0000000000000000  x15 ffffffffffffffff
    x16 0000007acee108c0  x17 0000007acedecfe0  x18 0000007ad0064000  x19 0000000000001664
    x20 0000000000001664  x21 00000000ffffffff  x22 00000079bfcfa700  x23 0000007a490d5a84
    x24 0000007a490b59ac  x25 0000007a495f3000  x26 0000007acf1fc258  x27 0000007a495f3000
    x28 0000000000000043  x29 0000007fc205e470
    sp  0000007fc205e3b0  lr  0000007aced9e27c  pc  0000007aced9e2a8

Java stack


FATAL EXCEPTION: Thread-2
Process: com.two_notes.torpedo_wireless_remote, PID: 23594
java.lang.StackOverflowError: stack size 1041KB
	at android.view.accessibility.AccessibilityNodeInfo.init(AccessibilityNodeInfo.java:3472)
	at android.view.accessibility.AccessibilityNodeInfo.obtain(AccessibilityNodeInfo.java:3143)
	at android.view.accessibility.AccessibilityCache.getNode(AccessibilityCache.java:228)
	at android.view.accessibility.AccessibilityInteractionClient.findAccessibilityNodeInfoByAccessibilityId(AccessibilityInteractionClient.java:325)
	at android.view.accessibility.AccessibilityNodeInfo.getChild(AccessibilityNodeInfo.java:976)
	at android.support.test.uiautomator.f.findMatches(ByMatcher.java:15)
	at android.support.test.uiautomator.f.findMatches(ByMatcher.java:18)
	at android.support.test.uiautomator.f.findMatches(ByMatcher.java:18)
	at android.support.test.uiautomator.f.findMatches(ByMatcher.java:18)
	at android.support.test.uiautomator.f.findMatches(ByMatcher.java:18)
	at android.support.test.uiautomator.f.findMatches(ByMatcher.java:18)
	at android.support.test.uiautomator.f.findMatches(ByMatcher.java:18)
	at android.support.test.uiautomator.f.findMatches(ByMatcher.java:18)
        ...
1 Like

Thanks for reporting. This should now be fixed on the develop branch:

1 Like