jruesga / rview

A Gerrit client application for Android
Apache License 2.0
66 stars 21 forks source link

Crash on opening existing change #68

Closed vlotorev closed 6 years ago

vlotorev commented 6 years ago

I browse changes on Incoming tab and app crashes constantly while tapping specific change. Backtrace is in attachments. I don't know how to get text backtrace easily, so screen shot attached, text is not copyable in this window.

img_20180308_162300

jruesga commented 6 years ago

@vlotorev 7e62848a1d3e8b82fa075d1bc4f0bab5993dbd7d should prevent the crash, but will not linkify it. If the repo is public could you pass me the link to the crashing link? Otherwise, could you open the crashing link in a web browser and post here the url links you found in the new change? Some of the url links in the destination click link has some link that made the app to crash when tries to linkify it. Thx.

vlotorev commented 6 years ago

My gerrit is private.

Commit message and comments contain following links:

And gitweb urls:

jruesga commented 6 years ago

Great, thanks. I will try to reproduce the crash.

jruesga commented 6 years ago

@vlotorev could you test with this version (https://cloud.ruesga.com/f/5c6c23b5f9/)? Instead of crash, it will send to crashlytics the information about was wrong with the linkify of the url of the change (the linkifyed text, the pattern and the link). Thx in advance.

vlotorev commented 6 years ago

@jruesga I installed the app and it doesn't crash. Comment link is not highlighted as link, just text. Will it send crashlytics silently on visiting the change?

I'll contact my server admin for comment link regexp (it's not possible to get regexp from client side, right?). Comment link regexp did change recently.

jruesga commented 6 years ago

Yes, it will silently send to crashlytics the link information (the next time the app is open if i recall correclty. stop the app and open it again to force the upload).

It's possible to get the links using the REST API. For example the link https://review.lineageos.org/projects/LineageOS%2Fandroid_frameworks_base/config returns a json document that have the commentlinks for the project LineageOS/android_frameworks_base in the form:

"commentlinks": {
    "cve": {
        "match": "\\b(CVE\\-\\d{4}\\-\\d+)\\b",
        "link": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=$1"
    }
}

You need to know which project the change belongs to and type the url on a browser

https://_**server**_/projects/**_project_**/config

Be sure you url encode the project name.

jruesga commented 6 years ago

@vlotorev i got the crash information in crashlytics. i will try to analyze them and fix the problem. thx so much.

jruesga commented 6 years ago

fixed in 2e74f14a325959850dc30a3323e58a694f424f3a

@vlotorev thanks for reporting the bug :)