Explorar el Código

fix-deploybug

Qyanger hace 5 meses
padre
commit
b3e16766ae

+ 20 - 10
src/main/java/com/demo/seecanalysisbackend/service/LogAnalysisService.java

@@ -112,11 +112,19 @@ public class LogAnalysisService {
             .map(entry -> {
                 String endpoint = entry.getKey();
                 List<LogEntry> logs = entry.getValue();
-                
+
                 List<Long> responseTimes = logs.stream()
-                    .map(log -> log.getContext() != null && log.getContext().get("responseTime") != null ? 
-                        Long.parseLong(log.getContext().get("responseTime").toString()) : 0L)
-                    .toList();
+                        .map(log -> {
+                            if (log.getContext() == null || log.getContext().get("responseTime") == null) {
+                                return 0L;
+                            }
+                            String value = log.getContext().get("responseTime").toString();
+                            if (value.isBlank()) {
+                                return 0L;
+                            }
+                            return Long.parseLong(value);
+                        })
+                        .toList();
                 
                 double avgResponseTime = responseTimes.stream()
                     .mapToLong(Long::longValue)
@@ -179,13 +187,15 @@ public class LogAnalysisService {
         
         Pageable pageable = PageRequest.of(0, 1000);
         Page<LogEntry> logs = logEntryRepository.findByTimestampBetween(startTime, endTime, pageable);
-        
+
         double avgResponseTime = logs.getContent().stream()
-            .filter(log -> log.getContext() != null && log.getContext().get("responseTime") != null)
-            .mapToLong(log -> Long.parseLong(log.getContext().get("responseTime").toString()))
-            .filter(responseTime -> responseTime != 0L)
-            .average()
-            .orElse(0.0);
+                .filter(log -> log.getContext() != null && log.getContext().get("responseTime") != null)
+                .map(log -> log.getContext().get("responseTime").toString())
+                .filter(s -> !s.isBlank())
+                .mapToLong(Long::parseLong)
+                .filter(responseTime -> responseTime != 0L)
+                .average()
+                .orElse(0.0);
         
         return LogStatistics.TrendData.builder()
             .timestamp(startTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME))