Skip to content

Commit 2c27b3a

Browse files
committed
arte logging
dw: fix nullpointerexception in log
2 parents d37f581 + 7966e4b commit 2c27b3a

File tree

11 files changed

+39
-12
lines changed

11 files changed

+39
-12
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ sourceCompatibility = JavaVersion.VERSION_17
2727
targetCompatibility = JavaVersion.VERSION_17
2828
group = 'de.mediathekview'
2929
archivesBaseName = "MServer"
30-
version = '3.1.275'
30+
version = '3.1.276'
3131

3232
def jarName = 'MServer.jar'
3333
def mainClass = 'mServer.Main'

dist/mserver.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<system-proxy-port></system-proxy-port>
3232
<system-debug>1</system-debug>
3333
<sr-rate-limit>1.0</sr-rate-limit>
34+
<arte-rate-limit>6.0</arte-rate-limit>
3435
</system>
3536

3637

src/main/java/de/mediathekview/mlib/tool/Log.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,12 @@ public static synchronized void errorLog(int fehlerNummer, String[] text) {
218218
fehlermeldung_(fehlerNummer, null, text);
219219
}
220220

221-
// public static synchronized void systemMeldung(String[] text) {
221+
public static synchronized void logHttpError(String url, int statusCode) {
222+
Exception e = new RuntimeException(String.valueOf(statusCode));
223+
fehlermeldung_(110000000 + statusCode, e, new String[]{ String.format("error %d for URL: %s", statusCode, url)});
224+
}
225+
226+
// public static synchronized void systemMeldung(String[] text) {
222227
// systemmeldung_(text);
223228
// }
224229
public static synchronized void sysLog(String text) {

src/main/java/mServer/crawler/sender/ard/tasks/ArdTaskBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private <A> Optional<A> deserializeUnsafe(final WebTarget target, final Type typ
6262
+ target.getUri().toString()
6363
+ " failed: "
6464
+ response.getStatus();
65-
Log.errorLog(23646387, logText);
65+
Log.logHttpError(target.getUri().toString(), response.getStatus());
6666
LOG.warn(logText);
6767
}
6868
} catch (ProcessingException e) {

src/main/java/mServer/crawler/sender/arte/ArteCrawler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,11 @@ private int getNumberOfAvailablePages(String lang) {
101101
JsonElement element = jsoupConnection.requestBodyAsJsonElement(rootUrl, headers);
102102
Optional<Integer> pages = JsonUtils.getElementValueAsInteger(element, path);
103103
if (pages.isPresent()) {
104+
Log.sysLog("ARTE."+ lang + ": number of pages: " + pages.get());
104105
return pages.get();
105106
}
106107
} catch (IOException e) {
108+
Log.errorLog(45983790, e);
107109
LOG.error("getMaxPagesForOverview", e);
108110
}
109111
return ArteConstants.MAX_POSSIBLE_SUBPAGES;

src/main/java/mServer/crawler/sender/arte/tasks/ArteRateLimitedJsonRestTask.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
import mServer.crawler.sender.MediathekReader;
66
import mServer.crawler.sender.base.AbstractJsonRestTask;
77
import mServer.crawler.sender.base.CrawlerUrlDTO;
8+
import mServer.tool.MserverDaten;
89

910
import java.util.Optional;
1011
import java.util.concurrent.ConcurrentLinkedQueue;
1112

1213
public abstract class ArteRateLimitedJsonRestTask<T, R, D extends CrawlerUrlDTO> extends AbstractJsonRestTask<T, R, D> {
1314
private static final long serialVersionUID = 1L;
14-
private static final RateLimiter rateLimiter = RateLimiter.create(6.0);
15+
private static final RateLimiter rateLimiter = RateLimiter.create(MserverDaten.getArteRateLimit());
1516

1617
protected ArteRateLimitedJsonRestTask(MediathekReader aCrawler, ConcurrentLinkedQueue<D> urlToCrawlDTOs, Optional<String> authKey) {
1718
super(aCrawler, urlToCrawlDTOs, authKey);

src/main/java/mServer/crawler/sender/arte/tasks/ArteVideoInfoTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ protected AbstractRecursivConverterTask<ArteVideoInfoDto, TopicUrlDTO> createNew
8383

8484
@Override
8585
protected void handleHttpError(TopicUrlDTO dto, URI url, Response response) {
86-
Log.errorLog(45983789, "http error " + response.getStatus() + ": " + url);
86+
Log.logHttpError(url.toString(), response.getStatus());
8787
log.fatal("A HTTP error {} occurred when getting REST VideoInfo information from: \"{}\".", response.getStatus(), url);
8888
}
8989
}

src/main/java/mServer/crawler/sender/arte/tasks/ArteVideoLinkTask.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import de.mediathekview.mlib.tool.Log;
1010
import mServer.crawler.sender.MediathekReader;
11-
import mServer.crawler.sender.base.AbstractJsonRestTask;
1211
import mServer.crawler.sender.base.AbstractRecursivConverterTask;
1312
import org.apache.logging.log4j.LogManager;
1413
import org.apache.logging.log4j.Logger;
@@ -59,7 +58,7 @@ protected AbstractRecursivConverterTask<ArteVideoInfoDto, ArteVideoInfoDto> crea
5958

6059
@Override
6160
protected void handleHttpError(ArteVideoInfoDto dto, URI url, Response response) {
62-
Log.errorLog(89723823, "http error: " + response.getStatus() + " " + url);
61+
Log.logHttpError(url.toString(), response.getStatus());
6362
log.fatal("A HTTP error {} occurred when getting REST VideoLink information from: \"{}\".", response.getStatus(), url);
6463
}
6564
}

src/main/java/mServer/crawler/sender/dw/tasks/DwFilmDetailTask.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ protected void processRestTarget(final CrawlerUrlDTO aDTO, final WebTarget aTarg
4646
} catch (Exception e) {
4747
LOG.error("error processing {} ", aDTO.getUrl(), e);
4848
}
49-
if (!filmDetailDtoOptional.isPresent()) {
49+
// Optional can be null if response code is 200 and response body is empty
50+
if (filmDetailDtoOptional == null|| filmDetailDtoOptional.isEmpty()) {
5051
FilmeSuchen.listeSenderLaufen.inc(crawler.getSendername(), RunSender.Count.FEHLER);
5152
FilmeSuchen.listeSenderLaufen.inc(crawler.getSendername(), RunSender.Count.FEHLVERSUCHE);
5253
return;

src/main/java/mServer/tool/MserverDaten.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,22 @@ public static double getSrRateLimit() {
7777
}
7878
}
7979

80+
public static double getArteRateLimit() {
81+
String rateLimitValue = system[MserverKonstanten.SYSTEM_ARTE_RATELIMIT_NR];
82+
if (rateLimitValue == null || rateLimitValue.trim().equals("")) {
83+
return 6.0;
84+
}
85+
86+
try {
87+
double rateLimit = Double.parseDouble(system[MserverKonstanten.SYSTEM_ARTE_RATELIMIT_NR].trim());
88+
MserverLog.systemMeldung("ARTE rate limit: " + Double.toString(rateLimit));
89+
return rateLimit;
90+
} catch (NumberFormatException ignored) {
91+
MserverLog.fehlerMeldung(963487218, MserverDaten.class.getName(), new String[]{"ARTE rate limit falsch: ", system[MserverKonstanten.SYSTEM_ARTE_RATELIMIT_NR]});
92+
return 6.0;
93+
}
94+
}
95+
8096
public static void setBasisVerzeichnis(String b) {
8197
if (b.isEmpty()) {
8298
basisverzeichnis = getBasisVerzeichnis(b, true);

0 commit comments

Comments
 (0)