tingsu / DroidDefects

A database of crash (exception) bugs for Android apps
20 stars 2 forks source link

Alternative crash for app adsdroid #8

Open auermich93 opened 8 months ago

auermich93 commented 8 months ago

The original crash (https://github.com/tingsu/DroidDefects/tree/master/reproducible-cases/adsdroid-hu.vsza.adsdroid-1.7.2) is difficult to reproduce by a human since the search is often too fast to be interrupted by a rotation. A simpler crash can be reproduced by performing an arbitrary search, e.g., insert 'test' and then click on an arbitrary list entry. This will let the app crash with the following stack trace:

2024-01-05 19:26:35.906 4169-4186/hu.vsza.adsdroid E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
    Process: hu.vsza.adsdroid, PID: 4169
    java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:325)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
        at java.util.concurrent.FutureTask.run(FutureTask.java:242)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)
     Caused by: java.lang.IllegalArgumentException: Malformed URL: //www.alldatasheet.com/datasheet-pdf/pdf/194736/STMICROELECTRONICS/LM324.html
        at org.jsoup.helper.HttpConnection.url(HttpConnection.java:53)
        at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:25)
        at org.jsoup.Jsoup.connect(Jsoup.java:73)
        at hu.vsza.adsapi.Part.getPdfConnection(Part.java:34)
        at hu.vsza.adsdroid.PartList$DownloadDatasheet.doInBackground(PartList.java:56)
        at hu.vsza.adsdroid.PartList$DownloadDatasheet.doInBackground(PartList.java:48)
        at android.os.AsyncTask$2.call(AsyncTask.java:305)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
        at java.lang.Thread.run(Thread.java:761) 
     Caused by: java.net.MalformedURLException: no protocol: //www.alldatasheet.com/datasheet-pdf/pdf/194736/STMICROELECTRONICS/LM324.html
        at java.net.URL.<init>(URL.java:589)
        at java.net.URL.<init>(URL.java:486)
        at java.net.URL.<init>(URL.java:435)
        at org.jsoup.helper.HttpConnection.url(HttpConnection.java:51)
        at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:25) 
        at org.jsoup.Jsoup.connect(Jsoup.java:73) 
        at hu.vsza.adsapi.Part.getPdfConnection(Part.java:34) 
        at hu.vsza.adsdroid.PartList$DownloadDatasheet.doInBackground(PartList.java:56) 
        at hu.vsza.adsdroid.PartList$DownloadDatasheet.doInBackground(PartList.java:48) 
        at android.os.AsyncTask$2.call(AsyncTask.java:305) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
        at java.lang.Thread.run(Thread.java:761) 

Tested on a Pixel XL with API level 25 (7.1.1).

tingsu commented 8 months ago

@auermich93 Thank you a lot for reporting the issues in detail! You could take a look at Themis, a more recent and well-maintained bug repository for Android apps. This repository contains 72 reproducible, real-world bugs. We also published a paper on this dataset (Benchmarking Automated GUI Testing for Android against Real-World Bugs).