Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/news-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid-Development <david-dev@live.de>2022-01-31 20:43:59 +0300
committerDavid Luhmer <david-dev@live.de>2022-01-31 20:43:59 +0300
commit2653e2d6907771e328811f428fb6f7adbf952649 (patch)
tree06ae0dddc6a9273bdbf6e6242cb339c5cb50b68b
parent4dedd28615939403c38f2db6891e0498b40fce35 (diff)
Fix OutOfMemoryError while fixing urls - fix #1055
Signed-off-by: David Luhmer <david-dev@live.de>
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java7
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java15
2 files changed, 16 insertions, 6 deletions
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java
index bdb0bb33..bf59f1e5 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java
@@ -125,7 +125,12 @@ public class ImageHandler {
if(!originalLink.equals(link)) {
Log.d(TAG, "Fixed link from: " + originalArticleUrl + " and " + originalLink + " -> " + link);
- text = text.replaceAll(originalLink, link);
+ // text = text.replaceAll(originalLink, link); // this causes OutOfMemoryExceptions (https://github.com/nextcloud/news-android/issues/1055)
+
+ Pattern URL_PATTERN = Pattern.compile(originalLink);
+ Matcher urlMatcher = URL_PATTERN.matcher(text);
+ return urlMatcher.replaceAll(link);
+
}
}
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java
index 4e0b3c57..812b9434 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java
@@ -97,24 +97,29 @@ class InsertRssItemIntoDatabase {
int contentLength = content.length();
double sizeInMb = contentLength/1024d/1024d;
if(sizeInMb > 0.4) {
- Log.w("InsertRssItem", "Massive rss item detected - " + content.length() + " chars / " + content.length()/1024d/1024d + "mb - url:" + rssItem.getLink());
+ Log.w(TAG, "Massive rss item detected - " + content.length() + " chars / " + content.length() / 1024d / 1024d + "mb - url: " + rssItem.getLink());
// Trim string down to 500k characters
int maxLengthAllowed = 500000;
if(content.length() > maxLengthAllowed) {
- Log.w("InsertRssItem", "Limiting rss item size to 500k characters - url:" + rssItem.getLink());
+ Log.w(TAG, "Limiting rss item size to 500k characters - url:" + rssItem.getLink());
content = content.substring(0, maxLengthAllowed);
}
} else if(sizeInMb > 0.1) {
- Log.w("InsertRssItem", "Large rss item detected - " + content.length() + " chars / " + content.length()/1024d/1024d + "mb - url:" + rssItem.getLink());
+ Log.w(TAG, "Large rss item detected - " + content.length() + " chars / " + content.length() / 1024d / 1024d + "mb - url: " + rssItem.getLink());
}
try {
// try fixing relative image links
content = ImageHandler.fixBrokenImageLinksInArticle(url, content);
- } catch(Exception ex) {
+ } catch (Exception ex) {
ex.printStackTrace();
- Log.e(TAG, ex.toString());
+ Log.e(TAG, "Error while fixing broken image links in article" + ex);
+ } catch (OutOfMemoryError error) {
+ error.printStackTrace();
+ Log.e(TAG, "OutOfMemoryError while fixing broken image links in article" + error);
+ Log.e(TAG, "OutOfMemoryError Article length:" + content.length());
+
}
rssItem.setBody(content);