Bug #38
open[ CTS ] IllegalAccessError due to access violation in protobuf classes
0%
Description
Failure Analysis Report¶
Cluster Summary¶
| Property | Value |
|---|---|
| Cluster ID | #5 |
| Severity | High |
| Category | Test Case Issue |
| Confidence | 5/5 |
| Impact | 1 failures |
System Information¶
| Property | Value |
|---|---|
| Fingerprint | Trimble/T70/thorpe:15/AQ3A.250408.001/02.00.20.251106:user/release-keys |
| Build ID | AQ3A.250408.001 |
| Product | T70 |
| Model | T70 |
| Android Version | 15 |
| Security Patch | 2025-10-01 |
| Test Suite | CTS |
AI Analysis¶
Summary:
IllegalAccessError due to access violation in protobuf classes
The test 'testSystemServerLossErrorCode' in the MetadataTests class failed due to an IllegalAccessError. This error occurred because the class android.aconfig.Aconfig$parsed_flag attempted to access the private method 'emptyList()' of the LazyStringArrayList class from the protobuf library, which is not permitted due to Java's access control.
Root Cause:
The test failed because of an IllegalAccessError caused by an attempt to access a private method from a class in an unnamed module.
Suggested Solution:
Review the access modifiers of the LazyStringArrayList class and ensure that any required methods are publicly accessible or refactor the code to avoid such access violations. Additionally, check for version compatibility between the protobuf library and the code that uses it to ensure that no breaking changes exist.
Technical Details¶
Stack Trace Signature:
com.google.common.util.concurrent.ExecutionError: java.lang.IllegalAccessError: class android.aconfig.Aconfig$parsed_flag tried to access method 'com.google.protobuf.LazyStringArrayList com.google.protobuf.LazyStringArrayList.emptyList()' (android.aconfig.Aconfig$parsed_flag and com.google.protobuf.LazyStringArrayList are in unnamed module of loader 'app')
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2083)
at com.google.common.cache.LocalCache.get(LocalCache.java:4017)
at
Affected Test Cases¶
Failure 1¶
- Module:
CtsStatsdHostTestCases[instant] - Test Case:
android.cts.statsd.metadata.MetadataTests#testSystemServerLossErrorCode - Stack Trace:
com.google.common.util.concurrent.ExecutionError: java.lang.IllegalAccessError: class android.aconfig.Aconfig$parsed_flag tried to access method 'com.google.protobuf.LazyStringArrayList com.google.protobuf.LazyStringArrayList.emptyList()' (android.aconfig.Aconfig$parsed_flag and com.google.protobuf.LazyStringArrayList are in unnamed module of loader 'app')
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2083)
at com.google.common.cache.LocalCache.get(LocalCache.java:4017)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4040)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4989)
at android.platform.test.flag.junit.host.HostFlagsValueProvider.setUp(HostFlagsValueProvider.java:88)
at android.platform.test.flag.junit.CheckFlag
...
(truncated)
Failure 2¶
- Module:
CtsStatsdHostTestCases[instant] - Test Case:
android.cts.statsd.metadata.MetadataTests#testSystemServerLossErrorCode - Stack Trace:
com.google.common.util.concurrent.ExecutionError: java.lang.IllegalAccessError: class android.aconfig.Aconfig$parsed_flag tried to access method 'com.google.protobuf.LazyStringArrayList com.google.protobuf.LazyStringArrayList.emptyList()' (android.aconfig.Aconfig$parsed_flag and com.google.protobuf.LazyStringArrayList are in unnamed module of loader 'app')
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2083)
at com.google.common.cache.LocalCache.get(LocalCache.java:4017)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4040)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4989)
at android.platform.test.flag.junit.host.HostFlagsValueProvider.setUp(HostFlagsValueProvider.java:88)
at android.platform.test.flag.junit.CheckFlag
...
(truncated)
No data to display