Skip to content

Commit 21fcd1e

Browse files
miltortegon_expediaclaude
andcommitted
fix: add missing Jasper exclusions and javax.servlet-api to remaining Hive modules
beekeeper-scheduler: excludes tomcat:jasper-compiler and tomcat:jasper-runtime from hive-metastore. Without these exclusions, beekeeper-scheduler-apiary (which depends on beekeeper-scheduler) inherits old Jasper via the transitive chain. Old JspServlet implements javax.servlet.Servlet, which Tomcat 10.x cannot cast to jakarta.servlet.Servlet. beekeeper-path-cleanup: adds javax.servlet-api:3.1.0 at runtime scope. As a Spring Boot web app using hive-metastore transitively via beekeeper-cleanup, it needs javax.servlet on the classpath so HiveMetaStoreClient.open() can load javax.servlet.Filter at runtime. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent d60d9ea commit 21fcd1e

3 files changed

Lines changed: 33 additions & 1 deletion

File tree

beekeeper-cleanup/pom.xml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>beekeeper-parent</artifactId>
77
<groupId>com.expediagroup</groupId>
8-
<version>3.6.7.1-SNAPSHOT</version>
8+
<version>3.6.7-SNAPSHOT</version>
99
</parent>
1010

1111
<artifactId>beekeeper-cleanup</artifactId>
@@ -118,6 +118,17 @@
118118
</exclusions>
119119
</dependency>
120120

121+
<!-- hive-metastore 2.3.7 references javax.servlet.Filter internally at runtime;
122+
Spring Boot 3.x uses Jakarta Servlet so javax.servlet is no longer on the classpath.
123+
This runtime dependency satisfies Hive's classloading without affecting Spring's
124+
Jakarta servlet stack. -->
125+
<dependency>
126+
<groupId>javax.servlet</groupId>
127+
<artifactId>javax.servlet-api</artifactId>
128+
<version>3.1.0</version>
129+
<scope>runtime</scope>
130+
</dependency>
131+
121132
<!-- aws -->
122133
<dependency>
123134
<groupId>com.amazonaws</groupId>

beekeeper-path-cleanup/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,16 @@
6767
<artifactId>guava</artifactId>
6868
<version>27.1-jre</version>
6969
</dependency>
70+
<!-- hive-metastore 2.3.7 references javax.servlet.Filter internally at runtime;
71+
Spring Boot 3.x uses Jakarta Servlet so javax.servlet is no longer on the classpath.
72+
This runtime dependency satisfies Hive's classloading without affecting Spring's
73+
Jakarta servlet stack. -->
74+
<dependency>
75+
<groupId>javax.servlet</groupId>
76+
<artifactId>javax.servlet-api</artifactId>
77+
<version>3.1.0</version>
78+
<scope>runtime</scope>
79+
</dependency>
7080

7181
<!-- test -->
7282
<dependency>

beekeeper-scheduler/pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,17 @@
7272
<groupId>log4j</groupId>
7373
<artifactId>log4j</artifactId>
7474
</exclusion>
75+
<!-- Old Tomcat Jasper implements javax.servlet.Servlet; with javax.servlet-api on the
76+
runtime classpath, Tomcat 10.x would find JspServlet and fail to cast it to
77+
jakarta.servlet.Servlet. Excluding it prevents the ClassCastException. -->
78+
<exclusion>
79+
<groupId>tomcat</groupId>
80+
<artifactId>jasper-compiler</artifactId>
81+
</exclusion>
82+
<exclusion>
83+
<groupId>tomcat</groupId>
84+
<artifactId>jasper-runtime</artifactId>
85+
</exclusion>
7586
</exclusions>
7687
</dependency>
7788
<dependency>

0 commit comments

Comments
 (0)