Open alex-iotiq opened 1 year ago
New findings and a possible solution:
// KoPeMe/kopeme-core/src/main/java/de/dagere/kopeme/kieker/KoPeMeKiekerSupport.java:153
final MonitoringWriterThread thread = getMonitoringWriterThread(writerController);
getMonitoringWriterThread
probably returns null
.
// KoPeMe/kopeme-core/src/main/java/de/dagere/kopeme/kieker/KoPeMeKiekerSupport.java:153
static MonitoringWriterThread getMonitoringWriterThread(final WriterController writerController)
throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, NoSuchFieldException {
final Field monitoringWriterThreadField = WriterController.class.getDeclaredField("monitoringWriterThread");
monitoringWriterThreadField.setAccessible(true);
final MonitoringWriterThread thread = (MonitoringWriterThread) monitoringWriterThreadField.get(writerController);
return thread;
}
Handling the Thread.isAlive()
null exception returns different error:
System.err: Caused by: java.io.FileNotFoundException: ... /android-example-2_peass/projectTemp/parallel_7cb0b425c837229fbbc8385941c1f231bbcc054c_peass/measurementsTemp/kieker-20230120-142609-553031302952980-UTC--KIEKER-KoPeMe/measurement-0.bin: open failed: ENOENT (No such file or directory)
System.err: at libcore.io.IoBridge.open(IoBridge.java:492)
System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:236)
System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:186)
System.err: at de.dagere.kopeme.kieker.aggregateddata.FileDataManagerBin.<init>(FileDataManagerBin.java:35)
System.err: at de.dagere.kopeme.kieker.writer.AggregatedTreeWriter.<init>(AggregatedTreeWriter.java:64)
System.err: ... 39 more
...
System.err: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
...
Kieker reads its configuration from META-INF/kieker.monitoring.properties
if no JVM arguments are present.
If useAggregation
option is true, then AggregatedTreeWriter
will be used.
It's possible to write a custom path for kieker results like de.dagere.kopeme.kieker.writer.AggregatedTreeWriter.customStoragePath=/storage/emulated/0/Documents/measurementsTemp
inside.
This solution can be applied in AOPXMLHelper.java
inside writeKiekerMonitoringProperties
.
After successful RTS and measurement steps in Jenkins for the Android example project, RCA fails with this error
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean kieker.monitoring.writer.MonitoringWriterThread.isAlive()' on a null object reference
.Log