From 99563ed678aa90c8664c3a51cec5c5ca73cb4c7b Mon Sep 17 00:00:00 2001 From: Dev102030-pixel Date: Mon, 17 Aug 2026 11:29:33 +0530 Subject: [PATCH] Error fixed on latency --- app_test.log | 121 ++++++++++++++++++ .../service/ChatbotService.java | 8 ++ src/main/resources/application.properties | 2 +- 3 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 app_test.log diff --git a/app_test.log b/app_test.log new file mode 100644 index 0000000..23ec332 --- /dev/null +++ b/app_test.log @@ -0,0 +1,121 @@ +[INFO] Scanning for projects... +[INFO] +[INFO] ------------------< com.example:whatsapp-automation >------------------- +[INFO] Building WhatsApp Automation 0.0.1-SNAPSHOT +[INFO] from pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] >>> spring-boot:3.3.2:run (default-cli) > test-compile @ whatsapp-automation >>> +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ whatsapp-automation --- +[INFO] Copying 1 resource from src/main/resources to target/classes +[INFO] Copying 3 resources from src/main/resources to target/classes +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ whatsapp-automation --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ whatsapp-automation --- +[INFO] skip non existing resourceDirectory /Users/devprasad/Downloads/RMC-WhatsApp-Bot-main/src/test/resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ whatsapp-automation --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] <<< spring-boot:3.3.2:run (default-cli) < test-compile @ whatsapp-automation <<< +[INFO] +[INFO] +[INFO] --- spring-boot:3.3.2:run (default-cli) @ whatsapp-automation --- +[INFO] Attaching agents: [] + + . ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + + :: Spring Boot :: (v3.3.2) + +2026-08-17T11:25:46.813+05:30 INFO 98153 --- [whatsapp-automation] [ main] c.e.w.WhatsAppAutomationApplication : Starting WhatsAppAutomationApplication using Java 26.0.1 with PID 98153 (/Users/devprasad/Downloads/RMC-WhatsApp-Bot-main/target/classes started by devprasad in /Users/devprasad/Downloads/RMC-WhatsApp-Bot-main) +2026-08-17T11:25:46.814+05:30 INFO 98153 --- [whatsapp-automation] [ main] c.e.w.WhatsAppAutomationApplication : No active profile set, falling back to 1 default profile: "default" +2026-08-17T11:25:46.992+05:30 INFO 98153 --- [whatsapp-automation] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-17T11:25:47.009+05:30 INFO 98153 --- [whatsapp-automation] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 14 ms. Found 4 JPA repository interfaces. +WARNING: A restricted method in java.lang.System has been called +WARNING: java.lang.System::load has been called by org.apache.tomcat.jni.Library in an unnamed module (file:/Users/devprasad/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.26/tomcat-embed-core-10.1.26.jar) +WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module +WARNING: Restricted methods will be blocked in a future release unless native access is enabled + +2026-08-17T11:25:47.150+05:30 INFO 98153 --- [whatsapp-automation] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8086 (http) +2026-08-17T11:25:47.153+05:30 INFO 98153 --- [whatsapp-automation] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-08-17T11:25:47.154+05:30 INFO 98153 --- [whatsapp-automation] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.26] +2026-08-17T11:25:47.167+05:30 INFO 98153 --- [whatsapp-automation] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-08-17T11:25:47.168+05:30 INFO 98153 --- [whatsapp-automation] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 339 ms +2026-08-17T11:25:47.210+05:30 INFO 98153 --- [whatsapp-automation] [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] +2026-08-17T11:25:47.226+05:30 INFO 98153 --- [whatsapp-automation] [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.2.Final +2026-08-17T11:25:47.234+05:30 INFO 98153 --- [whatsapp-automation] [ main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled +2026-08-17T11:25:47.316+05:30 INFO 98153 --- [whatsapp-automation] [ main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-17T11:25:47.323+05:30 INFO 98153 --- [whatsapp-automation] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-08-17T11:25:47.373+05:30 INFO 98153 --- [whatsapp-automation] [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@10e9a5fe +2026-08-17T11:25:47.373+05:30 INFO 98153 --- [whatsapp-automation] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-08-17T11:25:47.387+05:30 WARN 98153 --- [whatsapp-automation] [ main] org.hibernate.orm.deprecation : HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2026-08-17T11:25:47.639+05:30 INFO 98153 --- [whatsapp-automation] [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +Hibernate: alter table if exists user_state add column menu_page integer not null +2026-08-17T11:25:47.666+05:30 WARN 98153 --- [whatsapp-automation] [ main] o.h.t.s.i.ExceptionHandlerLoggedImpl : GenerationTarget encountered exception accepting command : Error executing DDL "alter table if exists user_state add column menu_page integer not null" via JDBC [ERROR: column "menu_page" of relation "user_state" contains null values] + +org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table if exists user_state add column menu_page integer not null" via JDBC [ERROR: column "menu_page" of relation "user_state" contains null values] + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:94) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:575) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:515) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.migrateTable(AbstractSchemaMigrator.java:333) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:84) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:232) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:117) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:280) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.lambda$process$5(SchemaManagementToolCoordinator.java:144) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at java.base/java.util.HashMap.forEach(HashMap.java:1430) ~[na:na] + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:141) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.boot.internal.SessionFactoryObserverForSchemaExport.sessionFactoryCreated(SessionFactoryObserverForSchemaExport.java:37) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:322) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:457) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1506) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.11.jar:6.1.11] + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.11.jar:6.1.11] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.11.jar:6.1.11] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.11.jar:6.1.11] + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.1.11.jar:6.1.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853) ~[spring-beans-6.1.11.jar:6.1.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1802) ~[spring-beans-6.1.11.jar:6.1.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.11.jar:6.1.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.11.jar:6.1.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.11.jar:6.1.11] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.11.jar:6.1.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.11.jar:6.1.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.11.jar:6.1.11] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:954) ~[spring-context-6.1.11.jar:6.1.11] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) ~[spring-context-6.1.11.jar:6.1.11] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.2.jar:3.3.2] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.2.jar:3.3.2] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.2.jar:3.3.2] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.2.jar:3.3.2] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.2.jar:3.3.2] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.2.jar:3.3.2] + at com.example.whatsappautomation.WhatsAppAutomationApplication.main(WhatsAppAutomationApplication.java:10) ~[classes/:na] +Caused by: org.postgresql.util.PSQLException: ERROR: column "menu_page" of relation "user_state" contains null values + at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2725) ~[postgresql-42.7.3.jar:42.7.3] + at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2412) ~[postgresql-42.7.3.jar:42.7.3] + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:371) ~[postgresql-42.7.3.jar:42.7.3] + at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:502) ~[postgresql-42.7.3.jar:42.7.3] + at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:419) ~[postgresql-42.7.3.jar:42.7.3] + at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:341) ~[postgresql-42.7.3.jar:42.7.3] + at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:326) ~[postgresql-42.7.3.jar:42.7.3] + at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:302) ~[postgresql-42.7.3.jar:42.7.3] + at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:297) ~[postgresql-42.7.3.jar:42.7.3] + at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) ~[HikariCP-5.1.0.jar:na] + at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) ~[HikariCP-5.1.0.jar:na] + at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:80) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] + ... 37 common frames omitted + +2026-08-17T11:25:47.668+05:30 INFO 98153 --- [whatsapp-automation] [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-17T11:25:47.778+05:30 WARN 98153 --- [whatsapp-automation] [ 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 +2026-08-17T11:25:47.866+05:30 INFO 98153 --- [whatsapp-automation] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8086 (http) with context path '/' +2026-08-17T11:25:47.869+05:30 INFO 98153 --- [whatsapp-automation] [ main] c.e.w.WhatsAppAutomationApplication : Started WhatsAppAutomationApplication in 1.159 seconds (process running for 1.272) diff --git a/src/main/java/com/example/whatsappautomation/service/ChatbotService.java b/src/main/java/com/example/whatsappautomation/service/ChatbotService.java index d5a4158..e386dd7 100644 --- a/src/main/java/com/example/whatsappautomation/service/ChatbotService.java +++ b/src/main/java/com/example/whatsappautomation/service/ChatbotService.java @@ -944,6 +944,8 @@ public class ChatbotService { HttpEntity entity = new HttpEntity<>(requestBody.toString(), headers); logger.info("Sending interactive message to {}", recipientPhoneNumber); restTemplate.postForEntity(url, entity, String.class); + } catch (org.springframework.web.client.HttpStatusCodeException e) { + logger.error("Error sending interactive message. Status: {}, Response: {}", e.getStatusCode(), e.getResponseBodyAsString(), e); } catch (Exception e) { logger.error("Error sending interactive message", e); } @@ -1009,6 +1011,8 @@ public class ChatbotService { HttpEntity entity = new HttpEntity<>(requestBody.toString(), headers); logger.info("Sending Main Menu interactive message to {}", recipientPhoneNumber); restTemplate.postForEntity(url, entity, String.class); + } catch (org.springframework.web.client.HttpStatusCodeException e) { + logger.error("Error sending main menu interactive message. Status: {}, Response: {}", e.getStatusCode(), e.getResponseBodyAsString(), e); } catch (Exception e) { logger.error("Error sending main menu interactive message", e); } @@ -1038,6 +1042,8 @@ public class ChatbotService { logger.info("Sending reply to {}: {}", recipientPhoneNumber, text); ResponseEntity response = restTemplate.postForEntity(url, entity, String.class); logger.info("Response from WhatsApp API: Status={}", response.getStatusCode()); + } catch (org.springframework.web.client.HttpStatusCodeException e) { + logger.error("Failed to send WhatsApp message to {}. Status: {}, Response: {}", recipientPhoneNumber, e.getStatusCode(), e.getResponseBodyAsString(), e); } catch (Exception e) { logger.error("Failed to send WhatsApp message to " + recipientPhoneNumber, e); } @@ -1084,6 +1090,8 @@ public class ChatbotService { HttpEntity entity = new HttpEntity<>(requestBody.toString(), headers); restTemplate.postForEntity(url, entity, String.class); + } catch (org.springframework.web.client.HttpStatusCodeException e) { + logger.error("Error sending interactive buttons. Status: {}, Response: {}", e.getStatusCode(), e.getResponseBodyAsString(), e); } catch (Exception e) { logger.error("Error sending interactive buttons", e); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b8606b8..b37975a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,7 @@ spring.application.name=whatsapp-automation server.port=8085 -whatsapp.access-token=EAAOZCONMSXCkBSIUAa6NJVDZAgN6yC6DyrsBefMhijoVWZA7613gQecnXtvEYFZASHR933rDPh3fjnLzUqbS8Qgbcy0bfZCGTDyq3ceB2zA4c3ZBn4LzYZC622K1PRQGWGyuuESnTk3cwGeJE6IsesTAcJZB7wtwbkvHGLJAVqtqo41HCLWjrCHjZCI12NrFmmgPQiZCEx8mz3fBMJLEOovhVZAvGZCwTOj0agXfaeUXu3sFGHlLN3ZCO3lIEhUkNMu0bcgv02nhUCWYqbJJCZBKJNmGpygDcZD +whatsapp.access-token=EAAOZCONMSXCkBSHaYF1PqnnZAVjcmLqoOOJZCcbQGVWfWxILu9n0hQZBnUVGJG8WZBnLiZASM7etogv1xGj2PZCCmQPhFYyAKrhagFeYoi9fUZCfTryKonhStH3OU3RnHuZCxIWhnVIkIKe4byuOwqOv47SmM815ZCHUZA33fEhxPe9Onr1lg4tOnDeJMHoRYyDtcpWPbpc1eDbZBcy3vXwLslaBwx94xovhSKPpkDNgttTWsNBMnhbT7rKmnXEZAqDwWSg5FhITKePQS9HQ5troiyrXb whatsapp.verify-token=my_whatsapp_verify_token_123 spring.datasource.url=jdbc:postgresql://localhost:5432/rmc_bot