diff --git a/java-backend/.idea/misc.xml b/java-backend/.idea/misc.xml
index cfc92b5e..2ee03b50 100644
--- a/java-backend/.idea/misc.xml
+++ b/java-backend/.idea/misc.xml
@@ -8,5 +8,5 @@
-
+
\ No newline at end of file
diff --git a/java-backend/.idea/workspace.xml b/java-backend/.idea/workspace.xml
index 3364a97a..f4f4033b 100644
--- a/java-backend/.idea/workspace.xml
+++ b/java-backend/.idea/workspace.xml
@@ -4,7 +4,10 @@
-
+
+
+
+
@@ -13,29 +16,29 @@
-
+ {
+ "associatedIndex": 5
+}
- {
+ "keyToString": {
+ "Maven.java-backend.executor": "Run",
+ "ModuleVcsDetector.initialDetectionPerformed": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
+ "RunOnceActivity.git.unshallow": "true",
+ "git-widget-placeholder": "main",
+ "kotlin-language-version-configured": "true",
+ "last_opened_file_path": "/Users/suthar/dev/shopper/backend/java-backend",
+ "project.structure.last.edited": "Project",
+ "project.structure.proportion": "0.0",
+ "project.structure.side.proportion": "0.0"
}
-}]]>
+}
diff --git a/java-backend/MIGRATION_SUMMARY.md b/java-backend/MIGRATION_SUMMARY.md
index b3613fcf..5626197f 100644
--- a/java-backend/MIGRATION_SUMMARY.md
+++ b/java-backend/MIGRATION_SUMMARY.md
@@ -1,69 +1,88 @@
-# OpenTelemetry to OneAgent SDK Migration Summary
+# OneAgent SDK to OpenTelemetry Migration Summary
## Migration Completed ✅
-The Java backend application has been successfully migrated from OpenTelemetry to Dynatrace OneAgent SDK for Java.
+The Java backend application has been successfully reverted from Dynatrace OneAgent SDK back to OpenTelemetry OTLP exporter using environment variables.
## Changes Made
### 1. Maven Dependencies Updated (`pom.xml`)
-- ✅ Removed OpenTelemetry dependencies:
- - `io.opentelemetry:opentelemetry-api`
+- ✅ Removed OneAgent SDK dependency:
+ - `com.dynatrace.oneagent.sdk.java:oneagent-sdk:1.9.0`
+
+- ✅ Added OpenTelemetry dependencies:
- `io.opentelemetry:opentelemetry-sdk`
- `io.opentelemetry:opentelemetry-exporter-otlp`
- `io.opentelemetry:opentelemetry-sdk-trace`
- `io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter`
- `io.micrometer:micrometer-tracing-bridge-otel`
-- ✅ Added OneAgent SDK dependency:
- - `com.dynatrace.oneagent.sdk.java:oneagent-sdk:1.9.0`
-
### 2. Configuration Classes Replaced
#### Removed:
-- ❌ `src/main/java/com/shopper/config/OpenTelemetryConfig.java`
-- ❌ `src/main/java/com/shopper/config/DynatraceOtelLogHook.java`
+- ❌ `src/main/java/com/shopper/config/OneAgentConfig.java`
#### Added:
-- ✅ `src/main/java/com/shopper/config/OneAgentConfig.java`
- - OneAgent SDK initialization and status checking
- - Logging callback configuration
- - Service metadata configuration
-
-- ✅ `src/main/java/com/shopper/config/DynatraceOneAgentLogHook.java`
- - Custom service tracing for feature flag evaluation
- - Integration with DevCycle hooks
- - Request attributes for flag context
-
-### 3. Service Classes Enhanced
-
-#### `UserService.java` - Authentication Tracing
-- ✅ Added OneAgent SDK custom service tracing for:
- - User registration (`user_registration.register`)
- - User authentication (`user_authentication.login`)
-- ✅ Custom request attributes:
- - `username`, `email`, `assigned_role`, `user_id`, `user_role`
-- ✅ Error handling and logging integration
-
-#### `DualDatabaseStrategyImpl.java` - Database Request Tracing
-- ✅ Added OneAgent SDK database request tracing
-- ✅ Separate tracing for primary (SQLite) and secondary (PostgreSQL) databases
-- ✅ Operation type tracking: SELECT, INSERT/UPDATE, SELECT (fallback)
-- ✅ Database vendor and connection information
+- ✅ `src/main/java/com/shopper/config/OpenTelemetryConfig.java`
+ - OTLP exporter configuration with environment variables
+ - Resource attributes and service metadata
+ - Automatic instrumentation support
+
+#### Retained:
+- ✅ `src/main/java/com/shopper/config/DynatraceOneAgentHook.java`
+ - Uses OpenTelemetry API for feature flag evaluation tracing
+ - Integration with DevCycle hooks remains unchanged
+
+### 3. Service Classes Reverted
+
+#### `DualDatabaseStrategyImpl.java` - Database Operations Simplified
+- ✅ Removed OneAgent SDK database request tracing
+- ✅ Simplified to direct operation execution
+- ✅ Automatic instrumentation via OpenTelemetry Java Agent will handle tracing
+
+#### `UserService.java` - Authentication Operations
+- ✅ Reverted to standard Spring Security operations
+- ✅ Automatic instrumentation via OpenTelemetry Java Agent will handle tracing
### 4. Configuration Files Updated
#### `application.yml`
-- ✅ Removed OpenTelemetry OTLP configuration
-- ✅ Simplified telemetry configuration for OneAgent SDK
-- ✅ Updated comments to reflect OneAgent SDK usage
+- ✅ Added OpenTelemetry OTLP exporter configuration
+- ✅ Configured environment variable support for OTLP endpoint
+- ✅ Set up resource attributes and service metadata
+
+## Current Configuration
-#### `application.properties`
-- ✅ Removed OpenTelemetry endpoint and token configuration
-- ✅ Kept essential telemetry project metadata
-- ✅ Updated documentation comments
+The application now uses:
+- **OpenTelemetry Java Agent** for automatic instrumentation
+- **OTLP exporter** configured via environment variables
+- **run-with-otel.sh** script for easy deployment with proper OTLP configuration
+- **Preserved deployment scripts** from previous migrations
+
+## Usage
+
+Run the application with OpenTelemetry instrumentation:
+
+```bash
+./run-with-otel.sh
+```
+
+Configure telemetry endpoints via environment variables:
+
+```bash
+# For local OneAgent OTLP endpoint
+export USE_LOCAL_OTLP=true
+./run-with-otel.sh
+
+# For direct Dynatrace endpoint
+export DYNATRACE_ENV_URL="https://your-env.live.dynatrace.com"
+export DYNATRACE_API_TOKEN="your-api-token"
+./run-with-otel.sh
+```
-### 5. OpenFeature Integration Updated
+### 5. OpenFeature Integration Updated
+- ✅ Removed OneAgent SDK dependency from OpenFeatureConfig
+- ✅ Updated hook registration messaging to reflect OpenTelemetry usage
#### `OpenFeatureConfig.java`
- ✅ Replaced OpenTelemetry Tracer dependency with OneAgentSDK
diff --git a/java-backend/README_OPENTELEMETRY_REVERSION.md b/java-backend/README_OPENTELEMETRY_REVERSION.md
new file mode 100644
index 00000000..7c5f424e
--- /dev/null
+++ b/java-backend/README_OPENTELEMETRY_REVERSION.md
@@ -0,0 +1,68 @@
+# OpenTelemetry Reversion Complete ✅
+
+## Summary
+
+The Java backend has been successfully reverted from Dynatrace OneAgent SDK back to OpenTelemetry OTLP exporter using environment variables, while preserving all deployment and build scripts.
+
+## What Was Changed
+
+### 1. Dependencies (pom.xml)
+- **Removed:** `com.dynatrace.oneagent.sdk.java:oneagent-sdk:1.9.0`
+- **Added:** Full OpenTelemetry SDK dependencies including OTLP exporter
+
+### 2. Configuration Files
+- **Removed:** `OneAgentConfig.java`
+- **Added:** `OpenTelemetryConfig.java` with OTLP exporter configuration
+- **Updated:** `application.yml` with OpenTelemetry configuration
+- **Updated:** `OpenFeatureConfig.java` to remove OneAgent dependency
+
+### 3. Service Classes
+- **Reverted:** `DualDatabaseStrategyImpl.java` - removed OneAgent SDK database tracing
+- **Kept:** `UserService.java` unchanged (no OneAgent integration was present)
+
+### 4. Deployment Scripts (Preserved)
+- ✅ `run-with-otel.sh` - Fully functional with environment variable configuration
+- ✅ `deploy.sh` - Deployment script preserved
+- ✅ `run.sh` - Basic run script preserved
+- ✅ `docker-compose.yml` - Docker configuration preserved
+
+## How to Use
+
+### Quick Start
+```bash
+# Run with default configuration (no telemetry export)
+./run-with-otel.sh
+
+# Run with local OneAgent OTLP endpoint
+USE_LOCAL_OTLP=true ./run-with-otel.sh
+
+# Run with direct Dynatrace endpoint
+DYNATRACE_ENV_URL="https://your-env.live.dynatrace.com" \
+DYNATRACE_API_TOKEN="your-api-token" \
+./run-with-otel.sh
+```
+
+### Environment Variables
+
+| Variable | Description | Default |
+|----------|-------------|---------|
+| `USE_LOCAL_OTLP` | Use local OneAgent OTLP endpoint | `false` |
+| `DYNATRACE_ENV_URL` | Direct Dynatrace environment URL | - |
+| `DYNATRACE_API_TOKEN` | Dynatrace API token for direct access | - |
+| `LOCAL_OTLP_PORT` | Local OTLP port | `14499` |
+
+## Benefits of This Configuration
+
+1. **Environment Variable Driven:** Easy configuration without code changes
+2. **Flexible Deployment:** Works with local OneAgent or direct Dynatrace
+3. **Automatic Instrumentation:** Uses OpenTelemetry Java Agent for comprehensive coverage
+4. **Preserved Scripts:** All deployment and build scripts retained
+5. **Feature Flag Tracing:** DevCycle hooks continue to work with OpenTelemetry API
+
+## Verification
+
+The application will log telemetry configuration on startup:
+```
+📊 OpenTelemetry Auto-Instrumentation enabled for service: java-backend v1.0.0 (development)
+🔗 OpenTelemetry configured for OTLP endpoint: http://localhost:14499/otlp
+```
\ No newline at end of file
diff --git a/java-backend/logs/application-structured.log b/java-backend/logs/application-structured.log
new file mode 100644
index 00000000..1af917ac
--- /dev/null
+++ b/java-backend/logs/application-structured.log
@@ -0,0 +1,1421 @@
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Starting JavaBackendApplication using Java 18.0.2 with PID 27340 (/Users/suthar/dev/shopper/backend/java-backend/target/classes started by suthar in /Users/suthar/dev/shopper/backend/java-backend)","thread_name":"main","@timestamp":"2025-09-04T14:46:42.624-0400","level":"INFO","logger_name":"com.shopper.JavaBackendApplication"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Running with Spring Boot v3.2.0, Spring v6.1.1","thread_name":"main","@timestamp":"2025-09-04T14:46:42.654-0400","level":"DEBUG","logger_name":"com.shopper.JavaBackendApplication"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"The following 1 profile is active: \"development\"","thread_name":"main","@timestamp":"2025-09-04T14:46:42.656-0400","level":"INFO","logger_name":"com.shopper.JavaBackendApplication"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ OpenFeature with DevCycle provider initialized successfully","thread_name":"main","@timestamp":"2025-09-04T14:46:58.418-0400","level":"INFO","logger_name":"com.shopper.config.OpenFeatureConfig"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔍 DevCycle hooks registered for OpenTelemetry tracing and logging","thread_name":"main","@timestamp":"2025-09-04T14:46:58.421-0400","level":"INFO","logger_name":"com.shopper.config.OpenFeatureConfig"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ DevCycle feature flag 'use-neon' evaluated to: false for admin user","thread_name":"main","@timestamp":"2025-09-04T14:46:58.478-0400","level":"INFO","logger_name":"com.shopper.config.OpenFeatureConfig"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ DevCycle feature flag 'new-flow' evaluated to: false for admin user","thread_name":"main","@timestamp":"2025-09-04T14:46:58.479-0400","level":"INFO","logger_name":"com.shopper.config.OpenFeatureConfig"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Filter 'jwtAuthenticationFilter' configured for use","thread_name":"main","@timestamp":"2025-09-04T14:46:59.060-0400","level":"DEBUG","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"📊 OpenTelemetry Java Agent enabled for service: java-backend v1.0.0 (development)","thread_name":"main","@timestamp":"2025-09-04T14:46:59.206-0400","level":"INFO","logger_name":"com.shopper.config.OpenTelemetryConfig"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔗 OpenTelemetry configured for OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp","thread_name":"main","@timestamp":"2025-09-04T14:46:59.208-0400","level":"INFO","logger_name":"com.shopper.config.OpenTelemetryConfig"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔐 OTLP headers configured for authentication","thread_name":"main","@timestamp":"2025-09-04T14:46:59.208-0400","level":"INFO","logger_name":"com.shopper.config.OpenTelemetryConfig"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ Using OpenTelemetry Java Agent for auto-instrumentation","thread_name":"main","@timestamp":"2025-09-04T14:46:59.210-0400","level":"INFO","logger_name":"com.shopper.config.OpenTelemetryConfig"}
+{"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Started JavaBackendApplication in 25.174 seconds (process running for 36.264)","thread_name":"main","@timestamp":"2025-09-04T14:47:02.062-0400","level":"INFO","logger_name":"com.shopper.JavaBackendApplication"}
+{"mdc":{"spanId":"6e2bf5e5fe2eaac0","span_id":"6e2bf5e5fe2eaac0","traceId":"bb438af50c3845d07f915f250c7096b2","trace_flags":"01","trace_id":"bb438af50c3845d07f915f250c7096b2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"No Authorization header or Bearer token found","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:47:09.285-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6e2bf5e5fe2eaac0","span_id":"6e2bf5e5fe2eaac0","traceId":"bb438af50c3845d07f915f250c7096b2","trace_flags":"01","trace_id":"bb438af50c3845d07f915f250c7096b2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"No username extracted from JWT token","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:47:09.286-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6e2bf5e5fe2eaac0","span_id":"6e2bf5e5fe2eaac0","traceId":"bb438af50c3845d07f915f250c7096b2","trace_flags":"01","trace_id":"bb438af50c3845d07f915f250c7096b2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [Anonymous] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:47:09.320-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6e2bf5e5fe2eaac0","span_id":"6e2bf5e5fe2eaac0","traceId":"bb438af50c3845d07f915f250c7096b2","trace_flags":"01","trace_id":"bb438af50c3845d07f915f250c7096b2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flags initialized with default values","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:47:09.344-0400","level":"INFO","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"6e2bf5e5fe2eaac0","span_id":"6e2bf5e5fe2eaac0","traceId":"bb438af50c3845d07f915f250c7096b2","trace_flags":"01","trace_id":"bb438af50c3845d07f915f250c7096b2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:47:14.698-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"6e2bf5e5fe2eaac0","span_id":"6e2bf5e5fe2eaac0","traceId":"bb438af50c3845d07f915f250c7096b2","trace_flags":"01","trace_id":"bb438af50c3845d07f915f250c7096b2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: anonymous","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:47:14.698-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"6e2bf5e5fe2eaac0","span_id":"6e2bf5e5fe2eaac0","traceId":"bb438af50c3845d07f915f250c7096b2","trace_flags":"01","trace_id":"bb438af50c3845d07f915f250c7096b2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: anonymous","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:47:14.698-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"6e2bf5e5fe2eaac0","span_id":"6e2bf5e5fe2eaac0","traceId":"bb438af50c3845d07f915f250c7096b2","trace_flags":"01","trace_id":"bb438af50c3845d07f915f250c7096b2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:47:14.701-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6e2bf5e5fe2eaac0","span_id":"6e2bf5e5fe2eaac0","traceId":"bb438af50c3845d07f915f250c7096b2","trace_flags":"01","trace_id":"bb438af50c3845d07f915f250c7096b2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [Anonymous] - 200 (5759ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:47:15.080-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"55389038af348913","span_id":"55389038af348913","traceId":"01bbdae64e52b90eacbbd7c0b99e36a8","trace_flags":"01","trace_id":"01bbdae64e52b90eacbbd7c0b99e36a8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 POST /api/auth/login [Anonymous] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:09.443-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7bfdf71d0355721b","span_id":"7bfdf71d0355721b","traceId":"5bf08611e32690a13ad63e8c271e17f4","trace_flags":"01","trace_id":"5bf08611e32690a13ad63e8c271e17f4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 POST /api/auth/login [Anonymous] - Request started","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:09.443-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7bfdf71d0355721b","span_id":"7bfdf71d0355721b","traceId":"5bf08611e32690a13ad63e8c271e17f4","trace_flags":"01","trace_id":"5bf08611e32690a13ad63e8c271e17f4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:09.717-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"55389038af348913","span_id":"55389038af348913","traceId":"01bbdae64e52b90eacbbd7c0b99e36a8","trace_flags":"01","trace_id":"01bbdae64e52b90eacbbd7c0b99e36a8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:09.717-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"7bfdf71d0355721b","span_id":"7bfdf71d0355721b","traceId":"5bf08611e32690a13ad63e8c271e17f4","trace_flags":"01","trace_id":"5bf08611e32690a13ad63e8c271e17f4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:09.919-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"55389038af348913","span_id":"55389038af348913","traceId":"01bbdae64e52b90eacbbd7c0b99e36a8","trace_flags":"01","trace_id":"01bbdae64e52b90eacbbd7c0b99e36a8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:09.919-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"7bfdf71d0355721b","span_id":"7bfdf71d0355721b","traceId":"5bf08611e32690a13ad63e8c271e17f4","trace_flags":"01","trace_id":"5bf08611e32690a13ad63e8c271e17f4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:09.930-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"55389038af348913","span_id":"55389038af348913","traceId":"01bbdae64e52b90eacbbd7c0b99e36a8","trace_flags":"01","trace_id":"01bbdae64e52b90eacbbd7c0b99e36a8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:09.930-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"55389038af348913","span_id":"55389038af348913","traceId":"01bbdae64e52b90eacbbd7c0b99e36a8","trace_flags":"01","trace_id":"01bbdae64e52b90eacbbd7c0b99e36a8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ POST /api/auth/login [Anonymous] - 200 (734ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:10.178-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7bfdf71d0355721b","span_id":"7bfdf71d0355721b","traceId":"5bf08611e32690a13ad63e8c271e17f4","trace_flags":"01","trace_id":"5bf08611e32690a13ad63e8c271e17f4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ POST /api/auth/login [Anonymous] - 200 (735ms)","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:10.178-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:10.290-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:10.293-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:10.294-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:10.362-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:10.366-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:10.366-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:10.383-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:12.527-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:12.529-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:12.529-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:12.541-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:12.544-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:12.544-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:12.557-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:13.181-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:13.187-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:13.188-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:13.195-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:13.197-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:13.198-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:13.209-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:15.305-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:15.308-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:15.309-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:15.317-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:15.318-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:15.319-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:15.329-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:15.394-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:15.394-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:15.394-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (5017ms) [Error in findAll]","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:15.400-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:15.460-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"042f72d5352caa0f","span_id":"042f72d5352caa0f","traceId":"fcc4eebfbed703811f9841dac9b6fcbf","trace_flags":"01","trace_id":"fcc4eebfbed703811f9841dac9b6fcbf"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (26ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:15.486-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.956-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.956-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.956-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.959-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.960-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.961-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.974-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.976-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.976-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.977-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:15.977-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"3165776698b4fabd","span_id":"3165776698b4fabd","traceId":"298453a13c8cf3a154559987f1656d6a","trace_flags":"01","trace_id":"298453a13c8cf3a154559987f1656d6a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (51ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:16.025-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.518-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.519-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.519-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.525-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.528-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.528-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.540-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.543-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.543-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.544-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.544-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:17.570-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:17.571-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:17.571-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:17.571-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"89db6e10cc0601b6","span_id":"89db6e10cc0601b6","traceId":"bfa832cea72527edcee7abbfd3f61586","trace_flags":"01","trace_id":"bfa832cea72527edcee7abbfd3f61586"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (37ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:17.577-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"cf892becfe52c738","span_id":"cf892becfe52c738","traceId":"b16dcbb005c9b20bc60c9ddc77ae9b2e","trace_flags":"01","trace_id":"b16dcbb005c9b20bc60c9ddc77ae9b2e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5043ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:17.600-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:18.213-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:18.214-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:18.214-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:18.214-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"5e3d85fe97444b55","span_id":"5e3d85fe97444b55","traceId":"b49b917f4d01446946a569cc0f8ce005","trace_flags":"01","trace_id":"b49b917f4d01446946a569cc0f8ce005"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5029ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:18.238-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:20.335-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:20.335-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:20.335-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:20.336-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"badf69efc9bafcf2","span_id":"badf69efc9bafcf2","traceId":"5271a9ab509fa8d9f711390b62ada144","trace_flags":"01","trace_id":"5271a9ab509fa8d9f711390b62ada144"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5033ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:20.362-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.850-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.850-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.850-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.855-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.857-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.857-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.871-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.873-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.874-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.875-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.875-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a5dc023799cde9a3","span_id":"a5dc023799cde9a3","traceId":"a0029247823aa58066be7f6bdc3b69a0","trace_flags":"01","trace_id":"a0029247823aa58066be7f6bdc3b69a0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (33ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:21.904-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:25.670-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:25.671-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:25.671-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:25.675-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:25.677-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:25.677-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:25.685-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:27.482-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:27.485-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:27.486-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:27.496-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:27.497-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:27.498-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:27.502-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:28.738-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:28.739-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:28.739-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:28.746-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:28.747-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:28.748-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:28.758-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:30.696-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:30.697-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:30.698-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:30.699-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"400e36ffa7e9bdf7","span_id":"400e36ffa7e9bdf7","traceId":"7f0488e33cf2921d8c707f515be5c976","trace_flags":"01","trace_id":"7f0488e33cf2921d8c707f515be5c976"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5044ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:30.729-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.110-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.111-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.112-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.120-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.121-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.122-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.126-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.128-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.128-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.128-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.128-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a8f88f539b89d494","span_id":"a8f88f539b89d494","traceId":"3633846c9927630a9e43812da8823b77","trace_flags":"01","trace_id":"3633846c9927630a9e43812da8823b77"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (26ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:31.152-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.671-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.672-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.673-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.678-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.679-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.679-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.687-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.688-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.689-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.689-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.689-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6a2ddce08af694b7","span_id":"6a2ddce08af694b7","traceId":"2f393288898c56252a5780e6b2d9b3ac","trace_flags":"01","trace_id":"2f393288898c56252a5780e6b2d9b3ac"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (29ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:31.716-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.401-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.401-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.401-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.406-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.407-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.407-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.413-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.416-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.417-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.418-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (5ms) [Error in findAll]","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.419-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.446-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"248ab1aa8f1cd4fc","span_id":"248ab1aa8f1cd4fc","traceId":"82ee1d67efc4eead2abd23c66e0dc38b","trace_flags":"01","trace_id":"82ee1d67efc4eead2abd23c66e0dc38b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (3ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:32.449-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:32.507-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:32.507-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:32.507-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:32.508-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"5d8882aa1489dd65","span_id":"5d8882aa1489dd65","traceId":"44013affa0b58df23e04a7a033ee5ea8","trace_flags":"01","trace_id":"44013affa0b58df23e04a7a033ee5ea8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5031ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:32.533-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:33.767-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:33.767-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:33.767-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (5009ms) [Error in findAll]","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:33.767-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:33.777-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"20252bf4ab54f04b","span_id":"20252bf4ab54f04b","traceId":"a7c778e8583930ccd0c0814045a60c61","trace_flags":"01","trace_id":"a7c778e8583930ccd0c0814045a60c61"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (2ms)","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:33.779-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.875-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.876-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.876-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.884-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.887-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.887-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.899-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.901-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.901-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.902-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.903-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"c00fdd090d7b98c4","span_id":"c00fdd090d7b98c4","traceId":"5f8b0d0db24dd64a85e3d9667885d3ad","trace_flags":"01","trace_id":"5f8b0d0db24dd64a85e3d9667885d3ad"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (23ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:48:36.922-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.585-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.585-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.585-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.590-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.591-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.592-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.595-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.598-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.599-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.599-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.599-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"63068c417d508f2e","span_id":"63068c417d508f2e","traceId":"6c47d934104198b980b4a36e3d195113","trace_flags":"01","trace_id":"6c47d934104198b980b4a36e3d195113"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (24ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:48:38.619-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:39.601-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:39.602-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:39.602-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:39.618-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:39.620-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:39.620-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:39.625-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:40.662-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:40.662-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:40.663-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:40.667-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:40.668-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:40.668-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:40.671-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:41.332-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:41.333-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:41.333-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:41.337-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:41.338-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:41.338-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:41.340-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:43.531-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:43.532-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:43.532-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:43.537-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:43.540-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:43.540-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:43.542-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:44.631-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:44.633-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:44.634-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:44.634-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"279b78faf2a735a1","span_id":"279b78faf2a735a1","traceId":"446ddfe8d633e2976a0a915301ce7ed9","trace_flags":"01","trace_id":"446ddfe8d633e2976a0a915301ce7ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5033ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:48:44.658-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:45.676-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:45.676-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:45.677-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:45.677-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"212cb5a600484653","span_id":"212cb5a600484653","traceId":"900f4d6ede0f4a3118d86949aeffe8d9","trace_flags":"01","trace_id":"900f4d6ede0f4a3118d86949aeffe8d9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5025ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:48:45.696-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:46.346-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:46.349-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:46.352-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:46.352-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"579ca018ce158abc","span_id":"579ca018ce158abc","traceId":"6d3aebfc4421080fb66a8a6a831be0c1","trace_flags":"01","trace_id":"6d3aebfc4421080fb66a8a6a831be0c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5032ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:48:46.372-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.672-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.674-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.675-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.680-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.682-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.682-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.691-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.693-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.693-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.693-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.693-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"fb275fa871dd4418","span_id":"fb275fa871dd4418","traceId":"d5ed131eb5aade4e6d48d4dc63531510","trace_flags":"01","trace_id":"d5ed131eb5aade4e6d48d4dc63531510"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (26ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:48:47.717-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:48.551-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:48.552-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:48.552-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:48.552-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"f8acc982afa30a18","span_id":"f8acc982afa30a18","traceId":"c6434b9d9bb11709a076eb111b45e887","trace_flags":"01","trace_id":"c6434b9d9bb11709a076eb111b45e887"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5040ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:48:48.582-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.826-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.826-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.826-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.834-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.836-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.837-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.849-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.852-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.852-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.852-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.852-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4199fea0dd0c45e7","span_id":"4199fea0dd0c45e7","traceId":"431f2eb2588a4a67c9d392163efc34b8","trace_flags":"01","trace_id":"431f2eb2588a4a67c9d392163efc34b8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (21ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:48:48.870-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.808-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.809-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.809-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.813-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.818-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.818-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.820-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.823-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.823-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.823-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.823-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6229a3b05bc5ae67","span_id":"6229a3b05bc5ae67","traceId":"343372cba75355b26603a7a9dd1d4b2d","trace_flags":"01","trace_id":"343372cba75355b26603a7a9dd1d4b2d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (29ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:48:52.849-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:55.343-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:55.343-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:55.344-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:55.352-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:55.353-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:55.353-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:48:55.356-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:00.255-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:00.255-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:00.255-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:00.260-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:00.262-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:00.262-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:00.270-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:00.363-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:00.364-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:00.364-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:00.364-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"340c0d3f071094ee","span_id":"340c0d3f071094ee","traceId":"4306ef382f21f7cb29fb8209a8061622","trace_flags":"01","trace_id":"4306ef382f21f7cb29fb8209a8061622"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5035ms)","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:00.391-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.380-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.380-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.381-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.391-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.392-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.393-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.397-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.401-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.401-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.401-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.401-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"14732988cf946e93","span_id":"14732988cf946e93","traceId":"6739418582ae3624dae6fc548b9907cc","trace_flags":"01","trace_id":"6739418582ae3624dae6fc548b9907cc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (28ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:49:04.425-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:05.277-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:05.278-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:05.278-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:05.278-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4dc811d3075186dd","span_id":"4dc811d3075186dd","traceId":"7abe50dd73e0cbe7824a7f412fd30d65","trace_flags":"01","trace_id":"7abe50dd73e0cbe7824a7f412fd30d65"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5037ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:05.307-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.508-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.509-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.509-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.515-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.516-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.516-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.521-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.524-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.525-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.525-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.525-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ac5b95505108fe2d","span_id":"ac5b95505108fe2d","traceId":"1a71701bd721901b1e1b9db82d9a6773","trace_flags":"01","trace_id":"1a71701bd721901b1e1b9db82d9a6773"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (30ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:06.551-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.026-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.027-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.027-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.031-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.032-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.032-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.035-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.037-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.037-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.037-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.037-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a24c0d915a4ac7fa","span_id":"a24c0d915a4ac7fa","traceId":"d38c9b25138b64b2bdc084f1d461806c","trace_flags":"01","trace_id":"d38c9b25138b64b2bdc084f1d461806c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (23ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:10.058-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:14.173-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:14.174-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:14.174-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:14.178-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:14.182-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:14.182-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:14.185-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:17.169-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:17.169-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:17.170-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:17.173-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:17.175-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:17.175-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:17.178-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:17.936-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:17.937-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:17.937-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:17.942-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:17.943-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:17.943-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:17.946-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:19.196-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:19.196-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:19.196-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:19.197-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4e021cecd5181a6e","span_id":"4e021cecd5181a6e","traceId":"a777a2fc550c9f70426c35ec8f37eefb","trace_flags":"01","trace_id":"a777a2fc550c9f70426c35ec8f37eefb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5045ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:19.230-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.306-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.308-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.308-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.311-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.312-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.312-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.316-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.318-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.318-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.318-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.318-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"d6a751947e9eeb3f","span_id":"d6a751947e9eeb3f","traceId":"b1622d4ce0e84cf988cf351cbcecd37e","trace_flags":"01","trace_id":"b1622d4ce0e84cf988cf351cbcecd37e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (24ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:20.340-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:22.182-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:22.183-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:22.184-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:22.184-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"864a5fce682ccb66","span_id":"864a5fce682ccb66","traceId":"9e5482ab1db48bae356dce2f157a782f","trace_flags":"01","trace_id":"9e5482ab1db48bae356dce2f157a782f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5030ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:22.208-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:22.952-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:22.953-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:22.953-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:22.953-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"be546820cddd0e9e","span_id":"be546820cddd0e9e","traceId":"ccb59e5f0b3e36171b8cdce2ee6e0930","trace_flags":"01","trace_id":"ccb59e5f0b3e36171b8cdce2ee6e0930"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5033ms)","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:22.979-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.732-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.732-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.732-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.736-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.738-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.738-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.741-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.744-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.745-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.745-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.745-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9795c8af4d4a7396","span_id":"9795c8af4d4a7396","traceId":"26532bc74789fefba1972f4598056565","trace_flags":"01","trace_id":"26532bc74789fefba1972f4598056565"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (31ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:23.771-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:28.083-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:28.084-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:28.084-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:28.087-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:28.088-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:28.088-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:28.090-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:30.928-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:30.929-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:30.929-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:30.939-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:30.940-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:30.941-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:30.944-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:31.507-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:31.508-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:31.509-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:31.520-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:31.522-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:31.522-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:31.528-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:32.324-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:32.324-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:32.324-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:32.327-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:32.328-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:32.328-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:32.344-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:33.109-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:33.110-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:33.110-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (5025ms) [Error in findAll]","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:33.115-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:33.183-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5aebfac71d75d67a","span_id":"5aebfac71d75d67a","traceId":"d0324f602b9420d22a82b0393502f1f0","trace_flags":"01","trace_id":"d0324f602b9420d22a82b0393502f1f0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (5ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:33.188-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.352-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.352-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.353-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.356-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.359-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.359-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.363-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.364-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.365-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.365-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.365-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"7a84f37bd25b82e4","span_id":"7a84f37bd25b82e4","traceId":"a2afd58727065f1849102c6b98edc34b","trace_flags":"01","trace_id":"a2afd58727065f1849102c6b98edc34b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (26ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:34.389-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:35.947-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:35.949-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:35.949-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:35.949-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"72c521d744cd322f","span_id":"72c521d744cd322f","traceId":"e5b26782bf309ffb3f280ce43d89e164","trace_flags":"01","trace_id":"e5b26782bf309ffb3f280ce43d89e164"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5027ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:35.971-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:36.533-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:36.533-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:36.534-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:36.534-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"2dab2c812f2afaae","span_id":"2dab2c812f2afaae","traceId":"6f79cbe45279c1656cf4ea627d02b567","trace_flags":"01","trace_id":"6f79cbe45279c1656cf4ea627d02b567"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5033ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:36.561-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.570-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.570-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.570-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.573-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.575-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.575-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.577-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.581-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.581-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.581-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.581-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9850a46d52c06bd1","span_id":"9850a46d52c06bd1","traceId":"51df2e6f2b92c87cecd0502b6abe26bd","trace_flags":"01","trace_id":"51df2e6f2b92c87cecd0502b6abe26bd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (27ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:49:36.605-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:37.353-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:37.353-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:37.353-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:37.353-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"7e5ef54e14f790b8","span_id":"7e5ef54e14f790b8","traceId":"a364fe0e794b1bb6a8f73b6a2bceee31","trace_flags":"01","trace_id":"a364fe0e794b1bb6a8f73b6a2bceee31"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5044ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:37.388-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.822-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.822-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.822-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.825-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.826-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.826-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.828-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.830-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.830-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.830-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.830-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0de706dc1440d875","span_id":"0de706dc1440d875","traceId":"42a1cd6c1c5fc3976332f294dbd9d031","trace_flags":"01","trace_id":"42a1cd6c1c5fc3976332f294dbd9d031"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (30ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:49:37.858-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.583-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.583-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.584-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.589-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.590-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.590-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.591-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.593-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.593-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.593-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.593-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"993e06bd2924ca00","span_id":"993e06bd2924ca00","traceId":"fa17d46cf13e8dfa156fe32f8b4ef67a","trace_flags":"01","trace_id":"fa17d46cf13e8dfa156fe32f8b4ef67a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (24ms)","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:49:41.615-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:44.865-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:44.866-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:44.866-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:44.871-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:44.872-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:44.873-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:44.876-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:48.838-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:48.838-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:48.838-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:48.841-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:48.845-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:48.845-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:48.847-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:49.889-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:49.890-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:49.890-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:49.891-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"d0eb8660b27f432d","span_id":"d0eb8660b27f432d","traceId":"963d532cc0d55934613d3d3892cdbc6d","trace_flags":"01","trace_id":"963d532cc0d55934613d3d3892cdbc6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5061ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:49:49.937-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.028-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.028-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.028-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.033-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.041-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.041-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.043-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.044-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.045-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.045-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.045-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"f036ea72b936aaed","span_id":"f036ea72b936aaed","traceId":"52f1d8bbf1542b1777d7fcd7f47871be","trace_flags":"01","trace_id":"52f1d8bbf1542b1777d7fcd7f47871be"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (21ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:49:51.064-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:53.853-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:53.854-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:53.855-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:53.855-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4fa6abcbe49a20ac","span_id":"4fa6abcbe49a20ac","traceId":"3cdf1c6b94445347273f49207e1fb56d","trace_flags":"01","trace_id":"3cdf1c6b94445347273f49207e1fb56d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5032ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:49:53.879-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.461-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.462-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.462-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.465-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.465-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.466-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.467-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.469-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.469-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.469-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.469-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"8b5c28a0aa553fa3","span_id":"8b5c28a0aa553fa3","traceId":"71f91b3f0f8ff8bf9000d08015c75188","trace_flags":"01","trace_id":"71f91b3f0f8ff8bf9000d08015c75188"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (31ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:49:54.498-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.959-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.960-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.960-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.967-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.968-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.968-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.973-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.976-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.977-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.977-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:56.977-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"2acee00e1e2a70f9","span_id":"2acee00e1e2a70f9","traceId":"90db6fedb200c851100fc04b01d30954","trace_flags":"01","trace_id":"90db6fedb200c851100fc04b01d30954"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (36ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:49:57.008-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.321-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.322-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.322-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.325-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.326-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.326-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.333-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.334-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.334-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.335-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.335-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"18ed509f253e64e0","span_id":"18ed509f253e64e0","traceId":"f995f4aab6a3f5b01bfbfd093a06f208","trace_flags":"01","trace_id":"f995f4aab6a3f5b01bfbfd093a06f208"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (25ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:49:58.358-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:01.751-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:01.751-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:01.752-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:01.757-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:01.758-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:01.758-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:01.761-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:05.340-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:05.340-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:05.340-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:05.345-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:05.346-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:05.346-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:05.349-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:06.779-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:06.779-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:06.779-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:06.779-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"99a6c0ba98dee4b0","span_id":"99a6c0ba98dee4b0","traceId":"81480164aae8d0866695f118c42c346e","trace_flags":"01","trace_id":"81480164aae8d0866695f118c42c346e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5059ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:06.820-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.112-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.113-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.113-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.119-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.119-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.120-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.121-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.123-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.123-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.123-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.123-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"125d38a3f3a836ae","span_id":"125d38a3f3a836ae","traceId":"5c185857a3ff3d981fb385d275d0135b","trace_flags":"01","trace_id":"5c185857a3ff3d981fb385d275d0135b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (21ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:10.142-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:10.356-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:10.356-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:10.357-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (5010ms) [Error in findAll]","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:10.358-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:10.371-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"71b1ac05865a88c2","span_id":"71b1ac05865a88c2","traceId":"a0e4538baa42544fe62295016f73771c","trace_flags":"01","trace_id":"a0e4538baa42544fe62295016f73771c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (2ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:10.373-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.242-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.242-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.242-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.251-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.252-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.252-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.253-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.256-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.256-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.257-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.257-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6538646beadcb53a","span_id":"6538646beadcb53a","traceId":"422fe5099c3ea043d115d2692edc95e7","trace_flags":"01","trace_id":"422fe5099c3ea043d115d2692edc95e7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (32ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:13.285-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:17.699-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:17.699-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:17.699-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:17.708-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:17.709-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:17.709-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:17.712-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:22.178-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:22.178-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:22.178-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:22.181-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:22.182-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:22.182-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:22.184-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:22.720-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:22.720-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:22.720-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:22.720-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"11baa2c081238e75","span_id":"11baa2c081238e75","traceId":"e4e6bf49ec9fd6d3e726559f84cd169c","trace_flags":"01","trace_id":"e4e6bf49ec9fd6d3e726559f84cd169c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5041ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:22.753-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.934-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.934-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.934-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.938-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.938-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.938-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.940-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.942-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.942-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.942-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.942-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"042f9f48108ab487","span_id":"042f9f48108ab487","traceId":"de68b59d1985322349c0f0697e1ab270","trace_flags":"01","trace_id":"de68b59d1985322349c0f0697e1ab270"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (54ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:23.995-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:27.191-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:27.191-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:27.191-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:27.191-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"5c0a93f1a52749b3","span_id":"5c0a93f1a52749b3","traceId":"ba82f02c4507ee14cf9a04fd1595e1b6","trace_flags":"01","trace_id":"ba82f02c4507ee14cf9a04fd1595e1b6"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5035ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:27.220-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.495-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.495-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.495-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.498-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.499-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.499-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.503-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.504-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.504-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.504-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.504-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"94c763ae3d92d966","span_id":"94c763ae3d92d966","traceId":"09298be44d35c21099d006a01698605e","trace_flags":"01","trace_id":"09298be44d35c21099d006a01698605e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (27ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:50:27.530-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.167-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.169-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.169-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.195-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.197-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.197-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.202-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.214-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.217-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.218-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.218-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9df0a22e26f479a1","span_id":"9df0a22e26f479a1","traceId":"4a71d578db46acf18b9658d49249a920","trace_flags":"01","trace_id":"4a71d578db46acf18b9658d49249a920"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (56ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:31.258-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:32.413-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:32.413-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:32.414-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:32.417-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:32.418-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:32.419-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:32.421-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:33.032-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:33.032-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:33.032-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:33.036-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:33.037-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:33.037-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:33.061-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:33.895-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:33.895-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:33.895-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:33.899-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:33.900-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:33.900-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:33.904-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:37.427-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:37.427-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:37.428-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:37.428-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"e05f544e0d02afe7","span_id":"e05f544e0d02afe7","traceId":"27a8c449e4fd5260e603fe9d34a9eb47","trace_flags":"01","trace_id":"27a8c449e4fd5260e603fe9d34a9eb47"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5033ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:50:37.455-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:38.068-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:38.068-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:38.068-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:38.069-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"e457acf9093dda08","span_id":"e457acf9093dda08","traceId":"a7867fa0d6f0d65e0d6c6bc570cc282e","trace_flags":"01","trace_id":"a7867fa0d6f0d65e0d6c6bc570cc282e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5035ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:38.096-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.394-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.394-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.394-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.397-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.398-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.398-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.399-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.400-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.401-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.401-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.401-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a147f364d0f17b84","span_id":"a147f364d0f17b84","traceId":"1e33e9c6998146886d2767ed83f71e74","trace_flags":"01","trace_id":"1e33e9c6998146886d2767ed83f71e74"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (22ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:38.421-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:38.908-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:38.909-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:38.909-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:38.909-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9ad7671693d45712","span_id":"9ad7671693d45712","traceId":"14d3b79ecd27bf1bdccb617982a5e0a4","trace_flags":"01","trace_id":"14d3b79ecd27bf1bdccb617982a5e0a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5029ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:50:38.933-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.409-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.409-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.409-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.413-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.414-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.414-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.417-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.420-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.420-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.421-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (4ms) [Error in findAll]","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.421-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.435-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e9dfffac4a93528f","span_id":"e9dfffac4a93528f","traceId":"24034dc68a2f04e35fc189816d5b88f7","trace_flags":"01","trace_id":"24034dc68a2f04e35fc189816d5b88f7"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (2ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:41.437-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:45.477-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:45.477-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:45.477-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:45.482-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:45.482-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:45.482-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:45.484-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:48.038-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:48.039-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:48.039-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:48.045-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:48.046-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:48.046-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:48.048-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:50.491-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:50.492-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:50.492-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:50.492-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"11a4bc9d159505c5","span_id":"11a4bc9d159505c5","traceId":"c288eb8fe214a39065cf8f27af96f8e0","trace_flags":"01","trace_id":"c288eb8fe214a39065cf8f27af96f8e0"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5044ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:50.528-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.577-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.578-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.578-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.580-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.581-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.581-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.582-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.584-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.584-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.584-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.584-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"f1dae90561ca5d3d","span_id":"f1dae90561ca5d3d","traceId":"f9b92507c8780fcc5852a81256a009e8","trace_flags":"01","trace_id":"f9b92507c8780fcc5852a81256a009e8"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (31ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:50:52.613-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:53.058-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:53.059-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:53.059-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:53.060-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"491404a5a5235ea7","span_id":"491404a5a5235ea7","traceId":"6e982bb5cc8ca9231c1abbeb806d4e49","trace_flags":"01","trace_id":"6e982bb5cc8ca9231c1abbeb806d4e49"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5043ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:50:53.091-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.273-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.273-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.274-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.314-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.315-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.315-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.317-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.321-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.321-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.321-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.322-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"d47c715952de95ea","span_id":"d47c715952de95ea","traceId":"40231a11b0509e417f36f759243ee6a9","trace_flags":"01","trace_id":"40231a11b0509e417f36f759243ee6a9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (28ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:50:54.345-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.603-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.604-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.604-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.608-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.609-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.609-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.611-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.612-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.612-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.612-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (1ms) [Error in findAll]","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.612-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.618-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9c39596111c0421f","span_id":"9c39596111c0421f","traceId":"1a8109cf1e425f4bb2ac25fabd02c431","trace_flags":"01","trace_id":"1a8109cf1e425f4bb2ac25fabd02c431"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (1ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:50:55.619-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:58.765-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:58.765-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:58.765-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:58.768-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:58.768-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:58.768-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:50:58.769-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:59.795-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:59.795-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:59.795-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:59.798-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:59.798-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:59.799-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:50:59.802-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:00.882-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:00.882-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:00.882-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:00.885-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:00.886-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:00.886-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:00.893-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:01.821-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:01.822-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:01.822-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:01.827-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:01.828-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:01.828-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:01.832-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:03.776-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:03.777-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:03.777-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:03.777-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0eaaf68fef66f946","span_id":"0eaaf68fef66f946","traceId":"7a28d120ead4a3d3acac40fa80f108ea","trace_flags":"01","trace_id":"7a28d120ead4a3d3acac40fa80f108ea"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5040ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:03.809-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:04.807-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:04.807-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:04.807-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:04.808-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ef5d38861bca2a83","span_id":"ef5d38861bca2a83","traceId":"519deb9357b1e66a7ddc7805a8536b5a","trace_flags":"01","trace_id":"519deb9357b1e66a7ddc7805a8536b5a"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5026ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:04.828-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:05.898-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:05.899-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:05.899-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:05.899-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6f058834df230a06","span_id":"6f058834df230a06","traceId":"5b19036a74eff26db80b04ee3d81cafc","trace_flags":"01","trace_id":"5b19036a74eff26db80b04ee3d81cafc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5035ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:05.928-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.689-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.689-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.689-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.692-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.693-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.693-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.708-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.709-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.710-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.710-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.710-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ba7ba1411623e565","span_id":"ba7ba1411623e565","traceId":"9060205de18ca8633a3eced267e5586b","trace_flags":"01","trace_id":"9060205de18ca8633a3eced267e5586b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (24ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:06.731-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:06.836-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:06.836-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:06.836-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:06.836-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"e92aa6cc2d024acc","span_id":"e92aa6cc2d024acc","traceId":"c5b3dd32749b99885e9e24f37c480e85","trace_flags":"01","trace_id":"c5b3dd32749b99885e9e24f37c480e85"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5032ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:06.864-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.002-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.003-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.003-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.006-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.007-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.007-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.010-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.011-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.011-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.011-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (3ms) [Error in findAll]","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.012-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.020-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"97038c0cfd8633f6","span_id":"97038c0cfd8633f6","traceId":"27d3946fdb17f079e49656e4a7919d1f","trace_flags":"01","trace_id":"27d3946fdb17f079e49656e4a7919d1f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (1ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:08.021-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.889-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.889-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.889-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.892-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.892-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.892-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.894-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.896-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.896-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.896-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (2ms) [Error in findAll]","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.896-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.901-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"52f51e29aef0ecad","span_id":"52f51e29aef0ecad","traceId":"0ac7383f5a2591a6b5bb15a5648bc48d","trace_flags":"01","trace_id":"0ac7383f5a2591a6b5bb15a5648bc48d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (1ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:09.902-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.258-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.258-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.258-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.261-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.262-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.262-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.264-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.266-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.266-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.266-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (2ms) [Error in findAll]","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.266-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.273-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9cef8ed8a7daca33","span_id":"9cef8ed8a7daca33","traceId":"ac6d5ea3d7f8f814363be8758ea6ed79","trace_flags":"01","trace_id":"ac6d5ea3d7f8f814363be8758ea6ed79"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (5ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:11.278-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:15.531-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:15.531-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:15.531-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:15.535-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:15.536-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:15.536-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:15.537-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:20.404-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:20.404-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:20.405-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:20.407-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:20.407-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:20.407-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:20.408-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:20.544-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:20.544-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:20.544-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (5007ms) [Error in findAll]","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:20.544-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:20.551-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"53ac28aba6f693f4","span_id":"53ac28aba6f693f4","traceId":"29d7dc069e6c5a770f79ef14085b8350","trace_flags":"01","trace_id":"29d7dc069e6c5a770f79ef14085b8350"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (1ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:20.552-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.957-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.957-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.957-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.961-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.962-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.962-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.964-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.967-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.967-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.967-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:21.967-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"f0009c612debe533","span_id":"f0009c612debe533","traceId":"52dad5410fa1babbea4dde97f1fd576e","trace_flags":"01","trace_id":"52dad5410fa1babbea4dde97f1fd576e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (64ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:22.028-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.092-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.092-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.093-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.108-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.110-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.110-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.116-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.120-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.120-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.120-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.120-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"11f6297c684d9759","span_id":"11f6297c684d9759","traceId":"8ecf96b083fbc085ad61d4a6ff863782","trace_flags":"01","trace_id":"8ecf96b083fbc085ad61d4a6ff863782"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (29ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:24.144-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:25.417-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:25.418-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:25.418-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:25.418-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6029e2c36e19893f","span_id":"6029e2c36e19893f","traceId":"cadbf37ec520e0a3fe2c9e0417f8642e","trace_flags":"01","trace_id":"cadbf37ec520e0a3fe2c9e0417f8642e"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5044ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:25.452-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.603-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.603-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.603-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.606-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.607-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.607-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.608-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.609-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.609-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.610-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.610-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0dc0a62e43e6fc3a","span_id":"0dc0a62e43e6fc3a","traceId":"3b8c3bc6408067eb22461188c9b30440","trace_flags":"01","trace_id":"3b8c3bc6408067eb22461188c9b30440"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (22ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:25.630-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.507-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.507-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.507-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.510-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.511-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.511-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.512-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.513-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.513-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.513-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.513-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"147f3664b9ac24bd","span_id":"147f3664b9ac24bd","traceId":"c81a001640d6c1849a6f98b2ec7ed3a1","trace_flags":"01","trace_id":"c81a001640d6c1849a6f98b2ec7ed3a1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (24ms)","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:51:27.536-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:31.910-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:31.911-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:31.911-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:31.914-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:31.914-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:31.915-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:31.917-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:34.490-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:34.490-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:34.490-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:34.496-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:34.497-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:34.497-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:34.499-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:36.937-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:36.938-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:36.938-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:36.938-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"a60deef6d6c48190","span_id":"a60deef6d6c48190","traceId":"c8e1fa1bce2741a2d317ef9abf20b464","trace_flags":"01","trace_id":"c8e1fa1bce2741a2d317ef9abf20b464"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5056ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:36.973-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.971-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.972-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.972-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.977-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.978-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.978-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.986-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.987-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.987-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.987-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:38.987-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6f6331f3424b9dcc","span_id":"6f6331f3424b9dcc","traceId":"21bfeb689ba28eed6aae312fe8955f6d","trace_flags":"01","trace_id":"21bfeb689ba28eed6aae312fe8955f6d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (31ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:51:39.016-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:39.513-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:39.513-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:39.514-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (5016ms) [Error in findAll]","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:39.515-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:39.531-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"590d99294b53feec","span_id":"590d99294b53feec","traceId":"f37058e79c907714f84dc3129ae69944","trace_flags":"01","trace_id":"f37058e79c907714f84dc3129ae69944"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (3ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:51:39.534-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.568-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.569-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.569-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.571-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.571-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.571-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.573-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.575-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.575-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.575-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.575-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"6e9ca84854a01040","span_id":"6e9ca84854a01040","traceId":"ef6af3442dab8d7942506655347aa13f","trace_flags":"01","trace_id":"ef6af3442dab8d7942506655347aa13f"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (26ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:42.599-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.257-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.258-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.258-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.260-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.260-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.260-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.261-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.262-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.262-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.262-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.262-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9e16904f7cd73cd6","span_id":"9e16904f7cd73cd6","traceId":"551aa19d9cbf23e68d0f4d2db4b3353d","trace_flags":"01","trace_id":"551aa19d9cbf23e68d0f4d2db4b3353d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (23ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:51:43.284-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.270-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.271-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.271-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.273-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.277-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.277-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.279-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.281-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.281-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.281-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.281-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0c44a12ff35cb300","span_id":"0c44a12ff35cb300","traceId":"cc1319ef62f822e7074be0cebda66d0d","trace_flags":"01","trace_id":"cc1319ef62f822e7074be0cebda66d0d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (25ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:44.304-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:45.432-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:45.432-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:45.433-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:45.439-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:45.444-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:45.444-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:45.446-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:47.558-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:47.559-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:47.559-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:47.561-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:47.562-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:47.562-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:47.563-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:50.457-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:50.457-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:50.457-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:50.458-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"2903dfa8a6cde6ac","span_id":"2903dfa8a6cde6ac","traceId":"4fbc44526ee5a73ed4d98eb2b1a312e1","trace_flags":"01","trace_id":"4fbc44526ee5a73ed4d98eb2b1a312e1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5047ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:51:50.493-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.461-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.461-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.461-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.466-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.466-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.466-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.468-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.469-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.469-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.469-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (2ms) [Error in findAll]","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.470-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.476-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"26df560a0fe79ccf","span_id":"26df560a0fe79ccf","traceId":"4f21633bef634d6d5cd5ba120386a879","trace_flags":"01","trace_id":"4f21633bef634d6d5cd5ba120386a879"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (2ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:51:51.478-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.427-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.427-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.427-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.430-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.430-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.430-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.432-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.433-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.433-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.433-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.433-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"046e2d1546310dfe","span_id":"046e2d1546310dfe","traceId":"ac7382d0bdb8f5f96558a0161382a853","trace_flags":"01","trace_id":"ac7382d0bdb8f5f96558a0161382a853"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (25ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:51:52.457-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:52.566-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:52.566-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:52.566-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (5004ms) [Error in findAll]","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:52.567-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:52.579-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"b27eb6a14b1f9f78","span_id":"b27eb6a14b1f9f78","traceId":"c4b533629bdd967683a907c6425b61c1","trace_flags":"01","trace_id":"c4b533629bdd967683a907c6425b61c1"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (1ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:51:52.580-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.868-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.869-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.869-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.871-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.876-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.876-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.882-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.884-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.884-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.884-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (2ms) [Error in findAll]","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.884-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.898-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"77e4a87457ca5fb5","span_id":"77e4a87457ca5fb5","traceId":"86f712a0ad5bb2b63231d6dc2e4a4e5c","trace_flags":"01","trace_id":"86f712a0ad5bb2b63231d6dc2e4a4e5c"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (1ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:51:53.899-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.155-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.155-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.155-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.157-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.157-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.157-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.158-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.159-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.159-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.159-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: admin] - 200 (1ms) [Error in findAll]","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.159-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.163-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"d352185023268bc1","span_id":"d352185023268bc1","traceId":"ca4695db652876553071b3c42991edd3","trace_flags":"01","trace_id":"ca4695db652876553071b3c42991edd3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (0ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:51:57.163-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:00.946-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:00.946-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:00.947-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:00.950-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:00.951-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:00.951-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:00.953-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:04.746-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:04.746-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:04.746-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:04.750-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:04.751-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:04.751-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:04.753-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:05.958-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:05.958-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:05.958-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:05.958-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"c527a7f3f54d7dcf","span_id":"c527a7f3f54d7dcf","traceId":"68d2f06c666042c3d96c85a249132ffb","trace_flags":"01","trace_id":"68d2f06c666042c3d96c85a249132ffb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5031ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:05.985-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.557-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.558-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.558-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.560-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.561-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.561-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.562-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.563-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.563-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.563-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.564-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ed65779bc6d77409","span_id":"ed65779bc6d77409","traceId":"9fff7be232a2092277efbc246cad8b56","trace_flags":"01","trace_id":"9fff7be232a2092277efbc246cad8b56"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (22ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:07.585-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:09.765-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:09.765-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:09.765-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (5012ms) [Error in findAll]","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:09.765-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:09.772-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"5799f02769e0032f","span_id":"5799f02769e0032f","traceId":"222229cf4207123bf6ddf4d660099a5b","trace_flags":"01","trace_id":"222229cf4207123bf6ddf4d660099a5b"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (2ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:09.774-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.935-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.936-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.936-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.940-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.941-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.941-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.942-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.944-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.944-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.944-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.944-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"9bf6dcc63708fb61","span_id":"9bf6dcc63708fb61","traceId":"4013e379a30b03301122d8e250b32ecb","trace_flags":"01","trace_id":"4013e379a30b03301122d8e250b32ecb"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (28ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:09.970-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.661-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.662-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.662-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.665-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.665-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.665-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.666-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.669-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.669-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.669-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.669-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"b0d4a8e6044c799e","span_id":"b0d4a8e6044c799e","traceId":"1a1ffa5abc5f50bfe6701a0f6ffefb11","trace_flags":"01","trace_id":"1a1ffa5abc5f50bfe6701a0f6ffefb11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (24ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:10.690-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.129-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.130-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.130-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.132-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.132-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.132-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.133-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.135-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.135-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.135-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (2ms) [Error in findAll]","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.135-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.141-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"3d32c95e5187a0a5","span_id":"3d32c95e5187a0a5","traceId":"b63eb33207d64292811dde49dbb1bec3","trace_flags":"01","trace_id":"b63eb33207d64292811dde49dbb1bec3"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (0ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:13.141-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:16.227-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:16.227-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:16.227-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:16.229-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:16.230-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:16.230-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:16.235-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:18.015-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:18.015-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:18.015-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:18.021-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:18.022-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:18.022-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:18.023-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:20.248-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:20.248-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:20.248-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:20.251-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:20.251-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:20.251-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:20.253-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:21.243-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:21.243-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:21.243-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (5009ms) [Error in findAll]","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:21.244-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:21.251-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"28617440d3b33e50","span_id":"28617440d3b33e50","traceId":"2572745972fde890ae350c3edcde88bc","trace_flags":"01","trace_id":"2572745972fde890ae350c3edcde88bc"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (1ms)","thread_name":"http-nio-3002-exec-10","@timestamp":"2025-09-04T14:52:21.252-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:23.027-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:23.027-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:23.027-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:23.027-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"269765d13e94b35e","span_id":"269765d13e94b35e","traceId":"cc613db004223a520f340ce98d06a648","trace_flags":"01","trace_id":"cc613db004223a520f340ce98d06a648"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5033ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:23.056-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.046-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.047-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.048-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.063-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.064-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.064-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.071-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.075-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.075-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.075-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.075-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"ac0f2a7ee8683414","span_id":"ac0f2a7ee8683414","traceId":"ee59837de6c0a23d4d79bb69ed6088a4","trace_flags":"01","trace_id":"ee59837de6c0a23d4d79bb69ed6088a4"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (30ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:24.101-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:25.257-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:25.258-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:25.258-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:25.258-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"af90546499da5e62","span_id":"af90546499da5e62","traceId":"05b793bc20b224def856d1ea5ed64317","trace_flags":"01","trace_id":"05b793bc20b224def856d1ea5ed64317"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5027ms)","thread_name":"http-nio-3002-exec-1","@timestamp":"2025-09-04T14:52:25.280-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.372-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.372-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.372-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.374-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.374-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.374-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.375-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.380-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.380-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.380-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (5ms) [Error in findAll]","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.380-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.386-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7eed8bc1439ab9c2","span_id":"7eed8bc1439ab9c2","traceId":"15c5693b8ca2b8f560d5d446d91b6ed9","trace_flags":"01","trace_id":"15c5693b8ca2b8f560d5d446d91b6ed9"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (2ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:25.388-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.964-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.964-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.964-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.966-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.966-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.966-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.967-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.969-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.969-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.969-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.969-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4d9b62cc2d9a45a6","span_id":"4d9b62cc2d9a45a6","traceId":"d30b7074d20ad73fe449b6a1330049f5","trace_flags":"01","trace_id":"d30b7074d20ad73fe449b6a1330049f5"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (30ms)","thread_name":"http-nio-3002-exec-4","@timestamp":"2025-09-04T14:52:26.997-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:30.942-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:30.942-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:30.942-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:30.945-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:30.945-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:30.945-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:30.947-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:32.294-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:32.294-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:32.294-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:32.298-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:32.299-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:32.299-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:32.302-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:33.464-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:33.464-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:33.464-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:33.466-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:33.466-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:33.466-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:33.468-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:35.952-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:35.952-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:35.952-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:35.952-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"e62fbb895e1e0019","span_id":"e62fbb895e1e0019","traceId":"6bbf73fe405bc7730b932a4b513f5a29","trace_flags":"01","trace_id":"6bbf73fe405bc7730b932a4b513f5a29"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5031ms)","thread_name":"http-nio-3002-exec-3","@timestamp":"2025-09-04T14:52:35.979-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.472-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.472-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.472-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.475-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.476-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.476-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.482-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.485-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.485-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.485-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.485-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"c9b4848b0fc9f1fc","span_id":"c9b4848b0fc9f1fc","traceId":"e95e6832bd22682db9daa4580f4e146d","trace_flags":"01","trace_id":"e95e6832bd22682db9daa4580f4e146d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (34ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:36.515-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:37.311-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:37.312-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:37.312-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:37.312-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"39dea5c4345845e2","span_id":"39dea5c4345845e2","traceId":"ef393bffef1e90a3ddd1fc7b53f2ac5d","trace_flags":"01","trace_id":"ef393bffef1e90a3ddd1fc7b53f2ac5d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5044ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:37.346-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:38.472-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:38.472-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:38.472-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:38.472-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"2e1b019ba925129a","span_id":"2e1b019ba925129a","traceId":"1fd1c1c080ea2c926aae44cbf3d8409d","trace_flags":"01","trace_id":"1fd1c1c080ea2c926aae44cbf3d8409d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (5029ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:38.497-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.230-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.230-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.230-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.236-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.236-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.236-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.237-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.239-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.239-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.239-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.239-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"78b13c4b54dae4fb","span_id":"78b13c4b54dae4fb","traceId":"e9c3ab1e5a3ae107719c234d022e5800","trace_flags":"01","trace_id":"e9c3ab1e5a3ae107719c234d022e5800"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (22ms)","thread_name":"http-nio-3002-exec-5","@timestamp":"2025-09-04T14:52:40.259-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.425-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.426-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.426-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.431-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.432-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.432-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.434-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.440-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.441-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.441-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.441-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"514de529c992637e","span_id":"514de529c992637e","traceId":"64b44cf457990e310f97d084f350818d","trace_flags":"01","trace_id":"64b44cf457990e310f97d084f350818d"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (36ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:42.470-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:46.226-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:46.226-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:46.227-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:46.230-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:46.230-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:46.230-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:46.233-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:47.617-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:47.617-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:47.617-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:47.620-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:47.621-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:47.621-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:47.622-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:51.238-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:51.239-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:51.239-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:51.239-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.248-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.249-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.249-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.251-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.252-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.252-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.253-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.255-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.255-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.255-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.255-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0c342b3a8880f2c8","span_id":"0c342b3a8880f2c8","traceId":"2a9bf75552aa30aa10fbb92aad8d9db2","trace_flags":"01","trace_id":"2a9bf75552aa30aa10fbb92aad8d9db2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5039ms)","thread_name":"http-nio-3002-exec-7","@timestamp":"2025-09-04T14:52:51.272-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0ad3d701aabcd508","span_id":"0ad3d701aabcd508","traceId":"314a1a1ce500f60e0d53b81038dfe8f2","trace_flags":"01","trace_id":"314a1a1ce500f60e0d53b81038dfe8f2"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: user] - 200 (32ms)","thread_name":"http-nio-3002-exec-2","@timestamp":"2025-09-04T14:52:51.285-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:52.631-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:52.631-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:52.631-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:52.632-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"4ef94547125dcebf","span_id":"4ef94547125dcebf","traceId":"6f533c405b8a56cf3249069f7363a947","trace_flags":"01","trace_id":"6f533c405b8a56cf3249069f7363a947"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (5048ms)","thread_name":"http-nio-3002-exec-9","@timestamp":"2025-09-04T14:52:52.670-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.864-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.864-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.864-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.869-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.870-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.870-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: user] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.872-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.874-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.874-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: user","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.874-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"❌ GET /api/products [User: user] - 200 (2ms) [Error in findAll]","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.874-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/error [Anonymous] - Request started","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.882-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"7fa709cd9d5c7419","span_id":"7fa709cd9d5c7419","traceId":"6d0f1f609a759164a90ce1aae74c9afd","trace_flags":"01","trace_id":"6d0f1f609a759164a90ce1aae74c9afd"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/error [Anonymous] - 500 (2ms)","thread_name":"http-nio-3002-exec-8","@timestamp":"2025-09-04T14:52:52.884-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token extracted, username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.416-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Loading user details for username: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.416-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.416-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"User details loaded successfully for: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.420-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"JWT token validation successful for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.420-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Authentication set in SecurityContext for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.420-0400","level":"INFO","logger_name":"com.shopper.security.JwtAuthenticationFilter"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🔄 GET /api/products [User: admin] - Request started","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.421-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Feature flag evaluation completed for key: new-flow","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.423-0400","level":"INFO","logger_name":"com.shopper.config.DevCycleLoggingHook"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"🎛️ Feature flag 'new-flow' evaluated to: true for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.423-0400","level":"DEBUG","logger_name":"com.shopper.service.FeatureFlagService"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ New flow enabled for user: admin","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.423-0400","level":"INFO","logger_name":"com.shopper.service.ProductService"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"Secondary database not enabled, using primary for read operation","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.423-0400","level":"DEBUG","logger_name":"com.shopper.service.DualDatabaseStrategyImpl"}
+{"mdc":{"spanId":"0eef6be5c661ed97","span_id":"0eef6be5c661ed97","traceId":"c2936e2b5f94b1b069eeceb05e07ba11","trace_flags":"01","trace_id":"c2936e2b5f94b1b069eeceb05e07ba11"},"@version":1,"source_host":"Parths-MacBook-Pro.local","message":"✅ GET /api/products [User: admin] - 200 (23ms)","thread_name":"http-nio-3002-exec-6","@timestamp":"2025-09-04T14:52:57.444-0400","level":"INFO","logger_name":"com.shopper.interceptor.LoggingInterceptor"}
diff --git a/java-backend/logs/application.log b/java-backend/logs/application.log
new file mode 100644
index 00000000..139e8af7
--- /dev/null
+++ b/java-backend/logs/application.log
@@ -0,0 +1,4379 @@
+2025-09-04 14:41:49.584 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-3002"]
+2025-09-04 14:41:49.592 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-09-04 14:41:49.592 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16]
+2025-09-04 14:41:49.697 [main] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api] - Initializing Spring embedded WebApplicationContext
+2025-09-04 14:41:51.021 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-09-04 14:41:51.746 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@4ddb2c51
+2025-09-04 14:41:51.757 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-09-04 14:42:01.776 [main] DEBUG org.springframework.web.filter.ServerHttpObservationFilter - Filter 'webMvcObservationFilter' configured for use
+2025-09-04 14:42:02.927 [main] WARN org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
+2025-09-04 14:42:03.392 [main] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - 49 mappings in 'requestMappingHandlerMapping'
+2025-09-04 14:42:03.654 [main] DEBUG org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Patterns [/webjars/**, /**, /swagger-ui*/*swagger-initializer.js, /swagger-ui*/**] in 'resourceHandlerMapping'
+2025-09-04 14:42:03.940 [main] INFO org.springframework.security.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@7fced31f, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@61606235, org.springframework.security.web.context.SecurityContextHolderFilter@736e0bf8, org.springframework.security.web.header.HeaderWriterFilter@7145c88, org.springframework.web.filter.CorsFilter@707c4466, org.springframework.security.web.authentication.logout.LogoutFilter@4eba05c0, com.shopper.security.JwtAuthenticationFilter@27ed234f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@3fa57a5a, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@49ee30ca, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@38288d0, org.springframework.security.web.session.SessionManagementFilter@ff28a30, org.springframework.security.web.access.ExceptionTranslationFilter@6ec5e204, org.springframework.security.web.access.intercept.AuthorizationFilter@1ee17264]
+2025-09-04 14:42:04.139 [main] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter - ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
+2025-09-04 14:42:04.189 [main] DEBUG org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice
+2025-09-04 14:42:04.684 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-3002"]
+2025-09-04 14:42:31.648 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2025-09-04 14:42:31.654 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
+2025-09-04 14:46:46.923 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-3002"]
+2025-09-04 14:46:46.930 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-09-04 14:46:46.930 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16]
+2025-09-04 14:46:47.015 [main] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api] - Initializing Spring embedded WebApplicationContext
+2025-09-04 14:46:48.349 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-09-04 14:46:49.027 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@66f99dcc
+2025-09-04 14:46:49.036 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-09-04 14:46:59.066 [main] DEBUG org.springframework.web.filter.ServerHttpObservationFilter - Filter 'webMvcObservationFilter' configured for use
+2025-09-04 14:47:00.137 [main] WARN org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
+2025-09-04 14:47:00.636 [main] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - 49 mappings in 'requestMappingHandlerMapping'
+2025-09-04 14:47:00.940 [main] DEBUG org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Patterns [/webjars/**, /**, /swagger-ui*/*swagger-initializer.js, /swagger-ui*/**] in 'resourceHandlerMapping'
+2025-09-04 14:47:01.265 [main] INFO org.springframework.security.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@3f00cd13, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@3265c228, org.springframework.security.web.context.SecurityContextHolderFilter@2310500a, org.springframework.security.web.header.HeaderWriterFilter@2838450e, org.springframework.web.filter.CorsFilter@82feb0b, org.springframework.security.web.authentication.logout.LogoutFilter@34ec0ebf, com.shopper.security.JwtAuthenticationFilter@51a6748f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@38f563e4, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@18f7b7fd, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@14c84fd6, org.springframework.security.web.session.SessionManagementFilter@12a3b047, org.springframework.security.web.access.ExceptionTranslationFilter@64209d58, org.springframework.security.web.access.intercept.AuthorizationFilter@26dfd907]
+2025-09-04 14:47:01.451 [main] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter - ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
+2025-09-04 14:47:01.502 [main] DEBUG org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice
+2025-09-04 14:47:01.996 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-3002"]
+2025-09-04 14:47:09.135 [http-nio-3002-exec-1] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-09-04 14:47:09.136 [http-nio-3002-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-09-04 14:47:09.136 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Detected StandardServletMultipartResolver
+2025-09-04 14:47:09.136 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Detected AcceptHeaderLocaleResolver
+2025-09-04 14:47:09.136 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Detected FixedThemeResolver
+2025-09-04 14:47:09.137 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Detected org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator@15ff0f79
+2025-09-04 14:47:09.138 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Detected org.springframework.web.servlet.support.SessionFlashMapManager@5c8c42f9
+2025-09-04 14:47:09.138 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data
+2025-09-04 14:47:09.138 [http-nio-3002-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 2 ms
+2025-09-04 14:47:09.243 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:47:09.295 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:47:09.298 [http-nio-3002-exec-1] WARN org.springframework.web.servlet.handler.HandlerMappingIntrospector - Cache miss for REQUEST dispatch to '/api/products' (previous null). Performing MatchableHandlerMapping lookup. This is logged once only at WARN level, and every time at TRACE.
+2025-09-04 14:47:09.314 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:47:09.318 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:47:09.320 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:47:14.780 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:47:14.999 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:47:15.021 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:47:15.082 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:09.407 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing POST /auth/login
+2025-09-04 14:48:09.407 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Securing POST /auth/login
+2025-09-04 14:48:09.427 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:48:09.427 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:48:09.441 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured POST /auth/login
+2025-09-04 14:48:09.441 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Secured POST /auth/login
+2025-09-04 14:48:09.442 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - POST "/api/auth/login", parameters={}
+2025-09-04 14:48:09.442 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - POST "/api/auth/login", parameters={}
+2025-09-04 14:48:09.442 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.AuthController#login(LoginDto)
+2025-09-04 14:48:09.442 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.AuthController#login(LoginDto)
+2025-09-04 14:48:09.480 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor - Read "application/json;charset=UTF-8" to [LoginDto(username=user, password=password)]
+2025-09-04 14:48:09.480 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor - Read "application/json;charset=UTF-8" to [LoginDto(username=admin, password=password)]
+2025-09-04 14:48:09.764 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:09.764 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:09.918 [http-nio-3002-exec-2] DEBUG org.springframework.security.authentication.dao.DaoAuthenticationProvider - Authenticated user
+2025-09-04 14:48:09.918 [http-nio-3002-exec-3] DEBUG org.springframework.security.authentication.dao.DaoAuthenticationProvider - Authenticated user
+2025-09-04 14:48:09.924 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:09.924 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:09.935 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:09.935 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:10.154 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:10.154 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:10.164 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [AuthResponseDto(token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiaWF0IjoxNzU3MDExNjkwLCJleHAiOjE3NTcwO (truncated)...]
+2025-09-04 14:48:10.164 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [AuthResponseDto(token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTc1NzAxMTY5MCwiZXhwIjoxNzU3M (truncated)...]
+2025-09-04 14:48:10.181 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:10.181 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:10.197 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:10.350 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:10.380 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:10.381 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:10.382 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:12.519 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:12.535 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:12.553 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:12.553 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:12.556 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:13.176 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:13.193 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:13.204 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:13.204 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:13.209 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:15.294 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:15.313 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:15.327 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:15.328 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:15.329 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:15.401 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:48:15.415 [http-nio-3002-exec-2] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:48:15.438 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:48:15.453 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:48:15.454 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:48:15.459 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:48:15.460 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:48:15.476 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:15.477 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:48:15 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:48:15.495 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:48:15.953 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:15.958 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:15.966 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:15.971 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:15.974 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:15.984 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:16.015 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:16.018 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:16.026 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:17.511 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:17.523 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:17.536 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:17.537 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:17.540 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:17.545 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:17.566 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:17.571 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:17.572 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:17.578 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:17.590 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:17.593 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:17.601 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:18.215 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:18.231 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:18.233 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:18.238 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:20.338 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:20.356 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:20.358 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:20.363 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:21.848 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:21.853 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:21.866 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:21.867 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:21.870 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:21.877 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:21.894 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:21.898 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:21.904 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:25.667 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:25.674 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:25.680 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:25.683 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:25.684 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:27.474 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:27.494 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:27.501 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:27.501 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:27.502 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:28.731 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:28.744 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:28.755 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:28.755 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:28.758 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:30.700 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:30.717 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:30.719 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:30.729 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:31.107 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:31.116 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:31.124 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:31.124 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:31.126 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:31.129 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:31.145 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:31.147 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:31.153 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:31.663 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:31.676 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:31.685 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:31.686 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:31.687 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:31.690 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:31.708 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:31.710 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:31.716 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:32.398 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:32.405 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:32.413 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:32.413 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:32.413 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:32.419 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:48:32.423 [http-nio-3002-exec-8] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:48:32.435 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:48:32.442 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:48:32.442 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:48:32.445 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:48:32.446 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:48:32.447 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:32.447 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:48:32 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:48:32.449 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:48:32.510 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:32.526 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:32.528 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:32.533 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:33.768 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:48:33.770 [http-nio-3002-exec-3] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:48:33.772 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:48:33.776 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:48:33.776 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:48:33.777 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:48:33.777 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:48:33.778 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:33.778 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:48:33 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:48:33.783 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:48:36.873 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:36.881 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:36.895 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:36.895 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:36.899 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:36.904 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:36.918 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:36.919 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:36.922 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:38.572 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:38.589 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:38.595 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:38.595 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:38.595 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:38.601 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:38.615 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:38.616 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:38.620 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:39.593 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:39.606 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:39.624 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:39.624 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:39.625 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:40.661 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:40.666 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:40.670 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:40.670 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:40.671 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:41.330 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:41.336 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:41.340 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:41.340 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:41.340 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:43.529 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:43.535 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:43.542 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:43.542 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:43.542 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:44.635 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:44.651 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:44.652 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:44.658 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:45.678 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:45.691 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:45.692 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:45.697 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:46.354 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:46.367 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:46.368 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:46.373 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:47.667 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:47.679 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:47.684 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:47.690 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:47.691 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:47.695 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:47.711 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:47.713 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:47.718 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:48.554 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:48.575 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:48.577 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:48.582 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:48.814 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:48.833 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:48.846 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:48.848 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:48.849 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:48.853 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:48.866 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:48.867 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:48.871 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:52.797 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:52.812 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:52.820 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:52.820 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:52.820 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:48:52.824 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:48:52.843 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:48:52.845 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:48:52.849 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:48:55.340 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:48:55.351 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:48:55.355 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:48:55.355 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:48:55.356 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:00.251 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:00.259 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:00.268 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:00.269 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:00.270 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:00.366 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:00.384 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:00.386 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:00.392 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:04.374 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:04.388 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:04.396 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:04.396 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:04.397 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:04.403 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:04.420 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:04.421 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:04.425 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:05.282 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:05.300 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:05.301 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:05.307 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:06.507 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:06.514 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:06.518 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:06.520 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:06.521 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:06.529 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:06.546 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:06.547 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:06.551 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:10.018 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:10.029 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:10.035 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:10.035 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:10.035 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:10.040 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:10.054 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:10.055 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:10.058 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:14.171 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:14.176 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:14.184 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:14.185 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:14.185 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:17.163 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:17.172 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:17.177 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:17.177 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:17.178 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:17.929 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:17.940 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:17.945 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:17.946 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:17.946 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:19.199 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:19.223 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:19.225 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:19.236 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:20.305 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:20.310 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:20.315 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:20.315 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:20.316 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:20.319 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:20.333 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:20.335 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:20.341 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:22.185 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:22.201 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:22.203 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:22.208 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:22.955 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:22.973 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:22.975 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:22.980 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:23.730 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:23.735 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:23.740 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:23.740 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:23.740 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:23.746 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:23.764 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:23.766 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:23.771 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:28.080 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:28.086 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:28.089 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:28.089 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:28.089 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:30.921 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:30.936 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:30.943 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:30.943 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:30.943 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:31.497 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:31.512 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:31.527 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:31.528 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:31.528 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:32.317 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:32.326 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:32.329 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:32.330 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:32.340 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:33.115 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:49:33.156 [http-nio-3002-exec-8] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:49:33.163 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:49:33.181 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:49:33.182 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:49:33.183 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:49:33.183 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:49:33.185 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:33.185 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:49:33 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:49:33.188 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:49:34.350 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:34.354 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:34.362 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:34.363 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:34.363 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:34.367 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:34.382 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:34.384 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:34.389 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:35.950 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:35.965 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:35.967 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:35.972 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:36.535 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:36.553 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:36.556 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:36.561 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:36.565 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:36.572 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:36.577 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:36.577 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:36.577 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:36.582 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:36.599 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:36.601 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:36.605 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:37.355 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:37.381 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:37.384 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:37.389 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:37.820 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:37.824 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:37.827 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:37.828 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:37.828 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:37.831 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:37.853 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:37.855 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:37.858 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:41.580 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:41.587 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:41.591 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:41.591 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:41.591 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:41.594 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:41.609 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:41.610 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:41.616 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:44.862 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:44.869 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:44.875 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:44.875 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:44.875 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:48.836 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:48.840 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:48.846 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:48.847 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:48.847 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:49.907 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:49.931 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:49.933 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:49.937 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:51.026 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:51.032 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:51.043 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:51.043 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:51.043 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:51.046 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:51.059 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:51.061 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:51.064 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:53.856 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:53.873 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:53.875 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:53.879 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:54.459 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:54.463 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:54.467 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:54.467 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:54.467 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:54.470 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:54.491 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:54.493 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:54.498 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:56.955 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:56.965 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:56.971 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:56.971 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:56.972 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:56.979 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:57.001 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:57.004 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:57.008 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:49:58.317 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:49:58.323 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:49:58.332 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:49:58.332 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:49:58.333 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:49:58.335 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:49:58.352 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:49:58.354 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:49:58.358 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:01.749 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:01.755 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:01.761 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:01.761 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:01.761 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:05.336 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:05.343 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:05.348 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:05.348 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:05.348 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:06.783 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:06.804 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:06.813 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:06.820 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:10.111 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:10.116 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:10.121 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:10.121 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:10.121 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:10.124 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:10.137 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:10.139 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:10.142 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:10.358 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:50:10.363 [http-nio-3002-exec-2] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:50:10.369 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:50:10.370 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:50:10.371 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:50:10.371 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:50:10.371 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:50:10.372 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:10.372 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:50:10 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:50:10.373 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:50:13.239 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:13.247 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:13.253 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:13.253 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:13.253 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:13.259 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:13.277 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:13.279 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:13.285 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:17.693 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:17.705 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:17.711 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:17.712 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:17.712 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:22.176 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:22.179 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:22.183 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:22.183 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:22.184 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:22.727 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:22.746 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:22.748 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:22.753 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:23.931 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:23.936 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:23.939 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:23.939 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:23.940 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:23.943 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:23.957 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:23.985 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:23.995 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:27.194 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:27.214 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:27.216 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:27.220 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:27.488 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:27.497 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:27.502 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:27.502 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:27.503 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:27.507 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:27.524 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:27.526 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:27.530 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:31.149 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:31.193 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:31.201 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:31.201 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:31.201 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:31.221 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:31.247 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:31.252 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:31.258 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:32.411 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:32.416 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:32.420 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:32.421 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:32.421 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:33.027 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:33.034 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:33.060 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:33.060 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:33.060 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:33.890 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:33.897 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:33.904 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:33.904 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:33.904 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:37.429 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:37.448 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:37.451 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:37.455 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:38.071 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:38.090 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:38.092 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:38.097 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:38.393 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:38.396 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:38.399 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:38.399 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:38.399 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:38.402 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:38.416 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:38.418 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:38.422 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:38.910 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:38.927 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:38.929 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:38.933 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:41.405 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:41.412 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:41.417 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:41.417 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:41.417 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:41.421 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:50:41.425 [http-nio-3002-exec-10] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:50:41.428 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:50:41.434 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:50:41.434 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:50:41.435 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:50:41.435 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:50:41.436 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:41.436 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:50:41 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:50:41.437 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:50:45.474 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:45.480 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:45.484 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:45.484 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:45.484 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:48.036 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:48.042 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:48.047 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:48.047 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:48.048 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:50.494 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:50.518 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:50.522 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:50.528 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:52.574 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:52.579 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:52.582 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:52.582 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:52.582 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:52.585 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:52.605 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:52.607 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:52.613 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:53.061 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:53.084 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:53.086 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:53.091 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:54.262 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:54.295 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:54.317 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:54.317 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:54.317 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:54.324 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:50:54.339 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:54.342 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:50:54.345 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:50:55.598 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:55.606 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:55.610 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:55.610 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:55.610 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:55.612 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:50:55.613 [http-nio-3002-exec-10] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:50:55.615 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:50:55.617 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:50:55.618 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:50:55.618 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:50:55.618 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:50:55.619 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:50:55.619 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:50:55 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:50:55.619 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:50:58.763 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:58.767 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:58.769 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:58.769 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:58.769 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:50:59.794 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:50:59.797 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:50:59.801 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:50:59.801 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:50:59.802 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:00.880 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:00.884 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:00.892 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:00.893 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:00.893 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:01.816 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:01.825 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:01.831 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:01.831 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:01.831 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:03.779 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:03.803 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:03.805 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:03.809 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:04.809 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:04.823 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:04.825 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:04.828 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:05.901 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:05.920 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:05.923 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:05.928 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:06.688 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:06.691 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:06.707 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:06.707 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:06.707 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:06.710 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:06.726 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:06.727 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:06.732 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:06.842 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:06.858 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:06.860 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:06.864 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:08.001 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:08.005 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:08.009 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:08.009 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:08.009 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:08.012 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:51:08.014 [http-nio-3002-exec-4] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:51:08.017 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:51:08.019 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:51:08.019 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:51:08.019 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:51:08.020 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:51:08.020 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:08.020 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:51:08 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:51:08.022 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:51:09.888 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:09.891 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:09.893 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:09.893 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:09.894 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:09.897 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:51:09.898 [http-nio-3002-exec-10] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:51:09.900 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:51:09.901 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:51:09.901 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:51:09.901 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:51:09.901 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:51:09.902 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:09.902 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:51:09 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:51:09.902 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:51:11.257 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:11.260 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:11.263 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:11.263 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:11.263 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:11.267 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:51:11.268 [http-nio-3002-exec-7] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:51:11.269 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:51:11.271 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:51:11.272 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:51:11.272 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:51:11.273 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:51:11.274 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:11.275 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:51:11 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:51:11.279 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:51:15.528 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:15.534 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:15.537 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:15.537 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:15.537 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:20.402 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:20.406 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:20.408 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:20.408 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:20.408 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:20.544 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:51:20.546 [http-nio-3002-exec-5] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:51:20.547 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:51:20.548 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:51:20.549 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:51:20.551 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:51:20.551 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:51:20.551 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:20.552 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:51:20 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:51:20.552 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:51:21.955 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:21.960 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:21.963 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:21.964 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:21.964 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:21.968 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:21.988 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:22.019 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:22.029 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:24.077 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:24.100 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:24.114 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:24.114 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:24.115 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:24.121 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:24.138 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:24.140 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:24.144 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:25.420 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:25.444 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:25.447 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:25.452 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:25.601 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:25.605 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:25.608 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:25.608 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:25.608 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:25.610 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:25.625 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:25.627 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:25.631 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:27.506 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:27.509 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:27.512 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:27.512 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:27.512 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:27.514 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:27.530 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:27.532 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:27.536 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:31.909 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:31.913 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:31.916 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:31.916 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:31.916 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:34.488 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:34.495 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:34.498 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:34.498 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:34.499 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:36.941 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:36.965 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:36.968 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:36.973 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:38.969 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:38.975 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:38.985 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:38.985 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:38.985 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:38.991 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:39.010 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:39.012 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:39.016 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:39.515 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:51:39.520 [http-nio-3002-exec-2] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:51:39.525 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:51:39.528 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:51:39.529 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:51:39.529 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:51:39.531 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:51:39.533 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:39.533 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:51:39 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:51:39.534 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:51:42.567 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:42.570 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:42.572 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:42.573 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:42.573 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:42.576 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:42.590 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:42.593 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:42.599 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:43.256 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:43.259 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:43.261 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:43.261 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:43.261 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:43.264 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:43.278 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:43.280 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:43.285 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:44.269 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:44.272 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:44.278 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:44.279 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:44.279 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:44.282 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:44.299 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:44.301 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:44.304 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:45.429 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:45.434 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:45.446 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:45.446 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:45.446 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:47.557 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:47.560 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:47.563 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:47.563 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:47.563 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:50.459 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:50.485 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:50.487 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:50.493 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:51.460 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:51.464 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:51.467 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:51.468 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:51.468 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:51.470 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:51:51.471 [http-nio-3002-exec-8] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:51:51.473 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:51:51.476 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:51:51.476 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:51:51.476 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:51:51.476 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:51:51.477 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:51.477 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:51:51 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:51:51.479 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:51:52.426 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:52.429 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:52.431 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:52.431 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:52.432 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:52.434 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:51:52.451 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:52.453 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:51:52.457 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:51:52.567 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:51:52.568 [http-nio-3002-exec-1] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:51:52.569 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:51:52.579 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:51:52.579 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:51:52.579 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:51:52.579 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:51:52.580 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:52.580 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:51:52 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:51:52.580 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:51:53.866 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:53.870 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:53.879 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:53.882 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:53.882 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:53.884 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:51:53.888 [http-nio-3002-exec-7] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:51:53.895 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:51:53.897 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:51:53.897 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:51:53.897 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:51:53.898 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:51:53.899 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:53.899 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:51:53 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:51:53.899 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:51:57.154 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:51:57.156 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:51:57.158 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:51:57.158 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:51:57.158 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:51:57.160 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:51:57.161 [http-nio-3002-exec-5] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:51:57.162 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:51:57.162 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:51:57.162 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:51:57.163 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:51:57.163 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:51:57.163 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:51:57.163 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:51:57 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:51:57.164 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:52:00.936 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:00.949 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:00.952 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:00.953 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:00.953 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:04.744 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:04.749 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:04.752 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:04.753 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:04.753 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:05.961 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:05.978 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:05.980 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:05.985 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:07.554 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:07.560 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:07.562 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:07.562 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:07.562 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:07.564 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:07.579 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:07.581 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:07.585 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:09.766 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:52:09.767 [http-nio-3002-exec-8] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:52:09.769 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:52:09.771 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:52:09.771 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:52:09.772 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:52:09.772 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:52:09.773 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:09.773 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:52:09 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:52:09.774 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:52:09.934 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:09.938 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:09.942 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:09.942 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:09.942 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:09.945 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:09.965 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:09.967 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:09.971 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:10.661 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:10.663 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:10.666 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:10.666 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:10.666 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:10.670 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:10.684 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:10.685 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:10.690 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:13.128 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:13.131 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:13.133 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:13.133 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:13.133 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:13.135 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:52:13.138 [http-nio-3002-exec-4] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:52:13.140 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:52:13.140 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:52:13.141 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:52:13.141 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:52:13.141 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:52:13.141 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:13.141 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:52:13 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:52:13.142 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:52:16.226 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:16.229 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:16.235 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:16.235 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:16.235 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:18.014 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:18.020 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:18.023 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:18.023 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:18.023 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:20.247 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:20.250 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:20.253 [http-nio-3002-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:20.253 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:20.253 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:21.244 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:52:21.248 [http-nio-3002-exec-10] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:52:21.249 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:52:21.250 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:52:21.250 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:52:21.250 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:52:21.250 [http-nio-3002-exec-10] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:52:21.251 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:21.251 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:52:21 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:52:21.252 [http-nio-3002-exec-10] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:52:23.031 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:23.046 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:23.049 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:23.057 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:24.029 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:24.054 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:24.070 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:24.070 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:24.070 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:24.077 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:24.093 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:24.095 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:24.101 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:25.259 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:25.274 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:25.276 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:25.281 [http-nio-3002-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:25.371 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:25.373 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:25.375 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:25.375 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:25.375 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:25.380 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:52:25.383 [http-nio-3002-exec-8] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:52:25.385 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:52:25.386 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:52:25.386 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:52:25.386 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:52:25.386 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:52:25.387 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:25.387 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:52:25 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:52:25.388 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:52:26.963 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:26.965 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:26.967 [http-nio-3002-exec-4] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:26.967 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:26.967 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:26.972 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:26.991 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:26.993 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:26.997 [http-nio-3002-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:30.941 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:30.944 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:30.946 [http-nio-3002-exec-3] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:30.947 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:30.947 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:32.290 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:32.296 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:32.301 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:32.301 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:32.301 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:33.461 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:33.465 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:33.468 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:33.468 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:33.468 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:35.954 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:35.972 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:35.974 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:35.979 [http-nio-3002-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:36.470 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:36.475 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:36.479 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:36.479 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:36.479 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:36.486 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:36.507 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:36.510 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:36.515 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:37.314 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:37.338 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:37.340 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:37.347 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:38.476 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:38.491 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:38.493 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:38.497 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:40.229 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:40.235 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:40.237 [http-nio-3002-exec-5] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:40.237 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:40.237 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:40.240 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:40.254 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:40.256 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:40.259 [http-nio-3002-exec-5] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:42.423 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:42.429 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:42.433 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:42.434 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:42.434 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:42.443 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:42.464 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:42.466 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:42.470 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:46.224 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:46.229 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:46.233 [http-nio-3002-exec-7] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:46.233 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:46.233 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:47.616 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:47.619 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:47.622 [http-nio-3002-exec-9] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:47.622 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:47.622 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:51.241 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:51.247 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:51.250 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:51.253 [http-nio-3002-exec-2] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:51.253 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:51.253 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:51.256 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:51.264 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:51.267 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:51.272 [http-nio-3002-exec-7] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:51.279 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:51.281 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:51.285 [http-nio-3002-exec-2] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:52.639 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:52.663 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:52.666 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:52.670 [http-nio-3002-exec-9] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:52:52.862 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:52.868 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:52.871 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:52.871 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:52.872 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:52.874 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:52:52.877 [http-nio-3002-exec-8] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/api].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll() ~[classes/:?]
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts() ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.1.jar:6.1.1]
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.16.jar:6.0]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83) ~[classes/:?]
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713) ~[spring-aop-6.1.1.jar:6.1.1]
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal() ~[classes/:?]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.2.0.jar:6.2.0]
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78) ~[opentelemetry-javaagent.jar:?]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.1.jar:6.1.1]
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-10.1.16.jar:10.1.16]
+ at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
+2025-09-04 14:52:52.880 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:52:52.882 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:52:52.882 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:52:52.882 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:52:52.882 [http-nio-3002-exec-8] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:52:52.883 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:52.883 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:52:52 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:52:52.885 [http-nio-3002-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:52:57.413 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:52:57.419 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:52:57.421 [http-nio-3002-exec-6] DEBUG org.springframework.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:52:57.421 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:52:57.421 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:52:57.424 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:52:57.439 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:52:57.441 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:52:57.445 [http-nio-3002-exec-6] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 200 OK
diff --git a/java-backend/pom.xml b/java-backend/pom.xml
index f7416af7..b9dc0afd 100644
--- a/java-backend/pom.xml
+++ b/java-backend/pom.xml
@@ -24,15 +24,34 @@
17
17
UTF-8
- 1.9.0
- 1.31.0
+
+
org.springframework.boot
spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-log4j2
+
+
+
+
+ org.apache.logging.log4j
+ log4j-layout-template-json
org.springframework.boot
@@ -92,12 +111,26 @@
spring-security-crypto
-
+
+
+ io.micrometer
+ micrometer-tracing-bridge-otel
+
+
+
- com.dynatrace.oneagent.sdk.java
- oneagent-sdk
- ${oneagent-sdk.version}
+ io.opentelemetry
+ opentelemetry-api
+ 1.32.0
+
+
+
+ io.opentelemetry.instrumentation
+ opentelemetry-log4j-appender-2.17
+ 1.32.0-alpha
+
+
@@ -152,12 +185,7 @@
test
-
-
- io.opentelemetry
- opentelemetry-api
- ${opentelemetry.version}
-
+
diff --git a/java-backend/run-with-otel.sh b/java-backend/run-with-otel.sh
index ca4ed17c..926a71c9 100755
--- a/java-backend/run-with-otel.sh
+++ b/java-backend/run-with-otel.sh
@@ -1,12 +1,51 @@
#!/bin/bash
+set -e # Exit on any command failure
# Java Backend Run Script with OpenTelemetry
echo "🚀 Starting Java Backend Server with OpenTelemetry..."
+# Cleanup function for graceful shutdown
+cleanup() {
+ echo ""
+ echo "🧹 Cleaning up..."
+ # Kill any background processes if needed
+ jobs -p | xargs -r kill 2>/dev/null || true
+}
+
+# Set up trap for cleanup on exit
+trap cleanup EXIT INT TERM
+
# Load environment variables if .env file exists
if [ -f .env ]; then
echo "📋 Loading environment variables from .env file..."
- export $(cat .env | xargs)
+ # Safely load .env file, handling multi-line values
+ while IFS= read -r line || [ -n "$line" ]; do
+ # Skip empty lines and comments
+ [[ -z "$line" || "$line" =~ ^[[:space:]]*# ]] && continue
+
+ # Handle multi-line values by continuing to read until we find a complete assignment
+ if [[ "$line" =~ ^[A-Za-z_][A-Za-z0-9_]*= ]]; then
+ # If we have a pending multi-line variable, export it
+ if [ -n "$current_var" ] && [ -n "$current_value" ]; then
+ export "$current_var"="$current_value"
+ fi
+
+ # Start new variable
+ current_var="${line%%=*}"
+ current_value="${line#*=}"
+ else
+ # Continue multi-line value
+ current_value="$current_value$line"
+ fi
+ done < .env
+
+ # Export the last variable if exists
+ if [ -n "$current_var" ] && [ -n "$current_value" ]; then
+ export "$current_var"="$current_value"
+ fi
+
+ # Clean up
+ unset current_var current_value
fi
# Set default values for application
@@ -45,6 +84,11 @@ export OTEL_SERVICE_NAME="java-backend"
export OTEL_SERVICE_VERSION="1.0.0"
export OTEL_RESOURCE_ATTRIBUTES="service.name=java-backend,service.version=1.0.0,deployment.environment=${NODE_ENV}"
+# OpenTelemetry Logback Bridge Configuration
+export OTEL_LOGS_EXPORTER="otlp"
+export OTEL_INSTRUMENTATION_LOGBACK_APPENDER_ENABLED="true"
+
+
# Only set endpoint if we have one configured
if [ -n "$OTLP_ENDPOINT" ]; then
export OTEL_EXPORTER_OTLP_ENDPOINT="$OTLP_ENDPOINT"
@@ -53,11 +97,18 @@ if [ -n "$OTLP_ENDPOINT" ]; then
fi
export OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE="delta"
export OTEL_EXPORTER_OTLP_COMPRESSION="gzip"
+
+ # Enable all telemetry signals including logs
+ export OTEL_TRACES_EXPORTER="otlp"
+ export OTEL_METRICS_EXPORTER="otlp"
+ export OTEL_LOGS_EXPORTER="otlp"
+ echo "📊 Enabled OTLP export for traces, metrics, and logs with bridge"
else
# Disable OTLP exporter if no endpoint configured
export OTEL_TRACES_EXPORTER="none"
export OTEL_METRICS_EXPORTER="none"
export OTEL_LOGS_EXPORTER="none"
+ echo "⚠️ Telemetry export disabled (no endpoint configured)"
fi
echo "🔧 Configuration:"
@@ -69,26 +120,52 @@ echo " OTLP Endpoint: ${OTLP_ENDPOINT:-disabled}"
echo ""
# Check dependencies
+echo "🔍 Checking dependencies..."
+
if ! command -v mvn &> /dev/null; then
- echo "❌ Maven is not installed."
+ echo "❌ Maven is not installed. Please install Maven first."
+ echo " On macOS: brew install maven"
+ echo " On Ubuntu: sudo apt-get install maven"
exit 1
fi
if ! command -v java &> /dev/null; then
- echo "❌ Java is not installed."
+ echo "❌ Java is not installed. Please install Java first."
+ echo " On macOS: brew install openjdk"
+ echo " On Ubuntu: sudo apt-get install default-jdk"
+ exit 1
+fi
+
+# Check Java version
+JAVA_VERSION=$(java -version 2>&1 | head -n1 | awk -F '"' '{print $2}' | awk -F '.' '{print $1}')
+if [ "$JAVA_VERSION" -lt 17 ]; then
+ echo "⚠️ Warning: Java $JAVA_VERSION detected. Java 17+ is recommended for Spring Boot 3.x"
+fi
+
+# Check if pom.xml exists
+if [ ! -f "pom.xml" ]; then
+ echo "❌ pom.xml not found. Make sure you're in the correct directory."
exit 1
fi
# Check if OpenTelemetry agent exists
if [ ! -f "opentelemetry-javaagent.jar" ]; then
echo "📥 Downloading OpenTelemetry Java Agent..."
- curl -L -o opentelemetry-javaagent.jar https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar
+ if ! curl -L -o opentelemetry-javaagent.jar https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar; then
+ echo "❌ Failed to download OpenTelemetry agent."
+ exit 1
+ fi
+ echo "✅ OpenTelemetry agent downloaded successfully."
fi
echo "✅ Starting with OpenTelemetry instrumentation..."
echo ""
# Run with OpenTelemetry Java Agent
-mvn spring-boot:run -Dspring-boot.run.jvmArguments="-javaagent:opentelemetry-javaagent.jar"
+echo "💡 Running Maven with Spring Boot and OpenTelemetry agent..."
+mvn clean spring-boot:run \
+ -Dspring-boot.run.jvmArguments="-javaagent:opentelemetry-javaagent.jar" \
+ -Dspring-boot.run.profiles=${NODE_ENV} \
+ -Dserver.port=${PORT}
echo "🛑 Java Backend Server stopped."
diff --git a/java-backend/server-bridge.log b/java-backend/server-bridge.log
new file mode 100644
index 00000000..ebd2ae4f
--- /dev/null
+++ b/java-backend/server-bridge.log
@@ -0,0 +1,736 @@
+🚀 Starting Java Backend Server with OpenTelemetry...
+📋 Loading environment variables from .env file...
+📡 Using DYNATRACE OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+📊 Enabled OTLP export for traces, metrics, and logs with bridge
+🔧 Configuration:
+ Port: 3002
+ Environment: development
+ Database: ./database.sqlite
+ Frontend URL: http://localhost:3000
+ OTLP Endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+
+🔍 Checking dependencies...
+✅ Starting with OpenTelemetry instrumentation...
+
+💡 Running Maven with Spring Boot and OpenTelemetry agent...
+[INFO] Scanning for projects...
+[INFO]
+[INFO] ----------------------< com.shopper:java-backend >----------------------
+[INFO] Building Java Backend 1.0.0
+[INFO] from pom.xml
+[INFO] --------------------------------[ jar ]---------------------------------
+[INFO]
+[INFO] --- clean:3.3.2:clean (default-clean) @ java-backend ---
+[INFO] Deleting /Users/suthar/dev/shopper/backend/java-backend/target
+[INFO]
+[INFO] >>> spring-boot:3.2.0:run (default-cli) > test-compile @ java-backend >>>
+[INFO]
+[INFO] --- resources:3.3.1:resources (default-resources) @ java-backend ---
+[INFO] Copying 4 resources from src/main/resources to target/classes
+[INFO] Copying 2 resources from src/main/resources to target/classes
+[INFO]
+[INFO] --- compiler:3.11.0:compile (default-compile) @ java-backend ---
+[INFO] Changes detected - recompiling the module! :source
+[INFO] Compiling 55 source files with javac [debug release 17] to target/classes
+[INFO]
+[INFO] --- resources:3.3.1:testResources (default-testResources) @ java-backend ---
+[INFO] Copying 1 resource from src/test/resources to target/test-classes
+[INFO]
+[INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ java-backend ---
+[INFO] Changes detected - recompiling the module! :dependency
+[INFO] Compiling 7 source files with javac [debug release 17] to target/test-classes
+[INFO]
+[INFO] <<< spring-boot:3.2.0:run (default-cli) < test-compile @ java-backend <<<
+[INFO]
+[INFO]
+[INFO] --- spring-boot:3.2.0:run (default-cli) @ java-backend ---
+[INFO] Attaching agents: []
+OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
+[otel.javaagent 2025-09-04 14:12:40:217 -0400] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 2.17.1
+14:12:49,156 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.4.11
+14:12:49,160 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - Here is a list of configurators discovered as a service, by rank:
+14:12:49,160 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - org.springframework.boot.logging.logback.RootLogLevelConfigurator
+14:12:49,160 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - They will be invoked in order until ExecutionStatus.DO_NOT_INVOKE_NEXT_IF_ANY is returned.
+14:12:49,160 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - Constructed configurator of type class org.springframework.boot.logging.logback.RootLogLevelConfigurator
+14:12:49,171 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - org.springframework.boot.logging.logback.RootLogLevelConfigurator.configure() call lasted 0 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
+14:12:49,172 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
+14:12:49,174 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
+14:12:49,202 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
+14:12:49,203 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
+14:12:49,203 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 29 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
+14:12:49,203 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
+14:12:49,204 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
+14:12:49,204 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
+14:12:49,204 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
+14:12:49,204 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 0 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
+14:12:49,204 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - Trying to configure with ch.qos.logback.classic.BasicConfigurator
+14:12:49,205 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - Constructed configurator of type class ch.qos.logback.classic.BasicConfigurator
+14:12:49,205 |-INFO in ch.qos.logback.classic.BasicConfigurator@77ff14ce - Setting up default configuration.
+14:12:49,227 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5d2e6f62 - ch.qos.logback.classic.BasicConfigurator.configure() call lasted 22 milliseconds. ExecutionStatus=NEUTRAL
+14:12:50,140 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [CONSOLE]
+14:12:50,140 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
+14:12:50,161 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [OTEL]
+14:12:50,161 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender]
+14:12:50,168 |-WARN in ch.qos.logback.core.model.processor.ImplicitModelHandler - Ignoring unknown property [includeInstrumentationScopeInfo] in [io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender]
+14:12:50,177 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [com.shopper.config.DevCycleLoggingHook] to INFO
+14:12:50,177 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@733fae8 - Propagating INFO level on Logger[com.shopper.config.DevCycleLoggingHook] onto the JUL framework
+14:12:50,182 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [com.shopper.config.DevCycleLoggingHook] to false
+14:12:50,182 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [CONSOLE] to Logger[com.shopper.config.DevCycleLoggingHook]
+14:12:50,182 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [OTEL] to Logger[com.shopper.config.DevCycleLoggingHook]
+14:12:50,182 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to INFO
+14:12:50,182 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@733fae8 - Propagating INFO level on Logger[ROOT] onto the JUL framework
+14:12:50,182 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [CONSOLE] to Logger[ROOT]
+14:12:50,182 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@5a8d676e - End of configuration.
+14:12:50,182 |-INFO in org.springframework.boot.logging.logback.SpringBootJoranConfigurator@74764622 - Registering current configuration as safe fallback point
+
+
+ . ____ _ __ _ _
+ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/ ___)| |_)| | | | | || (_| | ) ) ) )
+ ' |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+ :: Spring Boot :: (v3.2.0)
+
+2025-09-04 14:12:50 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final
+2025-09-04 14:12:50 [main] INFO com.shopper.JavaBackendApplication - Starting JavaBackendApplication using Java 18.0.2 with PID 88354 (/Users/suthar/dev/shopper/backend/java-backend/target/classes started by suthar in /Users/suthar/dev/shopper/backend/java-backend)
+2025-09-04 14:12:50 [main] DEBUG com.shopper.JavaBackendApplication - Running with Spring Boot v3.2.0, Spring v6.1.1
+2025-09-04 14:12:50 [main] INFO com.shopper.JavaBackendApplication - The following 1 profile is active: "development"
+2025-09-04 14:12:51 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04 14:12:51 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 46 ms. Found 3 JPA repository interfaces.
+2025-09-04 14:12:51 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04 14:12:51 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 2 JPA repository interfaces.
+2025-09-04 14:12:53 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 3002 (http)
+2025-09-04 14:12:53 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-3002"]
+2025-09-04 14:12:53 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
+2025-09-04 14:12:53 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16]
+2025-09-04 14:12:54 [main] INFO o.a.c.c.C.[.[localhost].[/api] - Initializing Spring embedded WebApplicationContext
+2025-09-04 14:12:54 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 3540 ms
+2025-09-04 14:12:55 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default]
+2025-09-04 14:12:55 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.3.1.Final
+2025-09-04 14:12:55 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled
+2025-09-04 14:12:55 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer
+2025-09-04 14:12:55 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2025-09-04 14:12:56 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@15c900be
+2025-09-04 14:12:56 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2025-09-04 14:12:58 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
+2025-09-04 14:12:58 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04 14:12:58 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used.
+2025-09-04 14:13:06 [main] INFO c.shopper.config.OpenFeatureConfig - ✅ OpenFeature with DevCycle provider initialized successfully
+2025-09-04 14:13:06 [main] INFO c.shopper.config.OpenFeatureConfig - 🔍 DevCycle hooks registered for OpenTelemetry tracing and logging
+Variable called before DevCycleLocalClient has initialized, returning default value
+2025-09-04 14:13:06 [main] INFO c.shopper.config.OpenFeatureConfig - 🎛️ DevCycle feature flag 'use-neon' evaluated to: false for admin user
+Variable called before DevCycleLocalClient has initialized, returning default value
+2025-09-04 14:13:06 [main] INFO c.shopper.config.OpenFeatureConfig - 🎛️ DevCycle feature flag 'new-flow' evaluated to: false for admin user
+2025-09-04 14:13:06 [main] WARN o.s.aop.framework.CglibAopProxy - Unable to proxy interface-implementing method [public final void org.springframework.web.filter.OncePerRequestFilter.doFilter(jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,jakarta.servlet.FilterChain) throws jakarta.servlet.ServletException,java.io.IOException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04 14:13:06 [main] WARN o.s.aop.framework.CglibAopProxy - Unable to proxy interface-implementing method [public final void org.springframework.web.filter.GenericFilterBean.init(jakarta.servlet.FilterConfig) throws jakarta.servlet.ServletException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04 14:13:06 [main] DEBUG c.s.security.JwtAuthenticationFilter - Filter 'jwtAuthenticationFilter' configured for use
+2025-09-04 14:13:06 [main] DEBUG o.s.w.f.ServerHttpObservationFilter - Filter 'webMvcObservationFilter' configured for use
+2025-09-04 14:13:06 [main] INFO c.shopper.config.OpenTelemetryConfig - 📊 OpenTelemetry Java Agent enabled for service: java-backend v1.0.0 (development)
+2025-09-04 14:13:06 [main] INFO c.shopper.config.OpenTelemetryConfig - 🔗 OpenTelemetry configured for OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+2025-09-04 14:13:06 [main] INFO c.shopper.config.OpenTelemetryConfig - 🔐 OTLP headers configured for authentication
+2025-09-04 14:13:06 [main] INFO c.shopper.config.OpenTelemetryConfig - ✅ Using OpenTelemetry Java Agent for auto-instrumentation
+2025-09-04 14:13:07 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
+2025-09-04 14:13:07 [main] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - 49 mappings in 'requestMappingHandlerMapping'
+2025-09-04 14:13:08 [main] DEBUG o.s.w.s.h.SimpleUrlHandlerMapping - Patterns [/webjars/**, /**, /swagger-ui*/*swagger-initializer.js, /swagger-ui*/**] in 'resourceHandlerMapping'
+2025-09-04 14:13:08 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoint(s) beneath base path '/actuator'
+2025-09-04 14:13:08 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@5a595cad, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@66d87874, org.springframework.security.web.context.SecurityContextHolderFilter@2b5dfb1b, org.springframework.security.web.header.HeaderWriterFilter@36885534, org.springframework.web.filter.CorsFilter@1bfcf859, org.springframework.security.web.authentication.logout.LogoutFilter@621b834, com.shopper.security.JwtAuthenticationFilter@45dab1cd, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@72d4ff34, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1869639d, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@38729b3d, org.springframework.security.web.session.SessionManagementFilter@7156c7e5, org.springframework.security.web.access.ExceptionTranslationFilter@6de21950, org.springframework.security.web.access.intercept.AuthorizationFilter@4d6c4bd5]
+2025-09-04 14:13:08 [main] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerAdapter - ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
+2025-09-04 14:13:08 [main] DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice
+2025-09-04 14:13:09 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-3002"]
+2025-09-04 14:13:09 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 3002 (http) with context path '/api'
+2025-09-04 14:13:09 [main] INFO com.shopper.JavaBackendApplication - Started JavaBackendApplication in 19.937 seconds (process running for 29.653)
+🚀 Java Backend Server is running!
+2025-09-04 14:15:03 [http-nio-3002-exec-1] INFO o.a.c.c.C.[.[localhost].[/api] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-09-04 14:15:03 [http-nio-3002-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.web.servlet.DispatcherServlet - Detected StandardServletMultipartResolver
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.web.servlet.DispatcherServlet - Detected AcceptHeaderLocaleResolver
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.web.servlet.DispatcherServlet - Detected FixedThemeResolver
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.web.servlet.DispatcherServlet - Detected org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator@673dbe6a
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.web.servlet.DispatcherServlet - Detected org.springframework.web.servlet.support.SessionFlashMapManager@a35b137
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.web.servlet.DispatcherServlet - enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data
+2025-09-04 14:15:03 [http-nio-3002-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 3 ms
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing POST /auth/login
+2025-09-04 14:15:03 [http-nio-3002-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /auth/login
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:15:03 [http-nio-3002-exec-2] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:15:03 [http-nio-3002-exec-2] WARN o.s.w.s.h.HandlerMappingIntrospector - Cache miss for REQUEST dispatch to '/api/auth/login' (previous null). Performing MatchableHandlerMapping lookup. This is logged once only at WARN level, and every time at TRACE.
+2025-09-04 14:15:03 [http-nio-3002-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /auth/login
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured POST /auth/login
+2025-09-04 14:15:03 [http-nio-3002-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - POST "/api/auth/login", parameters={}
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.web.servlet.DispatcherServlet - POST "/api/auth/login", parameters={}
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.AuthController#login(LoginDto)
+2025-09-04 14:15:03 [http-nio-3002-exec-2] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.AuthController#login(LoginDto)
+2025-09-04 14:15:03 [http-nio-3002-exec-2] INFO c.s.interceptor.LoggingInterceptor - 🔄 POST /api/auth/login [Anonymous] - Request started
+2025-09-04 14:15:03 [http-nio-3002-exec-1] INFO c.s.interceptor.LoggingInterceptor - 🔄 POST /api/auth/login [Anonymous] - Request started
+2025-09-04 14:15:03 [http-nio-3002-exec-2] DEBUG o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Read "application/json;charset=UTF-8" to [LoginDto(username=admin, password=password)]
+2025-09-04 14:15:03 [http-nio-3002-exec-1] DEBUG o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Read "application/json;charset=UTF-8" to [LoginDto(username=user, password=password)]
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG o.s.s.a.d.DaoAuthenticationProvider - Authenticated user
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG o.s.s.a.d.DaoAuthenticationProvider - Authenticated user
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [AuthResponseDto(token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTc1NzAwOTcwNCwiZXhwIjoxNzU3M (truncated)...]
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [AuthResponseDto(token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiaWF0IjoxNzU3MDA5NzA0LCJleHAiOjE3NTcwO (truncated)...]
+2025-09-04 14:15:04 [http-nio-3002-exec-1] INFO c.s.interceptor.LoggingInterceptor - ✅ POST /api/auth/login [Anonymous] - 200 (712ms)
+2025-09-04 14:15:04 [http-nio-3002-exec-2] INFO c.s.interceptor.LoggingInterceptor - ✅ POST /api/auth/login [Anonymous] - 200 (712ms)
+2025-09-04 14:15:04 [http-nio-3002-exec-1] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:15:04 [http-nio-3002-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:15:04 [http-nio-3002-exec-3] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:15:04 [http-nio-3002-exec-3] INFO c.s.security.JwtAuthenticationFilter - JWT token extracted, username: user
+2025-09-04 14:15:04 [http-nio-3002-exec-3] INFO c.s.security.JwtAuthenticationFilter - Loading user details for username: user
+2025-09-04 14:15:04 [http-nio-3002-exec-3] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:04 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:04 [http-nio-3002-exec-3] INFO c.s.security.JwtAuthenticationFilter - User details loaded successfully for: user
+2025-09-04 14:15:04 [http-nio-3002-exec-3] INFO c.s.security.JwtAuthenticationFilter - JWT token validation successful for user: user
+2025-09-04 14:15:04 [http-nio-3002-exec-3] INFO c.s.security.JwtAuthenticationFilter - Authentication set in SecurityContext for user: user
+2025-09-04 14:15:04 [http-nio-3002-exec-3] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:15:04 [http-nio-3002-exec-3] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:15:04 [http-nio-3002-exec-3] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:15:04 [http-nio-3002-exec-3] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [User: user] - Request started
+2025-09-04 14:15:04 [http-nio-3002-exec-3] INFO c.shopper.service.FeatureFlagService - Feature flags initialized with default values
+2025-09-04 14:15:05 [http-nio-3002-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:15:05 [http-nio-3002-exec-4] INFO c.s.security.JwtAuthenticationFilter - JWT token extracted, username: user
+2025-09-04 14:15:05 [http-nio-3002-exec-4] INFO c.s.security.JwtAuthenticationFilter - Loading user details for username: user
+2025-09-04 14:15:05 [http-nio-3002-exec-4] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:05 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:05 [http-nio-3002-exec-4] INFO c.s.security.JwtAuthenticationFilter - User details loaded successfully for: user
+2025-09-04 14:15:05 [http-nio-3002-exec-4] INFO c.s.security.JwtAuthenticationFilter - JWT token validation successful for user: user
+2025-09-04 14:15:05 [http-nio-3002-exec-4] INFO c.s.security.JwtAuthenticationFilter - Authentication set in SecurityContext for user: user
+2025-09-04 14:15:05 [http-nio-3002-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:15:05 [http-nio-3002-exec-4] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:15:05 [http-nio-3002-exec-4] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:15:05 [http-nio-3002-exec-4] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [User: user] - Request started
+2025-09-04 14:15:09 [http-nio-3002-exec-3] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:15:09 [http-nio-3002-exec-3] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: user
+2025-09-04 14:15:09 [http-nio-3002-exec-3] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: user
+2025-09-04 14:15:09 [http-nio-3002-exec-3] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:09 [http-nio-3002-exec-3] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:15:10 [http-nio-3002-exec-3] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:10 [http-nio-3002-exec-3] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:15:10 [http-nio-3002-exec-5] INFO c.s.security.JwtAuthenticationFilter - JWT token extracted, username: admin
+2025-09-04 14:15:10 [http-nio-3002-exec-5] INFO c.s.security.JwtAuthenticationFilter - Loading user details for username: admin
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:10 [http-nio-3002-exec-5] INFO c.s.security.JwtAuthenticationFilter - User details loaded successfully for: admin
+2025-09-04 14:15:10 [http-nio-3002-exec-5] INFO c.s.security.JwtAuthenticationFilter - JWT token validation successful for user: admin
+2025-09-04 14:15:10 [http-nio-3002-exec-5] INFO c.s.security.JwtAuthenticationFilter - Authentication set in SecurityContext for user: admin
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:15:10 [http-nio-3002-exec-5] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [User: admin] - Request started
+2025-09-04 14:15:10 [http-nio-3002-exec-5] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: admin
+2025-09-04 14:15:10 [http-nio-3002-exec-5] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: admin
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:15:10 [http-nio-3002-exec-3] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/products [User: user] - 200 (5385ms)
+2025-09-04 14:15:10 [http-nio-3002-exec-3] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:15:10 [http-nio-3002-exec-5] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/products [User: admin] - 200 (39ms)
+2025-09-04 14:15:10 [http-nio-3002-exec-5] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:15:10 [http-nio-3002-exec-4] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:15:10 [http-nio-3002-exec-4] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: user
+2025-09-04 14:15:10 [http-nio-3002-exec-4] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: user
+2025-09-04 14:15:10 [http-nio-3002-exec-4] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:10 [http-nio-3002-exec-4] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:15:10 [http-nio-3002-exec-4] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:10 [http-nio-3002-exec-4] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:15:10 [http-nio-3002-exec-4] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/products [User: user] - 200 (5042ms)
+2025-09-04 14:15:10 [http-nio-3002-exec-4] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:15:12 [http-nio-3002-exec-6] INFO c.s.security.JwtAuthenticationFilter - JWT token extracted, username: user
+2025-09-04 14:15:12 [http-nio-3002-exec-6] INFO c.s.security.JwtAuthenticationFilter - Loading user details for username: user
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:12 [http-nio-3002-exec-6] INFO c.s.security.JwtAuthenticationFilter - User details loaded successfully for: user
+2025-09-04 14:15:12 [http-nio-3002-exec-6] INFO c.s.security.JwtAuthenticationFilter - JWT token validation successful for user: user
+2025-09-04 14:15:12 [http-nio-3002-exec-6] INFO c.s.security.JwtAuthenticationFilter - Authentication set in SecurityContext for user: user
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:15:12 [http-nio-3002-exec-6] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [User: user] - Request started
+2025-09-04 14:15:12 [http-nio-3002-exec-6] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: user
+2025-09-04 14:15:12 [http-nio-3002-exec-6] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: user
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:15:12 [http-nio-3002-exec-6] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/products [User: user] - 200 (26ms)
+2025-09-04 14:15:12 [http-nio-3002-exec-6] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:15:15 [http-nio-3002-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:15:15 [http-nio-3002-exec-7] INFO c.s.security.JwtAuthenticationFilter - JWT token extracted, username: admin
+2025-09-04 14:15:15 [http-nio-3002-exec-7] INFO c.s.security.JwtAuthenticationFilter - Loading user details for username: admin
+2025-09-04 14:15:15 [http-nio-3002-exec-7] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:15 [http-nio-3002-exec-7] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:15 [http-nio-3002-exec-7] INFO c.s.security.JwtAuthenticationFilter - User details loaded successfully for: admin
+2025-09-04 14:15:15 [http-nio-3002-exec-7] INFO c.s.security.JwtAuthenticationFilter - JWT token validation successful for user: admin
+2025-09-04 14:15:15 [http-nio-3002-exec-7] INFO c.s.security.JwtAuthenticationFilter - Authentication set in SecurityContext for user: admin
+2025-09-04 14:15:15 [http-nio-3002-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:15:15 [http-nio-3002-exec-7] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:15:15 [http-nio-3002-exec-7] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:15:15 [http-nio-3002-exec-7] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [User: admin] - Request started
+2025-09-04 14:15:18 [http-nio-3002-exec-8] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:15:18 [http-nio-3002-exec-8] INFO c.s.security.JwtAuthenticationFilter - JWT token extracted, username: user
+2025-09-04 14:15:18 [http-nio-3002-exec-8] INFO c.s.security.JwtAuthenticationFilter - Loading user details for username: user
+2025-09-04 14:15:18 [http-nio-3002-exec-8] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:18 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:18 [http-nio-3002-exec-8] INFO c.s.security.JwtAuthenticationFilter - User details loaded successfully for: user
+2025-09-04 14:15:18 [http-nio-3002-exec-8] INFO c.s.security.JwtAuthenticationFilter - JWT token validation successful for user: user
+2025-09-04 14:15:18 [http-nio-3002-exec-8] INFO c.s.security.JwtAuthenticationFilter - Authentication set in SecurityContext for user: user
+2025-09-04 14:15:18 [http-nio-3002-exec-8] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:15:18 [http-nio-3002-exec-8] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:15:18 [http-nio-3002-exec-8] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:15:18 [http-nio-3002-exec-8] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [User: user] - Request started
+2025-09-04 14:15:20 [http-nio-3002-exec-7] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: admin
+2025-09-04 14:15:20 [http-nio-3002-exec-7] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: admin
+2025-09-04 14:15:20 [http-nio-3002-exec-7] INFO c.s.interceptor.LoggingInterceptor - ❌ GET /api/products [User: admin] - 200 (5016ms) [Error in findAll]
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG o.s.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:15:20 [http-nio-3002-exec-7] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577)
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713)
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll()
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577)
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713)
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts()
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577)
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254)
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182)
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577)
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713)
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal()
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+ at java.base/java.lang.Thread.run(Thread.java:833)
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG o.s.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:15:20 [http-nio-3002-exec-7] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/error [Anonymous] - Request started
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:15:20 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:15:20 [http-nio-3002-exec-7] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/error [Anonymous] - 500 (8ms)
+2025-09-04 14:15:20 [http-nio-3002-exec-7] DEBUG o.s.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:15:21 [http-nio-3002-exec-9] INFO c.s.security.JwtAuthenticationFilter - JWT token extracted, username: user
+2025-09-04 14:15:21 [http-nio-3002-exec-9] INFO c.s.security.JwtAuthenticationFilter - Loading user details for username: user
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:21 [http-nio-3002-exec-9] INFO c.s.security.JwtAuthenticationFilter - User details loaded successfully for: user
+2025-09-04 14:15:21 [http-nio-3002-exec-9] INFO c.s.security.JwtAuthenticationFilter - JWT token validation successful for user: user
+2025-09-04 14:15:21 [http-nio-3002-exec-9] INFO c.s.security.JwtAuthenticationFilter - Authentication set in SecurityContext for user: user
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:15:21 [http-nio-3002-exec-9] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [User: user] - Request started
+2025-09-04 14:15:21 [http-nio-3002-exec-9] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: user
+2025-09-04 14:15:21 [http-nio-3002-exec-9] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: user
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:15:21 [http-nio-3002-exec-9] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/products [User: user] - 200 (39ms)
+2025-09-04 14:15:21 [http-nio-3002-exec-9] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:15:23 [http-nio-3002-exec-8] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:15:23 [http-nio-3002-exec-8] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: user
+2025-09-04 14:15:23 [http-nio-3002-exec-8] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: user
+2025-09-04 14:15:23 [http-nio-3002-exec-8] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:23 [http-nio-3002-exec-8] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:15:23 [http-nio-3002-exec-8] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:23 [http-nio-3002-exec-8] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:15:23 [http-nio-3002-exec-8] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/products [User: user] - 200 (5043ms)
+2025-09-04 14:15:23 [http-nio-3002-exec-8] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:15:23 [http-nio-3002-exec-10] INFO c.s.security.JwtAuthenticationFilter - JWT token extracted, username: admin
+2025-09-04 14:15:23 [http-nio-3002-exec-10] INFO c.s.security.JwtAuthenticationFilter - Loading user details for username: admin
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:23 [http-nio-3002-exec-10] INFO c.s.security.JwtAuthenticationFilter - User details loaded successfully for: admin
+2025-09-04 14:15:23 [http-nio-3002-exec-10] INFO c.s.security.JwtAuthenticationFilter - JWT token validation successful for user: admin
+2025-09-04 14:15:23 [http-nio-3002-exec-10] INFO c.s.security.JwtAuthenticationFilter - Authentication set in SecurityContext for user: admin
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:15:23 [http-nio-3002-exec-10] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [User: admin] - Request started
+2025-09-04 14:15:23 [http-nio-3002-exec-10] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: admin
+2025-09-04 14:15:23 [http-nio-3002-exec-10] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: admin
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:15:23 [http-nio-3002-exec-10] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/products [User: admin] - 200 (112ms)
+2025-09-04 14:15:23 [http-nio-3002-exec-10] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.s.security.JwtAuthenticationFilter - JWT token extracted, username: admin
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.s.security.JwtAuthenticationFilter - Loading user details for username: admin
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG org.hibernate.SQL - select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.s.security.JwtAuthenticationFilter - User details loaded successfully for: admin
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.s.security.JwtAuthenticationFilter - JWT token validation successful for user: admin
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.s.security.JwtAuthenticationFilter - Authentication set in SecurityContext for user: admin
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [User: admin] - Request started
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: admin
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: admin
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.s.interceptor.LoggingInterceptor - ❌ GET /api/products [User: admin] - 200 (4ms) [Error in findAll]
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Failed to complete request: java.lang.RuntimeException: Error in findAll
+2025-09-04 14:15:25 [http-nio-3002-exec-2] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed: java.lang.RuntimeException: Error in findAll] with root cause
+java.lang.RuntimeException: Error in findAll
+ at com.shopper.service.ProductService.findAll(ProductService.java:42)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577)
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713)
+ at com.shopper.service.ProductService$$SpringCGLIB$$0.findAll()
+ at com.shopper.controller.ProductController.getAllProducts(ProductController.java:59)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577)
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713)
+ at com.shopper.controller.ProductController$$SpringCGLIB$$0.getAllProducts()
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577)
+ at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254)
+ at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182)
+ at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)
+ at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)
+ at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
+ at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
+ at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
+ at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
+ at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
+ at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
+ at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
+ at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)
+ at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)
+ at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
+ at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
+ at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at com.shopper.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:83)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:577)
+ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
+ at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:713)
+ at com.shopper.security.JwtAuthenticationFilter$$SpringCGLIB$$0.doFilterInternal()
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
+ at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
+ at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
+ at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
+ at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)
+ at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)
+ at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
+ at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
+ at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
+ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)
+ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
+ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
+ at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+ at java.base/java.lang.Thread.run(Thread.java:833)
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing GET /error
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured GET /error
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - "ERROR" dispatch for GET "/api/error", parameters={}
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/error [Anonymous] - Request started
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [{timestamp=Thu Sep 04 14:15:25 EDT 2025, status=500, error=Internal Server Error, path=/api/products (truncated)...]
+2025-09-04 14:15:25 [http-nio-3002-exec-2] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/error [Anonymous] - 500 (1ms)
+2025-09-04 14:15:25 [http-nio-3002-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Exiting from "ERROR" dispatch, status 500
+2025-09-04 14:34:11 [http-nio-3002-exec-8] DEBUG o.s.security.web.FilterChainProxy - Securing HEAD /admin/feature-flags
+2025-09-04 14:34:11 [http-nio-3002-exec-8] INFO c.s.security.JwtAuthenticationFilter - No Authorization header or Bearer token found
+2025-09-04 14:34:11 [http-nio-3002-exec-8] INFO c.s.security.JwtAuthenticationFilter - No username extracted from JWT token
+2025-09-04 14:34:11 [http-nio-3002-exec-8] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:34:11 [http-nio-3002-exec-8] ERROR c.s.s.JwtAuthenticationEntryPoint - Unauthorized error: Full authentication is required to access this resource
+2025-09-04 14:34:11 [http-nio-3002-exec-8] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.AdminController#getAllFeatureFlags()
+2025-09-04 14:34:19 [http-nio-3002-exec-10] DEBUG o.s.security.web.FilterChainProxy - Securing GET /products
+2025-09-04 14:34:19 [http-nio-3002-exec-10] INFO c.s.security.JwtAuthenticationFilter - No Authorization header or Bearer token found
+2025-09-04 14:34:19 [http-nio-3002-exec-10] INFO c.s.security.JwtAuthenticationFilter - No username extracted from JWT token
+2025-09-04 14:34:19 [http-nio-3002-exec-10] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext
+2025-09-04 14:34:19 [http-nio-3002-exec-10] DEBUG o.s.security.web.FilterChainProxy - Secured GET /products
+2025-09-04 14:34:19 [http-nio-3002-exec-10] DEBUG o.s.web.servlet.DispatcherServlet - GET "/api/products", parameters={}
+2025-09-04 14:34:19 [http-nio-3002-exec-10] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.shopper.controller.ProductController#getAllProducts()
+2025-09-04 14:34:19 [http-nio-3002-exec-10] INFO c.s.interceptor.LoggingInterceptor - 🔄 GET /api/products [Anonymous] - Request started
+2025-09-04 14:34:24 [http-nio-3002-exec-10] INFO c.shopper.config.DevCycleLoggingHook - Feature flag evaluation completed for key: new-flow
+2025-09-04 14:34:24 [http-nio-3002-exec-10] DEBUG c.shopper.service.FeatureFlagService - 🎛️ Feature flag 'new-flow' evaluated to: true for user: anonymous
+2025-09-04 14:34:24 [http-nio-3002-exec-10] INFO com.shopper.service.ProductService - ✅ New flow enabled for user: anonymous
+2025-09-04 14:34:24 [http-nio-3002-exec-10] DEBUG c.s.service.DualDatabaseStrategyImpl - Secondary database not enabled, using primary for read operation
+2025-09-04 14:34:24 [http-nio-3002-exec-10] DEBUG org.hibernate.SQL - select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0 where p1_0.stock_quantity>0
+2025-09-04 14:34:24 [http-nio-3002-exec-10] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json', given [*/*] and supported [application/json, application/*+json]
+2025-09-04 14:34:24 [http-nio-3002-exec-10] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
+2025-09-04 14:34:24 [http-nio-3002-exec-10] INFO c.s.interceptor.LoggingInterceptor - ✅ GET /api/products [Anonymous] - 200 (5059ms)
+2025-09-04 14:34:24 [http-nio-3002-exec-10] DEBUG o.s.web.servlet.DispatcherServlet - Completed 200 OK
+Error reading event
+Stream closed by client
+2025-09-04 14:35:18 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04 14:35:18 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2025-09-04 14:35:18 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD FAILURE
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 23:00 min
+[INFO] Finished at: 2025-09-04T14:35:22-04:00
+[INFO] ------------------------------------------------------------------------
+[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.2.0:run (default-cli) on project java-backend: Process terminated with exit code: 143 -> [Help 1]
+[ERROR]
+[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
+[ERROR] Re-run Maven using the -X switch to enable full debug logging.
+[ERROR]
+[ERROR] For more information about the errors and possible solutions, please read the following articles:
+[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
+
+🧹 Cleaning up...
diff --git a/java-backend/server-events.log b/java-backend/server-events.log
new file mode 100644
index 00000000..83956394
--- /dev/null
+++ b/java-backend/server-events.log
@@ -0,0 +1,62 @@
+🚀 Starting Java Backend Server with OpenTelemetry...
+📋 Loading environment variables from .env file...
+📡 Using DYNATRACE OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+📊 Enabled OTLP export for traces, metrics, and logs
+🔧 Configuration:
+ Port: 3002
+ Environment: development
+ Database: ./database.sqlite
+ Frontend URL: http://localhost:3000
+ OTLP Endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+
+🔍 Checking dependencies...
+✅ Starting with OpenTelemetry instrumentation...
+
+💡 Running Maven with Spring Boot and OpenTelemetry agent...
+[INFO] Scanning for projects...
+[INFO]
+[INFO] ----------------------< com.shopper:java-backend >----------------------
+[INFO] Building Java Backend 1.0.0
+[INFO] from pom.xml
+[INFO] --------------------------------[ jar ]---------------------------------
+[INFO]
+[INFO] --- clean:3.3.2:clean (default-clean) @ java-backend ---
+[INFO] Deleting /Users/suthar/dev/shopper/backend/java-backend/target
+[INFO]
+[INFO] >>> spring-boot:3.2.0:run (default-cli) > test-compile @ java-backend >>>
+[INFO]
+[INFO] --- resources:3.3.1:resources (default-resources) @ java-backend ---
+[INFO] Copying 4 resources from src/main/resources to target/classes
+[INFO] Copying 1 resource from src/main/resources to target/classes
+[INFO]
+[INFO] --- compiler:3.11.0:compile (default-compile) @ java-backend ---
+[INFO] Changes detected - recompiling the module! :source
+[INFO] Compiling 54 source files with javac [debug release 17] to target/classes
+[INFO] -------------------------------------------------------------
+[ERROR] COMPILATION ERROR :
+[INFO] -------------------------------------------------------------
+[ERROR] /Users/suthar/dev/shopper/backend/java-backend/src/main/java/com/shopper/config/DynatraceOneAgentHook.java:[180,23] cannot find symbol
+ symbol: class Builder
+ location: interface io.opentelemetry.api.common.Attributes
+[INFO] 1 error
+[INFO] -------------------------------------------------------------
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD FAILURE
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 15.273 s
+[INFO] Finished at: 2025-09-04T13:20:03-04:00
+[INFO] ------------------------------------------------------------------------
+[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project java-backend: Compilation failure
+[ERROR] /Users/suthar/dev/shopper/backend/java-backend/src/main/java/com/shopper/config/DynatraceOneAgentHook.java:[180,23] cannot find symbol
+[ERROR] symbol: class Builder
+[ERROR] location: interface io.opentelemetry.api.common.Attributes
+[ERROR]
+[ERROR] -> [Help 1]
+[ERROR]
+[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
+[ERROR] Re-run Maven using the -X switch to enable full debug logging.
+[ERROR]
+[ERROR] For more information about the errors and possible solutions, please read the following articles:
+[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
+
+🧹 Cleaning up...
diff --git a/java-backend/server-mdc-logs.log b/java-backend/server-mdc-logs.log
new file mode 100644
index 00000000..63c501b4
--- /dev/null
+++ b/java-backend/server-mdc-logs.log
@@ -0,0 +1,156 @@
+🚀 Starting Java Backend Server with OpenTelemetry...
+📋 Loading environment variables from .env file...
+📡 Using DYNATRACE OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+📊 Enabled OTLP export for traces, metrics, and logs
+🔧 Configuration:
+ Port: 3002
+ Environment: development
+ Database: ./database.sqlite
+ Frontend URL: http://localhost:3000
+ OTLP Endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+
+🔍 Checking dependencies...
+✅ Starting with OpenTelemetry instrumentation...
+
+💡 Running Maven with Spring Boot and OpenTelemetry agent...
+[INFO] Scanning for projects...
+[INFO]
+[INFO] ----------------------< com.shopper:java-backend >----------------------
+[INFO] Building Java Backend 1.0.0
+[INFO] from pom.xml
+[INFO] --------------------------------[ jar ]---------------------------------
+[INFO]
+[INFO] --- clean:3.3.2:clean (default-clean) @ java-backend ---
+[INFO] Deleting /Users/suthar/dev/shopper/backend/java-backend/target
+[INFO]
+[INFO] >>> spring-boot:3.2.0:run (default-cli) > test-compile @ java-backend >>>
+[INFO]
+[INFO] --- resources:3.3.1:resources (default-resources) @ java-backend ---
+[INFO] Copying 4 resources from src/main/resources to target/classes
+[INFO] Copying 1 resource from src/main/resources to target/classes
+[INFO]
+[INFO] --- compiler:3.11.0:compile (default-compile) @ java-backend ---
+[INFO] Changes detected - recompiling the module! :source
+[INFO] Compiling 55 source files with javac [debug release 17] to target/classes
+[INFO]
+[INFO] --- resources:3.3.1:testResources (default-testResources) @ java-backend ---
+[INFO] Copying 1 resource from src/test/resources to target/test-classes
+[INFO]
+[INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ java-backend ---
+[INFO] Changes detected - recompiling the module! :dependency
+[INFO] Compiling 7 source files with javac [debug release 17] to target/test-classes
+[INFO]
+[INFO] <<< spring-boot:3.2.0:run (default-cli) < test-compile @ java-backend <<<
+[INFO]
+[INFO]
+[INFO] --- spring-boot:3.2.0:run (default-cli) @ java-backend ---
+[INFO] Attaching agents: []
+OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
+[otel.javaagent 2025-09-04 13:58:49:742 -0400] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 2.17.1
+
+ . ____ _ __ _ _
+ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/ ___)| |_)| | | | | || (_| | ) ) ) )
+ ' |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+ :: Spring Boot :: (v3.2.0)
+
+2025-09-04T13:58:59.572-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Starting JavaBackendApplication using Java 18.0.2 with PID 41401 (/Users/suthar/dev/shopper/backend/java-backend/target/classes started by suthar in /Users/suthar/dev/shopper/backend/java-backend)
+2025-09-04T13:58:59.589-04:00 DEBUG 41401 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Running with Spring Boot v3.2.0, Spring v6.1.1
+2025-09-04T13:58:59.590-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : The following 1 profile is active: "development"
+2025-09-04T13:59:00.980-04:00 INFO 41401 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04T13:59:01.031-04:00 INFO 41401 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 42 ms. Found 3 JPA repository interfaces.
+2025-09-04T13:59:01.034-04:00 INFO 41401 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04T13:59:01.049-04:00 INFO 41401 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 14 ms. Found 2 JPA repository interfaces.
+2025-09-04T13:59:03.113-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 3002 (http)
+2025-09-04T13:59:03.207-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardService : Starting service [Tomcat]
+2025-09-04T13:59:03.208-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16]
+2025-09-04T13:59:03.296-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.a.c.c.C.[Tomcat].[localhost].[/api] : Initializing Spring embedded WebApplicationContext
+2025-09-04T13:59:03.300-04:00 INFO 41401 --- [java-backend] [ main] [ ] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3628 ms
+2025-09-04T13:59:04.339-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
+2025-09-04T13:59:04.423-04:00 INFO 41401 --- [java-backend] [ main] [ ] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.3.1.Final
+2025-09-04T13:59:04.469-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled
+2025-09-04T13:59:04.684-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
+2025-09-04T13:59:04.743-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
+2025-09-04T13:59:05.364-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@40a923e6
+2025-09-04T13:59:05.380-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
+2025-09-04T13:59:06.642-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
+2025-09-04T13:59:06.743-04:00 INFO 41401 --- [java-backend] [ main] [ ] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04T13:59:07.355-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used.
+[otel.javaagent 2025-09-04 13:59:07:856 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export logs. The request could not be executed. Full error message: xtc47953.live.dynatrace.com
+java.net.UnknownHostException: xtc47953.live.dynatrace.com
+ at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:948)
+ at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1638)
+ at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1504)
+ at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
+ at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:169)
+ at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:131)
+ at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:73)
+ at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
+ at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
+ at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
+ at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
+ at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at io.opentelemetry.exporter.sender.okhttp.internal.RetryInterceptor.intercept(RetryInterceptor.java:96)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
+ at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
+ at java.base/java.lang.Thread.run(Thread.java:833)
+2025-09-04T13:59:14.265-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : ✅ OpenFeature with DevCycle provider initialized successfully
+2025-09-04T13:59:14.269-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🔍 DevCycle hooks registered for OpenTelemetry tracing and logging
+Variable called before DevCycleLocalClient has initialized, returning default value
+2025-09-04T13:59:14.329-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'use-neon' evaluated to: false for admin user
+Variable called before DevCycleLocalClient has initialized, returning default value
+2025-09-04T13:59:14.331-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'new-flow' evaluated to: false for admin user
+2025-09-04T13:59:14.409-04:00 WARN 41401 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.OncePerRequestFilter.doFilter(jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,jakarta.servlet.FilterChain) throws jakarta.servlet.ServletException,java.io.IOException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04T13:59:14.410-04:00 WARN 41401 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.GenericFilterBean.init(jakarta.servlet.FilterConfig) throws jakarta.servlet.ServletException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04T13:59:14.512-04:00 DEBUG 41401 --- [java-backend] [ main] [ ] c.s.security.JwtAuthenticationFilter : Filter 'jwtAuthenticationFilter' configured for use
+2025-09-04T13:59:14.513-04:00 DEBUG 41401 --- [java-backend] [ main] [ ] o.s.w.f.ServerHttpObservationFilter : Filter 'webMvcObservationFilter' configured for use
+2025-09-04T13:59:14.563-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 📊 OpenTelemetry Java Agent enabled for service: java-backend v1.0.0 (development)
+2025-09-04T13:59:14.563-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 🔗 OpenTelemetry configured for OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+2025-09-04T13:59:14.563-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 🔐 OTLP headers configured for authentication
+2025-09-04T13:59:14.563-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : ✅ Using OpenTelemetry Java Agent for auto-instrumentation
+2025-09-04T13:59:15.541-04:00 WARN 41401 --- [java-backend] [ main] [ ] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
+2025-09-04T13:59:16.054-04:00 DEBUG 41401 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerMapping : 49 mappings in 'requestMappingHandlerMapping'
+2025-09-04T13:59:16.514-04:00 DEBUG 41401 --- [java-backend] [ main] [ ] o.s.w.s.handler.SimpleUrlHandlerMapping : Patterns [/webjars/**, /**, /swagger-ui*/*swagger-initializer.js, /swagger-ui*/**] in 'resourceHandlerMapping'
+2025-09-04T13:59:16.709-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.s.b.a.e.web.EndpointLinksResolver : Exposing 3 endpoint(s) beneath base path '/actuator'
+2025-09-04T13:59:16.779-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@3236f72a, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@66bafca5, org.springframework.security.web.context.SecurityContextHolderFilter@34a51ba5, org.springframework.security.web.header.HeaderWriterFilter@7217b6b9, org.springframework.web.filter.CorsFilter@10f277c8, org.springframework.security.web.authentication.logout.LogoutFilter@6f2f7397, com.shopper.security.JwtAuthenticationFilter@57ddbe75, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@3265ef81, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1180e245, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@6a614868, org.springframework.security.web.session.SessionManagementFilter@9c2e017, org.springframework.security.web.access.ExceptionTranslationFilter@4b904d1a, org.springframework.security.web.access.intercept.AuthorizationFilter@fe3a6ef]
+2025-09-04T13:59:16.930-04:00 DEBUG 41401 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
+2025-09-04T13:59:16.986-04:00 DEBUG 41401 --- [java-backend] [ main] [ ] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice
+2025-09-04T13:59:17.505-04:00 INFO 41401 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 3002 (http) with context path '/api'
+2025-09-04T13:59:17.528-04:00 INFO 41401 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Started JavaBackendApplication in 18.74 seconds (process running for 28.552)
+🚀 Java Backend Server is running!
+[otel.javaagent 2025-09-04 13:59:28:277 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export logs. The request could not be executed. Full error message: timeout
+java.io.InterruptedIOException: timeout
+ at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
+ at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
+ at okhttp3.internal.connection.RealCall.noMoreExchanges$okhttp(RealCall.kt:325)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:209)
+ at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
+ at java.base/java.lang.Thread.run(Thread.java:833)
+Caused by: java.io.IOException: Canceled
+ at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:72)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at io.opentelemetry.exporter.sender.okhttp.internal.RetryInterceptor.intercept(RetryInterceptor.java:96)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
+ ... 4 more
+Error reading event
+Stream closed by client
+2025-09-04T14:00:27.946-04:00 INFO 41401 --- [java-backend] [ionShutdownHook] [ ] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04T14:00:27.950-04:00 INFO 41401 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
+2025-09-04T14:00:27.956-04:00 INFO 41401 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
+
+🧹 Cleaning up...
diff --git a/java-backend/server-separated.log b/java-backend/server-separated.log
new file mode 100644
index 00000000..d9f6fd1f
--- /dev/null
+++ b/java-backend/server-separated.log
@@ -0,0 +1,111 @@
+🚀 Starting Java Backend Server with OpenTelemetry...
+📋 Loading environment variables from .env file...
+📡 Using DYNATRACE OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+📊 Enabled OTLP export for traces, metrics, and logs
+🔧 Configuration:
+ Port: 3002
+ Environment: development
+ Database: ./database.sqlite
+ Frontend URL: http://localhost:3000
+ OTLP Endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+
+🔍 Checking dependencies...
+✅ Starting with OpenTelemetry instrumentation...
+
+💡 Running Maven with Spring Boot and OpenTelemetry agent...
+[INFO] Scanning for projects...
+[INFO]
+[INFO] ----------------------< com.shopper:java-backend >----------------------
+[INFO] Building Java Backend 1.0.0
+[INFO] from pom.xml
+[INFO] --------------------------------[ jar ]---------------------------------
+[INFO]
+[INFO] --- clean:3.3.2:clean (default-clean) @ java-backend ---
+[INFO] Deleting /Users/suthar/dev/shopper/backend/java-backend/target
+[INFO]
+[INFO] >>> spring-boot:3.2.0:run (default-cli) > test-compile @ java-backend >>>
+[INFO]
+[INFO] --- resources:3.3.1:resources (default-resources) @ java-backend ---
+[INFO] Copying 4 resources from src/main/resources to target/classes
+[INFO] Copying 1 resource from src/main/resources to target/classes
+[INFO]
+[INFO] --- compiler:3.11.0:compile (default-compile) @ java-backend ---
+[INFO] Changes detected - recompiling the module! :source
+[INFO] Compiling 55 source files with javac [debug release 17] to target/classes
+[INFO]
+[INFO] --- resources:3.3.1:testResources (default-testResources) @ java-backend ---
+[INFO] Copying 1 resource from src/test/resources to target/test-classes
+[INFO]
+[INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ java-backend ---
+[INFO] Changes detected - recompiling the module! :dependency
+[INFO] Compiling 7 source files with javac [debug release 17] to target/test-classes
+[INFO]
+[INFO] <<< spring-boot:3.2.0:run (default-cli) < test-compile @ java-backend <<<
+[INFO]
+[INFO]
+[INFO] --- spring-boot:3.2.0:run (default-cli) @ java-backend ---
+[INFO] Attaching agents: []
+OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
+[otel.javaagent 2025-09-04 13:37:29:132 -0400] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 2.17.1
+
+ . ____ _ __ _ _
+ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/ ___)| |_)| | | | | || (_| | ) ) ) )
+ ' |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+ :: Spring Boot :: (v3.2.0)
+
+2025-09-04T13:37:39.153-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Starting JavaBackendApplication using Java 18.0.2 with PID 58237 (/Users/suthar/dev/shopper/backend/java-backend/target/classes started by suthar in /Users/suthar/dev/shopper/backend/java-backend)
+2025-09-04T13:37:39.169-04:00 DEBUG 58237 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Running with Spring Boot v3.2.0, Spring v6.1.1
+2025-09-04T13:37:39.169-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : The following 1 profile is active: "development"
+2025-09-04T13:37:40.429-04:00 INFO 58237 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04T13:37:40.484-04:00 INFO 58237 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 44 ms. Found 3 JPA repository interfaces.
+2025-09-04T13:37:40.487-04:00 INFO 58237 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04T13:37:40.502-04:00 INFO 58237 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 14 ms. Found 2 JPA repository interfaces.
+2025-09-04T13:37:42.279-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 3002 (http)
+2025-09-04T13:37:42.356-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardService : Starting service [Tomcat]
+2025-09-04T13:37:42.357-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16]
+2025-09-04T13:37:42.438-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.a.c.c.C.[Tomcat].[localhost].[/api] : Initializing Spring embedded WebApplicationContext
+2025-09-04T13:37:42.443-04:00 INFO 58237 --- [java-backend] [ main] [ ] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3184 ms
+2025-09-04T13:37:43.466-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
+2025-09-04T13:37:43.529-04:00 INFO 58237 --- [java-backend] [ main] [ ] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.3.1.Final
+2025-09-04T13:37:43.570-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled
+2025-09-04T13:37:43.871-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
+2025-09-04T13:37:43.896-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
+2025-09-04T13:37:45.076-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@1c7094eb
+2025-09-04T13:37:45.087-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
+2025-09-04T13:37:46.174-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
+2025-09-04T13:37:46.249-04:00 INFO 58237 --- [java-backend] [ main] [ ] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04T13:37:46.774-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used.
+2025-09-04T13:37:53.671-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : ✅ OpenFeature with DevCycle provider initialized successfully
+2025-09-04T13:37:53.675-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🔍 DevCycle hooks registered for OpenTelemetry tracing and logging
+Variable called before DevCycleLocalClient has initialized, returning default value
+2025-09-04T13:37:53.718-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'use-neon' evaluated to: false for admin user
+Variable called before DevCycleLocalClient has initialized, returning default value
+2025-09-04T13:37:53.719-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'new-flow' evaluated to: false for admin user
+2025-09-04T13:37:53.782-04:00 WARN 58237 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.OncePerRequestFilter.doFilter(jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,jakarta.servlet.FilterChain) throws jakarta.servlet.ServletException,java.io.IOException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04T13:37:53.782-04:00 WARN 58237 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.GenericFilterBean.init(jakarta.servlet.FilterConfig) throws jakarta.servlet.ServletException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04T13:37:53.882-04:00 DEBUG 58237 --- [java-backend] [ main] [ ] c.s.security.JwtAuthenticationFilter : Filter 'jwtAuthenticationFilter' configured for use
+2025-09-04T13:37:53.883-04:00 DEBUG 58237 --- [java-backend] [ main] [ ] o.s.w.f.ServerHttpObservationFilter : Filter 'webMvcObservationFilter' configured for use
+2025-09-04T13:37:53.928-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 📊 OpenTelemetry Java Agent enabled for service: java-backend v1.0.0 (development)
+2025-09-04T13:37:53.928-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 🔗 OpenTelemetry configured for OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+2025-09-04T13:37:53.928-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 🔐 OTLP headers configured for authentication
+2025-09-04T13:37:53.928-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : ✅ Using OpenTelemetry Java Agent for auto-instrumentation
+2025-09-04T13:37:54.956-04:00 WARN 58237 --- [java-backend] [ main] [ ] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
+2025-09-04T13:37:55.552-04:00 DEBUG 58237 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerMapping : 49 mappings in 'requestMappingHandlerMapping'
+2025-09-04T13:37:55.872-04:00 DEBUG 58237 --- [java-backend] [ main] [ ] o.s.w.s.handler.SimpleUrlHandlerMapping : Patterns [/webjars/**, /**, /swagger-ui*/*swagger-initializer.js, /swagger-ui*/**] in 'resourceHandlerMapping'
+2025-09-04T13:37:56.111-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.s.b.a.e.web.EndpointLinksResolver : Exposing 3 endpoint(s) beneath base path '/actuator'
+2025-09-04T13:37:56.300-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@365bd240, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@c709daf, org.springframework.security.web.context.SecurityContextHolderFilter@dd8608, org.springframework.security.web.header.HeaderWriterFilter@6210d7de, org.springframework.web.filter.CorsFilter@64250411, org.springframework.security.web.authentication.logout.LogoutFilter@1f3f734f, com.shopper.security.JwtAuthenticationFilter@214c97e1, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@51da0191, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@5354846b, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1180e245, org.springframework.security.web.session.SessionManagementFilter@61b9f9a1, org.springframework.security.web.access.ExceptionTranslationFilter@3cd0df14, org.springframework.security.web.access.intercept.AuthorizationFilter@13eb146f]
+2025-09-04T13:37:56.494-04:00 DEBUG 58237 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
+2025-09-04T13:37:56.542-04:00 DEBUG 58237 --- [java-backend] [ main] [ ] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice
+2025-09-04T13:37:57.045-04:00 INFO 58237 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 3002 (http) with context path '/api'
+2025-09-04T13:37:57.078-04:00 INFO 58237 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Started JavaBackendApplication in 18.811 seconds (process running for 28.402)
+🚀 Java Backend Server is running!
+Error reading event
+Stream closed by client
+2025-09-04T13:39:13.677-04:00 INFO 58237 --- [java-backend] [ionShutdownHook] [ ] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04T13:39:13.680-04:00 INFO 58237 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
+2025-09-04T13:39:13.687-04:00 INFO 58237 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
+
+🧹 Cleaning up...
diff --git a/java-backend/server-spec-logs.log b/java-backend/server-spec-logs.log
new file mode 100644
index 00000000..344308cd
--- /dev/null
+++ b/java-backend/server-spec-logs.log
@@ -0,0 +1,128 @@
+🚀 Starting Java Backend Server with OpenTelemetry...
+📋 Loading environment variables from .env file...
+📡 Using DYNATRACE OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+📊 Enabled OTLP export for traces, metrics, and logs
+🔧 Configuration:
+ Port: 3002
+ Environment: development
+ Database: ./database.sqlite
+ Frontend URL: http://localhost:3000
+ OTLP Endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+
+🔍 Checking dependencies...
+✅ Starting with OpenTelemetry instrumentation...
+
+💡 Running Maven with Spring Boot and OpenTelemetry agent...
+[INFO] Scanning for projects...
+[INFO]
+[INFO] ----------------------< com.shopper:java-backend >----------------------
+[INFO] Building Java Backend 1.0.0
+[INFO] from pom.xml
+[INFO] --------------------------------[ jar ]---------------------------------
+[INFO]
+[INFO] --- clean:3.3.2:clean (default-clean) @ java-backend ---
+[INFO] Deleting /Users/suthar/dev/shopper/backend/java-backend/target
+[INFO]
+[INFO] >>> spring-boot:3.2.0:run (default-cli) > test-compile @ java-backend >>>
+[INFO]
+[INFO] --- resources:3.3.1:resources (default-resources) @ java-backend ---
+[INFO] Copying 4 resources from src/main/resources to target/classes
+[INFO] Copying 1 resource from src/main/resources to target/classes
+[INFO]
+[INFO] --- compiler:3.11.0:compile (default-compile) @ java-backend ---
+[INFO] Changes detected - recompiling the module! :source
+[INFO] Compiling 55 source files with javac [debug release 17] to target/classes
+[INFO]
+[INFO] --- resources:3.3.1:testResources (default-testResources) @ java-backend ---
+[INFO] Copying 1 resource from src/test/resources to target/test-classes
+[INFO]
+[INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ java-backend ---
+[INFO] Changes detected - recompiling the module! :dependency
+[INFO] Compiling 7 source files with javac [debug release 17] to target/test-classes
+[INFO]
+[INFO] <<< spring-boot:3.2.0:run (default-cli) < test-compile @ java-backend <<<
+[INFO]
+[INFO]
+[INFO] --- spring-boot:3.2.0:run (default-cli) @ java-backend ---
+[INFO] Attaching agents: []
+OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
+[otel.javaagent 2025-09-04 13:50:49:236 -0400] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 2.17.1
+
+ . ____ _ __ _ _
+ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/ ___)| |_)| | | | | || (_| | ) ) ) )
+ ' |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+ :: Spring Boot :: (v3.2.0)
+
+2025-09-04T13:50:59.317-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Starting JavaBackendApplication using Java 18.0.2 with PID 9150 (/Users/suthar/dev/shopper/backend/java-backend/target/classes started by suthar in /Users/suthar/dev/shopper/backend/java-backend)
+2025-09-04T13:50:59.343-04:00 DEBUG 9150 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Running with Spring Boot v3.2.0, Spring v6.1.1
+2025-09-04T13:50:59.344-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : The following 1 profile is active: "development"
+2025-09-04T13:51:00.823-04:00 INFO 9150 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04T13:51:00.874-04:00 INFO 9150 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 42 ms. Found 3 JPA repository interfaces.
+2025-09-04T13:51:00.877-04:00 INFO 9150 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04T13:51:00.891-04:00 INFO 9150 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 13 ms. Found 2 JPA repository interfaces.
+2025-09-04T13:51:02.894-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 3002 (http)
+2025-09-04T13:51:02.921-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardService : Starting service [Tomcat]
+2025-09-04T13:51:02.921-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16]
+2025-09-04T13:51:02.990-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.a.c.c.C.[Tomcat].[localhost].[/api] : Initializing Spring embedded WebApplicationContext
+2025-09-04T13:51:02.994-04:00 INFO 9150 --- [java-backend] [ main] [ ] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3562 ms
+2025-09-04T13:51:04.273-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
+2025-09-04T13:51:04.347-04:00 INFO 9150 --- [java-backend] [ main] [ ] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.3.1.Final
+2025-09-04T13:51:04.404-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled
+2025-09-04T13:51:04.919-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
+2025-09-04T13:51:04.952-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
+2025-09-04T13:51:05.644-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@22a05923
+2025-09-04T13:51:05.658-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
+2025-09-04T13:51:06.932-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
+2025-09-04T13:51:07.030-04:00 INFO 9150 --- [java-backend] [ main] [ ] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04T13:51:07.636-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used.
+2025-09-04T13:51:14.574-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : ✅ OpenFeature with DevCycle provider initialized successfully
+2025-09-04T13:51:14.578-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🔍 DevCycle hooks registered for OpenTelemetry tracing and logging
+Variable called before DevCycleLocalClient has initialized, returning default value
+2025-09-04T13:51:14.643-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'use-neon' evaluated to: false for admin user
+Variable called before DevCycleLocalClient has initialized, returning default value
+2025-09-04T13:51:14.644-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'new-flow' evaluated to: false for admin user
+2025-09-04T13:51:14.725-04:00 WARN 9150 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.OncePerRequestFilter.doFilter(jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,jakarta.servlet.FilterChain) throws jakarta.servlet.ServletException,java.io.IOException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04T13:51:14.725-04:00 WARN 9150 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.GenericFilterBean.init(jakarta.servlet.FilterConfig) throws jakarta.servlet.ServletException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04T13:51:14.859-04:00 DEBUG 9150 --- [java-backend] [ main] [ ] c.s.security.JwtAuthenticationFilter : Filter 'jwtAuthenticationFilter' configured for use
+2025-09-04T13:51:14.860-04:00 DEBUG 9150 --- [java-backend] [ main] [ ] o.s.w.f.ServerHttpObservationFilter : Filter 'webMvcObservationFilter' configured for use
+2025-09-04T13:51:14.904-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 📊 OpenTelemetry Java Agent enabled for service: java-backend v1.0.0 (development)
+2025-09-04T13:51:14.905-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 🔗 OpenTelemetry configured for OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+2025-09-04T13:51:14.905-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 🔐 OTLP headers configured for authentication
+2025-09-04T13:51:14.905-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : ✅ Using OpenTelemetry Java Agent for auto-instrumentation
+2025-09-04T13:51:15.941-04:00 WARN 9150 --- [java-backend] [ main] [ ] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
+2025-09-04T13:51:16.522-04:00 DEBUG 9150 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerMapping : 49 mappings in 'requestMappingHandlerMapping'
+2025-09-04T13:51:16.843-04:00 DEBUG 9150 --- [java-backend] [ main] [ ] o.s.w.s.handler.SimpleUrlHandlerMapping : Patterns [/webjars/**, /**, /swagger-ui*/*swagger-initializer.js, /swagger-ui*/**] in 'resourceHandlerMapping'
+2025-09-04T13:51:17.057-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.s.b.a.e.web.EndpointLinksResolver : Exposing 3 endpoint(s) beneath base path '/actuator'
+2025-09-04T13:51:17.142-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@64250411, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@7921e6f3, org.springframework.security.web.context.SecurityContextHolderFilter@5cf6c704, org.springframework.security.web.header.HeaderWriterFilter@605d010e, org.springframework.web.filter.CorsFilter@1180e245, org.springframework.security.web.authentication.logout.LogoutFilter@4766d49a, com.shopper.security.JwtAuthenticationFilter@377db4f4, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@34afee7c, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@7f0ec4e9, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@555c0290, org.springframework.security.web.session.SessionManagementFilter@768f925a, org.springframework.security.web.access.ExceptionTranslationFilter@13f065ac, org.springframework.security.web.access.intercept.AuthorizationFilter@13b2e10c]
+2025-09-04T13:51:17.431-04:00 DEBUG 9150 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
+2025-09-04T13:51:17.486-04:00 DEBUG 9150 --- [java-backend] [ main] [ ] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice
+2025-09-04T13:51:18.063-04:00 INFO 9150 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 3002 (http) with context path '/api'
+2025-09-04T13:51:18.088-04:00 INFO 9150 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Started JavaBackendApplication in 19.593 seconds (process running for 29.274)
+🚀 Java Backend Server is running!
+[otel.javaagent 2025-09-04 13:51:25:941 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: timeout
+java.io.InterruptedIOException: timeout
+ at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
+ at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
+ at okhttp3.internal.connection.RealCall.noMoreExchanges$okhttp(RealCall.kt:325)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:209)
+ at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
+ at java.base/java.lang.Thread.run(Thread.java:833)
+Caused by: java.io.IOException: Canceled
+ at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:72)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at io.opentelemetry.exporter.sender.okhttp.internal.RetryInterceptor.intercept(RetryInterceptor.java:96)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
+ ... 4 more
+Error reading event
+Stream closed by client
+2025-09-04T13:51:47.224-04:00 INFO 9150 --- [java-backend] [ionShutdownHook] [ ] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04T13:51:47.226-04:00 INFO 9150 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
+2025-09-04T13:51:47.232-04:00 INFO 9150 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
+
+🧹 Cleaning up...
diff --git a/java-backend/server.log b/java-backend/server.log
index 98ecea98..36d889fe 100644
--- a/java-backend/server.log
+++ b/java-backend/server.log
@@ -1,8 +1,7 @@
🚀 Starting Java Backend Server with OpenTelemetry...
📋 Loading environment variables from .env file...
-./run-with-otel.sh: line 9: export: `#': not a valid identifier
-./run-with-otel.sh: line 9: export: `/': not a valid identifier
📡 Using DYNATRACE OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+📊 Enabled OTLP export for traces, metrics, and logs
🔧 Configuration:
Port: 3002
Environment: development
@@ -10,8 +9,10 @@
Frontend URL: http://localhost:3000
OTLP Endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+🔍 Checking dependencies...
✅ Starting with OpenTelemetry instrumentation...
+💡 Running Maven with Spring Boot and OpenTelemetry agent...
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< com.shopper:java-backend >----------------------
@@ -19,6 +20,9 @@
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
+[INFO] --- clean:3.3.2:clean (default-clean) @ java-backend ---
+[INFO] Deleting /Users/suthar/dev/shopper/backend/java-backend/target
+[INFO]
[INFO] >>> spring-boot:3.2.0:run (default-cli) > test-compile @ java-backend >>>
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ java-backend ---
@@ -26,13 +30,15 @@
[INFO] Copying 1 resource from src/main/resources to target/classes
[INFO]
[INFO] --- compiler:3.11.0:compile (default-compile) @ java-backend ---
-[INFO] Nothing to compile - all classes are up to date
+[INFO] Changes detected - recompiling the module! :source
+[INFO] Compiling 54 source files with javac [debug release 17] to target/classes
[INFO]
[INFO] --- resources:3.3.1:testResources (default-testResources) @ java-backend ---
[INFO] Copying 1 resource from src/test/resources to target/test-classes
[INFO]
[INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ java-backend ---
-[INFO] Nothing to compile - all classes are up to date
+[INFO] Changes detected - recompiling the module! :dependency
+[INFO] Compiling 7 source files with javac [debug release 17] to target/test-classes
[INFO]
[INFO] <<< spring-boot:3.2.0:run (default-cli) < test-compile @ java-backend <<<
[INFO]
@@ -40,7 +46,7 @@
[INFO] --- spring-boot:3.2.0:run (default-cli) @ java-backend ---
[INFO] Attaching agents: []
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
-[otel.javaagent 2025-08-11 17:43:46:460 -0400] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 2.17.1
+[otel.javaagent 2025-09-04 12:59:23:755 -0400] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 2.17.1
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
@@ -50,318 +56,90 @@ OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader clas
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.2.0)
-2025-08-11T17:43:56.270-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Starting JavaBackendApplication using Java 18.0.2 with PID 9417 (/Users/suthar/dev/shopper/backend/java-backend/target/classes started by suthar in /Users/suthar/dev/shopper/backend/java-backend)
-2025-08-11T17:43:56.284-04:00 DEBUG 9417 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Running with Spring Boot v3.2.0, Spring v6.1.1
-2025-08-11T17:43:56.285-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : The following 1 profile is active: "development"
-2025-08-11T17:43:57.683-04:00 INFO 9417 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
-2025-08-11T17:43:57.742-04:00 INFO 9417 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 47 ms. Found 3 JPA repository interfaces.
-2025-08-11T17:43:57.745-04:00 INFO 9417 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
-2025-08-11T17:43:57.759-04:00 INFO 9417 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 13 ms. Found 2 JPA repository interfaces.
-2025-08-11T17:43:59.197-04:00 WARN 9417 --- [java-backend] [ main] [ ] trationDelegate$BeanPostProcessorChecker : Bean 'io.opentelemetry.instrumentation.spring.autoconfigure.instrumentation.web.SpringWebInstrumentationAutoConfiguration' of type [io.opentelemetry.instrumentation.spring.autoconfigure.instrumentation.web.SpringWebInstrumentationAutoConfiguration$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). The currently created BeanPostProcessor [otelRestTemplateBeanPostProcessor] is declared through a non-static factory method on that class; consider declaring it as static instead.
-2025-08-11T17:43:59.228-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 🔗 OpenTelemetry configured for Dynatrace endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
-2025-08-11T17:43:59.230-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 📊 OpenTelemetry Auto-Instrumentation enabled for service: java-backend v1.0.0 (development)
-2025-08-11T17:43:59.231-04:00 WARN 9417 --- [java-backend] [ main] [ ] trationDelegate$BeanPostProcessorChecker : Bean 'openTelemetryConfig' of type [com.shopper.config.OpenTelemetryConfig$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [otelRestTemplateBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
-2025-08-11T17:43:59.337-04:00 WARN 9417 --- [java-backend] [ main] [ ] trationDelegate$BeanPostProcessorChecker : Bean 'openTelemetry' of type [io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [otelRestTemplateBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
-2025-08-11T17:44:00.284-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 3002 (http)
-2025-08-11T17:44:00.320-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardService : Starting service [Tomcat]
-2025-08-11T17:44:00.321-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16]
-2025-08-11T17:44:00.407-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.a.c.c.C.[Tomcat].[localhost].[/api] : Initializing Spring embedded WebApplicationContext
-2025-08-11T17:44:00.411-04:00 INFO 9417 --- [java-backend] [ main] [ ] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4050 ms
-2025-08-11T17:44:01.307-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
-2025-08-11T17:44:01.377-04:00 INFO 9417 --- [java-backend] [ main] [ ] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.3.1.Final
-2025-08-11T17:44:01.419-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled
-2025-08-11T17:44:01.771-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
-2025-08-11T17:44:01.804-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
-2025-08-11T17:44:02.371-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@1a4fa5df
-2025-08-11T17:44:02.383-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
-2025-08-11T17:44:03.559-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
-2025-08-11T17:44:03.645-04:00 INFO 9417 --- [java-backend] [ main] [ ] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
-2025-08-11T17:44:04.227-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used.
-2025-08-11T17:44:11.160-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : ✅ OpenFeature with DevCycle provider initialized successfully
-2025-08-11T17:44:11.162-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🔍 DevCycle hook registered for telemetry spans
+2025-09-04T12:59:33.545-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Starting JavaBackendApplication using Java 18.0.2 with PID 36126 (/Users/suthar/dev/shopper/backend/java-backend/target/classes started by suthar in /Users/suthar/dev/shopper/backend/java-backend)
+2025-09-04T12:59:33.558-04:00 DEBUG 36126 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Running with Spring Boot v3.2.0, Spring v6.1.1
+2025-09-04T12:59:33.559-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : The following 1 profile is active: "development"
+2025-09-04T12:59:34.789-04:00 INFO 36126 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04T12:59:34.834-04:00 INFO 36126 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 36 ms. Found 3 JPA repository interfaces.
+2025-09-04T12:59:34.836-04:00 INFO 36126 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-09-04T12:59:34.850-04:00 INFO 36126 --- [java-backend] [ main] [ ] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 13 ms. Found 2 JPA repository interfaces.
+2025-09-04T12:59:36.578-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 3002 (http)
+2025-09-04T12:59:36.662-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardService : Starting service [Tomcat]
+2025-09-04T12:59:36.663-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16]
+2025-09-04T12:59:36.742-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.a.c.c.C.[Tomcat].[localhost].[/api] : Initializing Spring embedded WebApplicationContext
+2025-09-04T12:59:36.745-04:00 INFO 36126 --- [java-backend] [ main] [ ] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3111 ms
+2025-09-04T12:59:37.663-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
+2025-09-04T12:59:37.729-04:00 INFO 36126 --- [java-backend] [ main] [ ] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.3.1.Final
+2025-09-04T12:59:37.767-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled
+2025-09-04T12:59:38.225-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
+2025-09-04T12:59:38.276-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
+2025-09-04T12:59:41.762-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@71897380
+2025-09-04T12:59:41.775-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
+2025-09-04T12:59:42.876-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
+2025-09-04T12:59:42.966-04:00 INFO 36126 --- [java-backend] [ main] [ ] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04T12:59:43.542-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used.
+2025-09-04T12:59:50.424-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : ✅ OpenFeature with DevCycle provider initialized successfully
+2025-09-04T12:59:50.428-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🔍 DevCycle hook registered for OpenTelemetry tracing
Variable called before DevCycleLocalClient has initialized, returning default value
-2025-08-11T17:44:11.215-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'use-neon' evaluated to: false for admin user
+2025-09-04T12:59:50.472-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'use-neon' evaluated to: false for admin user
Variable called before DevCycleLocalClient has initialized, returning default value
-2025-08-11T17:44:11.216-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'new-flow' evaluated to: false for admin user
-2025-08-11T17:44:11.305-04:00 WARN 9417 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.OncePerRequestFilter.doFilter(jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,jakarta.servlet.FilterChain) throws jakarta.servlet.ServletException,java.io.IOException] because it is marked as final, consider using interface-based JDK proxies instead.
-2025-08-11T17:44:11.306-04:00 WARN 9417 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.GenericFilterBean.init(jakarta.servlet.FilterConfig) throws jakarta.servlet.ServletException] because it is marked as final, consider using interface-based JDK proxies instead.
-2025-08-11T17:44:11.727-04:00 DEBUG 9417 --- [java-backend] [ main] [ ] c.s.security.JwtAuthenticationFilter : Filter 'jwtAuthenticationFilter' configured for use
-2025-08-11T17:44:11.730-04:00 DEBUG 9417 --- [java-backend] [ main] [ ] o.s.w.f.ServerHttpObservationFilter : Filter 'webMvcObservationFilter' configured for use
-2025-08-11T17:44:12.593-04:00 WARN 9417 --- [java-backend] [ main] [ ] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
-2025-08-11T17:44:13.228-04:00 DEBUG 9417 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerMapping : 49 mappings in 'requestMappingHandlerMapping'
-2025-08-11T17:44:13.478-04:00 DEBUG 9417 --- [java-backend] [ main] [ ] o.s.w.s.handler.SimpleUrlHandlerMapping : Patterns [/webjars/**, /**, /swagger-ui*/*swagger-initializer.js, /swagger-ui*/**] in 'resourceHandlerMapping'
-2025-08-11T17:44:13.691-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.s.b.a.e.web.EndpointLinksResolver : Exposing 3 endpoint(s) beneath base path '/actuator'
-2025-08-11T17:44:13.776-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2bc1cc26, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@ad77547, org.springframework.security.web.context.SecurityContextHolderFilter@2c94326f, org.springframework.security.web.header.HeaderWriterFilter@56211d6b, org.springframework.web.filter.CorsFilter@53b7e674, org.springframework.security.web.authentication.logout.LogoutFilter@7779d208, com.shopper.security.JwtAuthenticationFilter@57ae2f11, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@3e8fb5cb, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@4257b876, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@521359ad, org.springframework.security.web.session.SessionManagementFilter@c844d52, org.springframework.security.web.access.ExceptionTranslationFilter@62c25a94, org.springframework.security.web.access.intercept.AuthorizationFilter@20a72653]
-2025-08-11T17:44:13.976-04:00 DEBUG 9417 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
-2025-08-11T17:44:14.020-04:00 DEBUG 9417 --- [java-backend] [ main] [ ] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice
-2025-08-11T17:44:14.724-04:00 INFO 9417 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 3002 (http) with context path '/api'
-2025-08-11T17:44:14.752-04:00 INFO 9417 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Started JavaBackendApplication in 19.292 seconds (process running for 28.808)
+2025-09-04T12:59:50.473-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.config.OpenFeatureConfig : 🎛️ DevCycle feature flag 'new-flow' evaluated to: false for admin user
+2025-09-04T12:59:50.545-04:00 WARN 36126 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.OncePerRequestFilter.doFilter(jakarta.servlet.ServletRequest,jakarta.servlet.ServletResponse,jakarta.servlet.FilterChain) throws jakarta.servlet.ServletException,java.io.IOException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04T12:59:50.545-04:00 WARN 36126 --- [java-backend] [ main] [ ] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.web.filter.GenericFilterBean.init(jakarta.servlet.FilterConfig) throws jakarta.servlet.ServletException] because it is marked as final, consider using interface-based JDK proxies instead.
+2025-09-04T12:59:50.642-04:00 DEBUG 36126 --- [java-backend] [ main] [ ] c.s.security.JwtAuthenticationFilter : Filter 'jwtAuthenticationFilter' configured for use
+2025-09-04T12:59:50.643-04:00 DEBUG 36126 --- [java-backend] [ main] [ ] o.s.w.f.ServerHttpObservationFilter : Filter 'webMvcObservationFilter' configured for use
+2025-09-04T12:59:50.686-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 📊 OpenTelemetry Java Agent enabled for service: java-backend v1.0.0 (development)
+2025-09-04T12:59:50.686-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 🔗 OpenTelemetry configured for OTLP endpoint: https://xtc47953.live.dynatrace.com/api/v2/otlp
+2025-09-04T12:59:50.686-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : 🔐 OTLP headers configured for authentication
+2025-09-04T12:59:50.686-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.config.OpenTelemetryConfig : ✅ Using OpenTelemetry Java Agent for auto-instrumentation
+2025-09-04T12:59:51.436-04:00 WARN 36126 --- [java-backend] [ main] [ ] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
+2025-09-04T12:59:51.814-04:00 DEBUG 36126 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerMapping : 49 mappings in 'requestMappingHandlerMapping'
+2025-09-04T12:59:52.017-04:00 DEBUG 36126 --- [java-backend] [ main] [ ] o.s.w.s.handler.SimpleUrlHandlerMapping : Patterns [/webjars/**, /**, /swagger-ui*/*swagger-initializer.js, /swagger-ui*/**] in 'resourceHandlerMapping'
+2025-09-04T12:59:52.211-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.s.b.a.e.web.EndpointLinksResolver : Exposing 3 endpoint(s) beneath base path '/actuator'
+2025-09-04T12:59:52.287-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@69f4cf0, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4ce66c79, org.springframework.security.web.context.SecurityContextHolderFilter@947e589, org.springframework.security.web.header.HeaderWriterFilter@54295e7c, org.springframework.web.filter.CorsFilter@17f6db98, org.springframework.security.web.authentication.logout.LogoutFilter@d99eb6, com.shopper.security.JwtAuthenticationFilter@71377123, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1f3f734f, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@46df7d9b, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7fd5857c, org.springframework.security.web.session.SessionManagementFilter@2d5116c6, org.springframework.security.web.access.ExceptionTranslationFilter@232dee99, org.springframework.security.web.access.intercept.AuthorizationFilter@1dfbf67a]
+2025-09-04T12:59:52.428-04:00 DEBUG 36126 --- [java-backend] [ main] [ ] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
+2025-09-04T12:59:52.467-04:00 DEBUG 36126 --- [java-backend] [ main] [ ] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 1 @ExceptionHandler, 1 ResponseBodyAdvice
+2025-09-04T12:59:52.953-04:00 INFO 36126 --- [java-backend] [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 3002 (http) with context path '/api'
+2025-09-04T12:59:52.981-04:00 INFO 36126 --- [java-backend] [ main] [ ] com.shopper.JavaBackendApplication : Started JavaBackendApplication in 20.111 seconds (process running for 29.641)
🚀 Java Backend Server is running!
-2025-08-11T17:44:14.841-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-1] [ ] o.a.c.c.C.[Tomcat].[localhost].[/api] : Initializing Spring DispatcherServlet 'dispatcherServlet'
-2025-08-11T17:44:14.842-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-1] [ ] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
-2025-08-11T17:44:14.842-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [ ] o.s.web.servlet.DispatcherServlet : Detected StandardServletMultipartResolver
-2025-08-11T17:44:14.842-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [ ] o.s.web.servlet.DispatcherServlet : Detected AcceptHeaderLocaleResolver
-2025-08-11T17:44:14.842-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [ ] o.s.web.servlet.DispatcherServlet : Detected FixedThemeResolver
-2025-08-11T17:44:14.843-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [ ] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator@14a33025
-2025-08-11T17:44:14.846-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [ ] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.support.SessionFlashMapManager@5ac79bd5
-2025-08-11T17:44:14.847-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [ ] o.s.web.servlet.DispatcherServlet : enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data
-2025-08-11T17:44:14.847-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-1] [ ] o.s.web.servlet.DispatcherServlet : Completed initialization in 5 ms
-2025-08-11T17:44:14.921-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-395f5f9b2909a887] o.s.security.web.FilterChainProxy : Securing GET /health
-[otel.javaagent 2025-08-11 17:44:14:954 -0400] [http-nio-3002-exec-1] WARN io.opentelemetry.sdk.metrics.SdkMeter - Instrument name "spring.security.filterchains.JwtAuthenticationFilter$$SpringCGLIB$$0.before" is invalid, returning noop instrument. Instrument names must consist of 255 or fewer characters including alphanumeric, _, ., -, /, and start with a letter.
-java.lang.AssertionError
- at io.opentelemetry.sdk.metrics.SdkMeter.checkValidInstrumentName(SdkMeter.java:324)
- at io.opentelemetry.sdk.metrics.SdkMeter.counterBuilder(SdkMeter.java:160)
- at io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_31.incubator.metrics.ApplicationMeter131.counterBuilder(ApplicationMeter131.java:25)
- at io.opentelemetry.instrumentation.micrometer.v1_5.OpenTelemetryCounter.(OpenTelemetryCounter.java:36)
- at io.opentelemetry.instrumentation.micrometer.v1_5.OpenTelemetryMeterRegistry.newCounter(OpenTelemetryMeterRegistry.java:79)
- at io.micrometer.core.instrument.MeterRegistry.lambda$registerMeterIfNecessary$5(MeterRegistry.java:570)
- at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:625)
- at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:577)
- at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:570)
- at io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:299)
- at io.micrometer.core.instrument.Counter$Builder.register(Counter.java:150)
- at io.micrometer.core.instrument.Counter$Builder.register(Counter.java:146)
- at io.micrometer.core.instrument.observation.DefaultMeterObservationHandler.onEvent(DefaultMeterObservationHandler.java:76)
- at io.micrometer.tracing.handler.TracingAwareMeterObservationHandler.onEvent(TracingAwareMeterObservationHandler.java:64)
- at io.micrometer.observation.ObservationHandler$FirstMatchingCompositeObservationHandler.onEvent(ObservationHandler.java:165)
- at io.micrometer.observation.SimpleObservation.notifyOnEvent(SimpleObservation.java:228)
- at io.micrometer.observation.SimpleObservation.event(SimpleObservation.java:145)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:239)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
- at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
- at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
- at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
- at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
- at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)
- at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at io.opentelemetry.instrumentation.spring.webmvc.v6_0.WebMvcTelemetryProducingFilter.doFilterInternal(WebMvcTelemetryProducingFilter.java:51)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
- at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
- at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+[otel.javaagent 2025-09-04 12:59:59:899 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export logs. The request could not be executed. Full error message: timeout
+java.io.InterruptedIOException: timeout
+ at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
+ at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
+ at okhttp3.internal.connection.RealCall.noMoreExchanges$okhttp(RealCall.kt:325)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:209)
+ at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
-2025-08-11T17:44:14.966-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-ff88362f33113900] c.s.security.JwtAuthenticationFilter : No Authorization header or Bearer token found
-2025-08-11T17:44:14.966-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-ff88362f33113900] c.s.security.JwtAuthenticationFilter : No username extracted from JWT token
-2025-08-11T17:44:14.974-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-ff88362f33113900] o.s.s.w.a.AnonymousAuthenticationFilter : Set SecurityContextHolder to anonymous SecurityContext
-2025-08-11T17:44:14.977-04:00 WARN 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-64713d00051009b7] o.s.w.s.h.HandlerMappingIntrospector : Cache miss for REQUEST dispatch to '/api/health' (previous null). Performing MatchableHandlerMapping lookup. This is logged once only at WARN level, and every time at TRACE.
-2025-08-11T17:44:14.996-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-bf5f0c3815201717] o.s.security.web.FilterChainProxy : Secured GET /health
-2025-08-11T17:44:14.998-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-bf5f0c3815201717] o.s.web.servlet.DispatcherServlet : GET "/api/health", parameters={}
-2025-08-11T17:44:15.000-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-bf5f0c3815201717] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.shopper.controller.HealthController#health()
-2025-08-11T17:44:15.000-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-bf5f0c3815201717] c.s.interceptor.LoggingInterceptor : 🔄 GET /api/health [Anonymous] - Request started
-2025-08-11T17:44:15.033-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-bf5f0c3815201717] m.m.a.RequestResponseBodyMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json]
-2025-08-11T17:44:15.035-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-bf5f0c3815201717] m.m.a.RequestResponseBodyMethodProcessor : Writing [{status=UP, timestamp=1754948655018}]
-2025-08-11T17:44:15.052-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-bf5f0c3815201717] c.s.interceptor.LoggingInterceptor : ✅ GET /api/health [Anonymous] - 200 (52ms)
-2025-08-11T17:44:15.053-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-1] [b8590136d45ba9b0d6409db41a3fb612-bf5f0c3815201717] o.s.web.servlet.DispatcherServlet : Completed 200 OK
-[otel.javaagent 2025-08-11 17:44:15:056 -0400] [http-nio-3002-exec-1] WARN io.opentelemetry.sdk.metrics.SdkMeter - Instrument name "spring.security.filterchains.JwtAuthenticationFilter$$SpringCGLIB$$0.after" is invalid, returning noop instrument. Instrument names must consist of 255 or fewer characters including alphanumeric, _, ., -, /, and start with a letter.
-java.lang.AssertionError
- at io.opentelemetry.sdk.metrics.SdkMeter.checkValidInstrumentName(SdkMeter.java:324)
- at io.opentelemetry.sdk.metrics.SdkMeter.counterBuilder(SdkMeter.java:160)
- at io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_31.incubator.metrics.ApplicationMeter131.counterBuilder(ApplicationMeter131.java:25)
- at io.opentelemetry.instrumentation.micrometer.v1_5.OpenTelemetryCounter.(OpenTelemetryCounter.java:36)
- at io.opentelemetry.instrumentation.micrometer.v1_5.OpenTelemetryMeterRegistry.newCounter(OpenTelemetryMeterRegistry.java:79)
- at io.micrometer.core.instrument.MeterRegistry.lambda$registerMeterIfNecessary$5(MeterRegistry.java:570)
- at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:625)
- at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:577)
- at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:570)
- at io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:299)
- at io.micrometer.core.instrument.Counter$Builder.register(Counter.java:150)
- at io.micrometer.core.instrument.Counter$Builder.register(Counter.java:146)
- at io.micrometer.core.instrument.observation.DefaultMeterObservationHandler.onEvent(DefaultMeterObservationHandler.java:76)
- at io.micrometer.tracing.handler.TracingAwareMeterObservationHandler.onEvent(TracingAwareMeterObservationHandler.java:64)
- at io.micrometer.observation.ObservationHandler$FirstMatchingCompositeObservationHandler.onEvent(ObservationHandler.java:165)
- at io.micrometer.observation.SimpleObservation.notifyOnEvent(SimpleObservation.java:228)
- at io.micrometer.observation.SimpleObservation.event(SimpleObservation.java:145)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:247)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
- at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
- at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
- at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
- at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)
- at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)
- at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
- at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
- at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
- at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)
- at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at io.opentelemetry.instrumentation.spring.webmvc.v6_0.WebMvcTelemetryProducingFilter.doFilterInternal(WebMvcTelemetryProducingFilter.java:51)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.servlet.v6_0.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:78)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
- at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
- at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+Caused by: java.io.IOException: Canceled
+ at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:72)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at io.opentelemetry.exporter.sender.okhttp.internal.RetryInterceptor.intercept(RetryInterceptor.java:96)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
+ ... 4 more
+DevCycle Events error: timeout
+DevCycle Error Publishing Events: 500
+[otel.javaagent 2025-09-04 13:00:19:631 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: timeout
+java.io.InterruptedIOException: timeout
+ at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
+ at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
+ at okhttp3.internal.connection.RealCall.noMoreExchanges$okhttp(RealCall.kt:325)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:209)
+ at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
-2025-08-11T17:44:23.319-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-66c3818fb02da374] o.s.security.web.FilterChainProxy : Securing POST /auth/login
-2025-08-11T17:44:23.326-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-69c4eb7039303924] o.s.s.w.a.AnonymousAuthenticationFilter : Set SecurityContextHolder to anonymous SecurityContext
-2025-08-11T17:44:23.329-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-f3a1d7054cdbdcf2] o.s.security.web.FilterChainProxy : Secured POST /auth/login
-2025-08-11T17:44:23.330-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-f3a1d7054cdbdcf2] o.s.web.servlet.DispatcherServlet : POST "/api/auth/login", parameters={}
-2025-08-11T17:44:23.330-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-f3a1d7054cdbdcf2] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.shopper.controller.AuthController#login(LoginDto)
-2025-08-11T17:44:23.330-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-f3a1d7054cdbdcf2] c.s.interceptor.LoggingInterceptor : 🔄 POST /api/auth/login [Anonymous] - Request started
-2025-08-11T17:44:23.350-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-f3a1d7054cdbdcf2] o.s.web.method.HandlerMethod : Could not resolve parameter [0] in public org.springframework.http.ResponseEntity com.shopper.controller.AuthController.login(com.shopper.dto.LoginDto): JSON parse error: Unexpected character ('\' (code 92)): was expecting double-quote to start field name
-2025-08-11T17:44:23.354-04:00 WARN 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-f3a1d7054cdbdcf2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character ('\' (code 92)): was expecting double-quote to start field name]
-2025-08-11T17:44:23.354-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-f3a1d7054cdbdcf2] c.s.interceptor.LoggingInterceptor : ✅ POST /api/auth/login [Anonymous] - 400 (24ms)
-2025-08-11T17:44:23.354-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-f3a1d7054cdbdcf2] o.s.web.servlet.DispatcherServlet : Completed 400 BAD_REQUEST
-2025-08-11T17:44:23.367-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-d9cb434f04837930] o.s.security.web.FilterChainProxy : Securing POST /error
-2025-08-11T17:44:23.375-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-0d38432b89a2b7f0] o.s.security.web.FilterChainProxy : Secured POST /error
-2025-08-11T17:44:23.376-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-0d38432b89a2b7f0] o.s.web.servlet.DispatcherServlet : "ERROR" dispatch for POST "/api/error", parameters={}
-2025-08-11T17:44:23.377-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-0d38432b89a2b7f0] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
-2025-08-11T17:44:23.377-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-0d38432b89a2b7f0] o.s.s.w.a.AnonymousAuthenticationFilter : Set SecurityContextHolder to anonymous SecurityContext
-2025-08-11T17:44:23.377-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-0d38432b89a2b7f0] c.s.interceptor.LoggingInterceptor : 🔄 POST /api/error [Anonymous] - Request started
-2025-08-11T17:44:23.382-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-0d38432b89a2b7f0] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json]
-2025-08-11T17:44:23.383-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-0d38432b89a2b7f0] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [{timestamp=Mon Aug 11 17:44:23 EDT 2025, status=400, error=Bad Request, path=/api/auth/login}]
-2025-08-11T17:44:23.386-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-0d38432b89a2b7f0] c.s.interceptor.LoggingInterceptor : ✅ POST /api/error [Anonymous] - 400 (9ms)
-2025-08-11T17:44:23.388-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-2] [8ae5db3f170123159f1ea2b048660736-0d38432b89a2b7f0] o.s.web.servlet.DispatcherServlet : Exiting from "ERROR" dispatch, status 400
-2025-08-11T17:44:23.410-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-4080345ad78766be] o.s.security.web.FilterChainProxy : Securing GET /products
-2025-08-11T17:44:23.413-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-b03914fd077b0fac] c.s.security.JwtAuthenticationFilter : No Authorization header or Bearer token found
-2025-08-11T17:44:23.413-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-b03914fd077b0fac] c.s.security.JwtAuthenticationFilter : No username extracted from JWT token
-2025-08-11T17:44:23.414-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-b03914fd077b0fac] o.s.s.w.a.AnonymousAuthenticationFilter : Set SecurityContextHolder to anonymous SecurityContext
-2025-08-11T17:44:23.420-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] o.s.security.web.FilterChainProxy : Secured GET /products
-2025-08-11T17:44:23.424-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] o.s.web.servlet.DispatcherServlet : GET "/api/products", parameters={}
-2025-08-11T17:44:23.425-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.shopper.controller.ProductController#getAllProducts()
-2025-08-11T17:44:23.425-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] c.s.interceptor.LoggingInterceptor : 🔄 GET /api/products [Anonymous] - Request started
-2025-08-11T17:44:23.429-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] com.shopper.service.FeatureFlagService : Feature flags initialized with default values
-2025-08-11T17:44:28.555-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] c.shopper.config.DynatraceOtelLogHook : Feature flag evaluation span started for key: new-flow
-2025-08-11T17:44:28.556-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] c.shopper.config.DynatraceOtelLogHook : Completing feature flag evaluation span for key: new-flow
-2025-08-11T17:44:28.556-04:00 WARN 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] c.shopper.config.DynatraceOtelLogHook : variableMetadata: null
-2025-08-11T17:44:28.556-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] c.shopper.config.DynatraceOtelLogHook : Feature flag span completed: new-flow = false
-2025-08-11T17:44:28.556-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] c.shopper.config.DynatraceOtelLogHook : Feature flag span ended for key: new-flow
-2025-08-11T17:44:28.556-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] com.shopper.service.FeatureFlagService : 🎛️ Feature flag 'new-flow' evaluated to: false for user: anonymous
-2025-08-11T17:44:28.560-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-11T17:44:28.649-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] org.hibernate.SQL : select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0
-2025-08-11T17:44:28.850-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json]
-2025-08-11T17:44:28.874-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
-2025-08-11T17:44:28.919-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] c.s.interceptor.LoggingInterceptor : ✅ GET /api/products [Anonymous] - 200 (5494ms)
-2025-08-11T17:44:28.920-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-3] [806ade14fbc47e40b4036256cfa3d46e-70b7dfe9a83ecc07] o.s.web.servlet.DispatcherServlet : Completed 200 OK
-Error reading event
-java.net.SocketException: Connection reset
-2025-08-11T18:24:12.599-04:00 WARN 9417 --- [java-backend] [l-1 housekeeper] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=30m40s52ms).
-[otel.javaagent 2025-08-11 18:24:14:291 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export metrics. The request could not be executed. Full error message: timeout
+Caused by: java.io.IOException: Canceled
+ at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:72)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at io.opentelemetry.exporter.sender.okhttp.internal.RetryInterceptor.intercept(RetryInterceptor.java:96)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
+ ... 4 more
+Error starting event source
+[otel.javaagent 2025-09-04 13:00:34:638 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: timeout
java.io.InterruptedIOException: timeout
at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
@@ -378,8 +156,9 @@ Caused by: java.io.IOException: Canceled
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
... 4 more
-2025-08-11T19:17:29.182-04:00 WARN 9417 --- [java-backend] [l-1 housekeeper] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=48m16s530ms).
-[otel.javaagent 2025-08-11 19:18:00:422 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export metrics. The request could not be executed. Full error message: timeout
+DevCycle Events error: No route to host
+DevCycle Error Publishing Events: 500
+[otel.javaagent 2025-09-04 13:00:40:566 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export metrics. The request could not be executed. Full error message: timeout
java.io.InterruptedIOException: timeout
at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
@@ -396,9 +175,7 @@ Caused by: java.io.IOException: Canceled
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
... 4 more
-Error reading event
-java.net.SocketTimeoutException: timeout
-[otel.javaagent 2025-08-12 00:30:37:290 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export metrics. The request could not be executed. Full error message: timeout
+[otel.javaagent 2025-09-04 13:00:49:659 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: timeout
java.io.InterruptedIOException: timeout
at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
@@ -415,9 +192,9 @@ Caused by: java.io.IOException: Canceled
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
... 4 more
-2025-08-12T00:30:39.600-04:00 WARN 9417 --- [java-backend] [l-1 housekeeper] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=55m6s718ms).
-2025-08-12T02:34:13.601-04:00 WARN 9417 --- [java-backend] [l-1 housekeeper] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h36m33s589ms).
-[otel.javaagent 2025-08-12 02:34:40:822 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export metrics. The request could not be executed. Full error message: timeout
+DevCycle Events error: No route to host
+DevCycle Error Publishing Events: 500
+[otel.javaagent 2025-09-04 13:01:04:667 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: timeout
java.io.InterruptedIOException: timeout
at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
@@ -434,9 +211,7 @@ Caused by: java.io.IOException: Canceled
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
... 4 more
-2025-08-12T04:26:47.385-04:00 WARN 9417 --- [java-backend] [l-1 housekeeper] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=57m3s3ms).
-2025-08-12T06:03:50.100-04:00 WARN 9417 --- [java-backend] [l-1 housekeeper] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h37m2s718ms).
-[otel.javaagent 2025-08-12 06:04:01:452 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export logs. The request could not be executed. Full error message: timeout
+[otel.javaagent 2025-09-04 13:01:19:682 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: timeout
java.io.InterruptedIOException: timeout
at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
@@ -453,17 +228,8 @@ Caused by: java.io.IOException: Canceled
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
... 4 more
-Error reading event
-java.net.SocketTimeoutException: timeout
-Error reading event
-okhttp3.internal.http2.StreamResetException: stream was reset: INTERNAL_ERROR
-2025-08-12T07:06:29.749-04:00 WARN 9417 --- [java-backend] [l-1 housekeeper] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=3m38s866ms).
-Error reading event
-okhttp3.internal.http2.StreamResetException: stream was reset: INTERNAL_ERROR
-Error reading event
-Stream closed by server
-2025-08-12T09:27:20.811-04:00 WARN 9417 --- [java-backend] [l-1 housekeeper] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=51m49s735ms).
-[otel.javaagent 2025-08-12 09:28:15:417 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export metrics. The request could not be executed. Full error message: timeout
+Failed to load config: timeout
+[otel.javaagent 2025-09-04 13:03:40:848 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: timeout
java.io.InterruptedIOException: timeout
at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
@@ -480,8 +246,7 @@ Caused by: java.io.IOException: Canceled
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
... 4 more
-2025-08-12T09:55:06.645-04:00 WARN 9417 --- [java-backend] [l-1 housekeeper] [ ] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=8m15s386ms).
-[otel.javaagent 2025-08-12 09:55:22:713 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export logs. The request could not be executed. Full error message: timeout
+[otel.javaagent 2025-09-04 13:03:41:685 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export metrics. The request could not be executed. Full error message: timeout
java.io.InterruptedIOException: timeout
at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
@@ -498,141 +263,37 @@ Caused by: java.io.IOException: Canceled
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
... 4 more
-2025-08-12T09:59:13.358-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-5e6140308453cc4f] o.s.security.web.FilterChainProxy : Securing POST /auth/login
-2025-08-12T09:59:13.358-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-5d1bbfabf657e4a0] o.s.security.web.FilterChainProxy : Securing POST /auth/login
-2025-08-12T09:59:13.379-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-c90b6b8e0536ae66] o.s.s.w.a.AnonymousAuthenticationFilter : Set SecurityContextHolder to anonymous SecurityContext
-2025-08-12T09:59:13.379-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-c9654fd17cfd73e7] o.s.s.w.a.AnonymousAuthenticationFilter : Set SecurityContextHolder to anonymous SecurityContext
-2025-08-12T09:59:13.397-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] o.s.security.web.FilterChainProxy : Secured POST /auth/login
-2025-08-12T09:59:13.398-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] o.s.security.web.FilterChainProxy : Secured POST /auth/login
-2025-08-12T09:59:13.398-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] o.s.web.servlet.DispatcherServlet : POST "/api/auth/login", parameters={}
-2025-08-12T09:59:13.398-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] o.s.web.servlet.DispatcherServlet : POST "/api/auth/login", parameters={}
-2025-08-12T09:59:13.399-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.shopper.controller.AuthController#login(LoginDto)
-2025-08-12T09:59:13.399-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.shopper.controller.AuthController#login(LoginDto)
-2025-08-12T09:59:13.399-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] c.s.interceptor.LoggingInterceptor : 🔄 POST /api/auth/login [Anonymous] - Request started
-2025-08-12T09:59:13.399-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] c.s.interceptor.LoggingInterceptor : 🔄 POST /api/auth/login [Anonymous] - Request started
-2025-08-12T09:59:13.411-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json;charset=UTF-8" to [LoginDto(username=user, password=password)]
-2025-08-12T09:59:13.415-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json;charset=UTF-8" to [LoginDto(username=admin, password=password)]
-2025-08-12T09:59:13.644-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:13.651-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:13.762-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:13.762-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:13.934-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] o.s.s.a.dao.DaoAuthenticationProvider : Authenticated user
-2025-08-12T09:59:13.934-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] o.s.s.a.dao.DaoAuthenticationProvider : Authenticated user
-2025-08-12T09:59:13.951-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:13.951-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:13.967-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:13.968-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:13.976-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:13.976-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:13.979-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:13.979-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:14.239-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json]
-2025-08-12T09:59:14.239-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json]
-2025-08-12T09:59:14.260-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [AuthResponseDto(token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTc1NTAwNzE1NCwiZXhwIjoxNzU1M (truncated)...]
-2025-08-12T09:59:14.260-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [AuthResponseDto(token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiaWF0IjoxNzU1MDA3MTU0LCJleHAiOjE3NTUwO (truncated)...]
-2025-08-12T09:59:14.353-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] c.s.interceptor.LoggingInterceptor : ✅ POST /api/auth/login [Anonymous] - 200 (954ms)
-2025-08-12T09:59:14.353-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] c.s.interceptor.LoggingInterceptor : ✅ POST /api/auth/login [Anonymous] - 200 (954ms)
-2025-08-12T09:59:14.354-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-4] [aadc1e364374efabe00db3a461cf1dcd-4c0fb20a35135b12] o.s.web.servlet.DispatcherServlet : Completed 200 OK
-2025-08-12T09:59:14.354-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-5] [4b36700876eaa468490b74cce518850b-2d9583c3c0a07ca9] o.s.web.servlet.DispatcherServlet : Completed 200 OK
-2025-08-12T09:59:14.377-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-1fb485722e364bcd] o.s.security.web.FilterChainProxy : Securing GET /products
-2025-08-12T09:59:14.431-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-39726e2644df21fa] c.s.security.JwtAuthenticationFilter : JWT token extracted, username: user
-2025-08-12T09:59:14.431-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-39726e2644df21fa] c.s.security.JwtAuthenticationFilter : Loading user details for username: user
-2025-08-12T09:59:14.431-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-39726e2644df21fa] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:14.465-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-39726e2644df21fa] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:14.474-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-39726e2644df21fa] c.s.security.JwtAuthenticationFilter : User details loaded successfully for: user
-2025-08-12T09:59:14.476-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-39726e2644df21fa] c.s.security.JwtAuthenticationFilter : JWT token validation successful for user: user
-2025-08-12T09:59:14.477-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-39726e2644df21fa] c.s.security.JwtAuthenticationFilter : Authentication set in SecurityContext for user: user
-2025-08-12T09:59:14.485-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] o.s.security.web.FilterChainProxy : Secured GET /products
-2025-08-12T09:59:14.486-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] o.s.web.servlet.DispatcherServlet : GET "/api/products", parameters={}
-2025-08-12T09:59:14.489-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.shopper.controller.ProductController#getAllProducts()
-2025-08-12T09:59:14.490-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] c.s.interceptor.LoggingInterceptor : 🔄 GET /api/products [User: user] - Request started
-2025-08-12T09:59:16.570-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-33e054c927166f4e] o.s.security.web.FilterChainProxy : Securing GET /products
-2025-08-12T09:59:16.577-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-a23ebd56b98868d5] c.s.security.JwtAuthenticationFilter : JWT token extracted, username: admin
-2025-08-12T09:59:16.577-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-a23ebd56b98868d5] c.s.security.JwtAuthenticationFilter : Loading user details for username: admin
-2025-08-12T09:59:16.577-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-a23ebd56b98868d5] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:16.579-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-a23ebd56b98868d5] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:16.581-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-a23ebd56b98868d5] c.s.security.JwtAuthenticationFilter : User details loaded successfully for: admin
-2025-08-12T09:59:16.582-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-a23ebd56b98868d5] c.s.security.JwtAuthenticationFilter : JWT token validation successful for user: admin
-2025-08-12T09:59:16.582-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-a23ebd56b98868d5] c.s.security.JwtAuthenticationFilter : Authentication set in SecurityContext for user: admin
-2025-08-12T09:59:16.587-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] o.s.security.web.FilterChainProxy : Secured GET /products
-2025-08-12T09:59:16.588-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] o.s.web.servlet.DispatcherServlet : GET "/api/products", parameters={}
-2025-08-12T09:59:16.589-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.shopper.controller.ProductController#getAllProducts()
-2025-08-12T09:59:16.589-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] c.s.interceptor.LoggingInterceptor : 🔄 GET /api/products [User: admin] - Request started
-2025-08-12T09:59:19.503-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] c.shopper.config.DynatraceOtelLogHook : Feature flag evaluation span started for key: new-flow
-2025-08-12T09:59:19.504-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] c.shopper.config.DynatraceOtelLogHook : Completing feature flag evaluation span for key: new-flow
-2025-08-12T09:59:19.504-04:00 WARN 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] c.shopper.config.DynatraceOtelLogHook : variableMetadata: null
-2025-08-12T09:59:19.504-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] c.shopper.config.DynatraceOtelLogHook : Feature flag span completed: new-flow = false
-2025-08-12T09:59:19.504-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] c.shopper.config.DynatraceOtelLogHook : Feature flag span ended for key: new-flow
-2025-08-12T09:59:19.504-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] com.shopper.service.FeatureFlagService : 🎛️ Feature flag 'new-flow' evaluated to: false for user: user
-2025-08-12T09:59:19.504-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:19.511-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] org.hibernate.SQL : select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0
-2025-08-12T09:59:19.557-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json]
-2025-08-12T09:59:19.561-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
-2025-08-12T09:59:19.571-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] c.s.interceptor.LoggingInterceptor : ✅ GET /api/products [User: user] - 200 (5081ms)
-2025-08-12T09:59:19.572-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-6] [80543c6d6f5349e92893ffb1d0773c84-105b904a8d1ba276] o.s.web.servlet.DispatcherServlet : Completed 200 OK
-2025-08-12T09:59:20.575-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-a625874f95f632a3] o.s.security.web.FilterChainProxy : Securing GET /products
-2025-08-12T09:59:20.580-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-2bf69f61d52bc9aa] c.s.security.JwtAuthenticationFilter : JWT token extracted, username: user
-2025-08-12T09:59:20.580-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-2bf69f61d52bc9aa] c.s.security.JwtAuthenticationFilter : Loading user details for username: user
-2025-08-12T09:59:20.580-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-2bf69f61d52bc9aa] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:20.583-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-2bf69f61d52bc9aa] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:20.585-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-2bf69f61d52bc9aa] c.s.security.JwtAuthenticationFilter : User details loaded successfully for: user
-2025-08-12T09:59:20.586-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-2bf69f61d52bc9aa] c.s.security.JwtAuthenticationFilter : JWT token validation successful for user: user
-2025-08-12T09:59:20.587-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-2bf69f61d52bc9aa] c.s.security.JwtAuthenticationFilter : Authentication set in SecurityContext for user: user
-2025-08-12T09:59:20.591-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] o.s.security.web.FilterChainProxy : Secured GET /products
-2025-08-12T09:59:20.592-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] o.s.web.servlet.DispatcherServlet : GET "/api/products", parameters={}
-2025-08-12T09:59:20.596-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.shopper.controller.ProductController#getAllProducts()
-2025-08-12T09:59:20.596-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] c.s.interceptor.LoggingInterceptor : 🔄 GET /api/products [User: user] - Request started
-2025-08-12T09:59:20.598-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] c.shopper.config.DynatraceOtelLogHook : Feature flag evaluation span started for key: new-flow
-2025-08-12T09:59:20.598-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] c.shopper.config.DynatraceOtelLogHook : Completing feature flag evaluation span for key: new-flow
-2025-08-12T09:59:20.598-04:00 WARN 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] c.shopper.config.DynatraceOtelLogHook : variableMetadata: null
-2025-08-12T09:59:20.598-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] c.shopper.config.DynatraceOtelLogHook : Feature flag span completed: new-flow = false
-2025-08-12T09:59:20.598-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] c.shopper.config.DynatraceOtelLogHook : Feature flag span ended for key: new-flow
-2025-08-12T09:59:20.598-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] com.shopper.service.FeatureFlagService : 🎛️ Feature flag 'new-flow' evaluated to: false for user: user
-2025-08-12T09:59:20.599-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:20.601-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] org.hibernate.SQL : select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0
-2025-08-12T09:59:20.617-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json]
-2025-08-12T09:59:20.619-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
-2025-08-12T09:59:20.624-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] c.s.interceptor.LoggingInterceptor : ✅ GET /api/products [User: user] - 200 (28ms)
-2025-08-12T09:59:20.624-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-8] [ee7c561720d3ebc3609326edb872688b-ea8a348813229442] o.s.web.servlet.DispatcherServlet : Completed 200 OK
-2025-08-12T09:59:21.595-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] c.shopper.config.DynatraceOtelLogHook : Feature flag evaluation span started for key: new-flow
-2025-08-12T09:59:21.596-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] c.shopper.config.DynatraceOtelLogHook : Completing feature flag evaluation span for key: new-flow
-2025-08-12T09:59:21.596-04:00 WARN 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] c.shopper.config.DynatraceOtelLogHook : variableMetadata: null
-2025-08-12T09:59:21.596-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] c.shopper.config.DynatraceOtelLogHook : Feature flag span completed: new-flow = false
-2025-08-12T09:59:21.597-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] c.shopper.config.DynatraceOtelLogHook : Feature flag span ended for key: new-flow
-2025-08-12T09:59:21.597-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] com.shopper.service.FeatureFlagService : 🎛️ Feature flag 'new-flow' evaluated to: false for user: admin
-2025-08-12T09:59:21.597-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:21.602-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] org.hibernate.SQL : select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0
-2025-08-12T09:59:21.630-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json]
-2025-08-12T09:59:21.633-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
-2025-08-12T09:59:21.640-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] c.s.interceptor.LoggingInterceptor : ✅ GET /api/products [User: admin] - 200 (5051ms)
-2025-08-12T09:59:21.640-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-7] [2a4524a1e773d9b1ab8243d2680d0072-7a64f903244fee2c] o.s.web.servlet.DispatcherServlet : Completed 200 OK
-2025-08-12T09:59:21.956-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-a5d6af806c2f820f] o.s.security.web.FilterChainProxy : Securing GET /products
-2025-08-12T09:59:21.959-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-a55bebd2c30397fb] c.s.security.JwtAuthenticationFilter : JWT token extracted, username: user
-2025-08-12T09:59:21.959-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-a55bebd2c30397fb] c.s.security.JwtAuthenticationFilter : Loading user details for username: user
-2025-08-12T09:59:21.959-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-a55bebd2c30397fb] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:21.965-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-a55bebd2c30397fb] org.hibernate.SQL : select u1_0.id,u1_0.created_at,u1_0.email,u1_0.password,u1_0.role,u1_0.updated_at,u1_0.username from users u1_0 where u1_0.username=?
-2025-08-12T09:59:21.966-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-a55bebd2c30397fb] c.s.security.JwtAuthenticationFilter : User details loaded successfully for: user
-2025-08-12T09:59:21.967-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-a55bebd2c30397fb] c.s.security.JwtAuthenticationFilter : JWT token validation successful for user: user
-2025-08-12T09:59:21.967-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-a55bebd2c30397fb] c.s.security.JwtAuthenticationFilter : Authentication set in SecurityContext for user: user
-2025-08-12T09:59:21.972-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] o.s.security.web.FilterChainProxy : Secured GET /products
-2025-08-12T09:59:21.972-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] o.s.web.servlet.DispatcherServlet : GET "/api/products", parameters={}
-2025-08-12T09:59:21.976-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.shopper.controller.ProductController#getAllProducts()
-2025-08-12T09:59:21.976-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] c.s.interceptor.LoggingInterceptor : 🔄 GET /api/products [User: user] - Request started
-2025-08-12T09:59:21.978-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] c.shopper.config.DynatraceOtelLogHook : Feature flag evaluation span started for key: new-flow
-2025-08-12T09:59:21.978-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] c.shopper.config.DynatraceOtelLogHook : Completing feature flag evaluation span for key: new-flow
-2025-08-12T09:59:21.978-04:00 WARN 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] c.shopper.config.DynatraceOtelLogHook : variableMetadata: null
-2025-08-12T09:59:21.978-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] c.shopper.config.DynatraceOtelLogHook : Feature flag span completed: new-flow = false
-2025-08-12T09:59:21.978-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] c.shopper.config.DynatraceOtelLogHook : Feature flag span ended for key: new-flow
-2025-08-12T09:59:21.978-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] com.shopper.service.FeatureFlagService : 🎛️ Feature flag 'new-flow' evaluated to: false for user: user
-2025-08-12T09:59:21.978-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] c.s.service.DualDatabaseStrategyImpl : Secondary database not enabled, using primary for read operation
-2025-08-12T09:59:21.981-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] org.hibernate.SQL : select p1_0.id,p1_0.category,p1_0.created_at,p1_0.description,p1_0.image_url,p1_0.name,p1_0.price,p1_0.stock_quantity,p1_0.updated_at from products p1_0
-2025-08-12T09:59:22.003-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json]
-2025-08-12T09:59:22.100-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [[Product(id=65336362-3637-3733-2d33-3135312d3463, name=Wireless Bluetooth Headphones, description=Hi (truncated)...]
-2025-08-12T09:59:22.112-04:00 INFO 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] c.s.interceptor.LoggingInterceptor : ✅ GET /api/products [User: user] - 200 (136ms)
-2025-08-12T09:59:22.114-04:00 DEBUG 9417 --- [java-backend] [nio-3002-exec-9] [18a0be05be65bc682c03a4105280e20b-7594f0e6ee9acd4d] o.s.web.servlet.DispatcherServlet : Completed 200 OK
-Error reading event
-Stream closed by client
-2025-08-12T09:59:27.044-04:00 INFO 9417 --- [java-backend] [ionShutdownHook] [ ] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
-2025-08-12T09:59:27.046-04:00 INFO 9417 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
-2025-08-12T09:59:27.052-04:00 INFO 9417 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
-🛑 Java Backend Server stopped.
+[otel.javaagent 2025-09-04 13:03:53:336 -0400] [OkHttp https://xtc47953.live.dynatrace.com/...] ERROR io.opentelemetry.exporter.internal.http.HttpExporter - Failed to export spans. The request could not be executed. Full error message: xtc47953.live.dynatrace.com
+java.net.UnknownHostException: xtc47953.live.dynatrace.com
+ at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:948)
+ at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1638)
+ at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1504)
+ at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
+ at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:169)
+ at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:131)
+ at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:73)
+ at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
+ at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
+ at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
+ at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
+ at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at io.opentelemetry.exporter.sender.okhttp.internal.RetryInterceptor.intercept(RetryInterceptor.java:96)
+ at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
+ at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
+ at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
+ at java.base/java.lang.Thread.run(Thread.java:833)
+Failed to load config: timeout
+2025-09-04T13:06:40.748-04:00 INFO 36126 --- [java-backend] [ionShutdownHook] [ ] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
+2025-09-04T13:06:40.762-04:00 INFO 36126 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
+2025-09-04T13:06:40.791-04:00 INFO 36126 --- [java-backend] [ionShutdownHook] [ ] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
+
+🧹 Cleaning up...
diff --git a/java-backend/src/main/java/com/shopper/config/DevCycleLoggingHook.java b/java-backend/src/main/java/com/shopper/config/DevCycleLoggingHook.java
new file mode 100644
index 00000000..5244437c
--- /dev/null
+++ b/java-backend/src/main/java/com/shopper/config/DevCycleLoggingHook.java
@@ -0,0 +1,175 @@
+package com.shopper.config;
+
+import io.opentelemetry.api.common.Attributes;
+import io.opentelemetry.api.common.AttributesBuilder;
+import io.opentelemetry.api.common.AttributeKey;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Optional;
+
+import com.devcycle.sdk.server.common.model.EvalHook;
+import com.devcycle.sdk.server.common.model.HookContext;
+import com.devcycle.sdk.server.common.model.Variable;
+import com.devcycle.sdk.server.local.model.VariableMetadata;
+
+import io.opentelemetry.api.trace.Span;
+import io.opentelemetry.api.GlobalOpenTelemetry;
+import io.opentelemetry.api.logs.Logger;
+import io.opentelemetry.api.logs.LogRecordBuilder;
+import io.opentelemetry.api.logs.Severity;
+
+import java.time.Instant;
+
+@RequiredArgsConstructor
+@Slf4j
+public class DevCycleLoggingHook implements EvalHook