diff --git a/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPJavaTranslatorTest.java b/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPJavaTranslatorTest.java
index ffc1dca..cda5ff3 100644
--- a/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPJavaTranslatorTest.java
+++ b/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/JSPJavaTranslatorTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2017 IBM Corporation and others.
+ * Copyright (c) 2004, 2023 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -63,8 +63,8 @@
 				// translatedCursorPosition, 519, translatedCursorPosition);
 				// assertEquals("translation was incorrect", "testJspString",
 				// translation.substring(519, 532));
-				int cursorStart = translation.indexOf("out.print( testJspString );" ) + 10;
-				assertEquals("incorrect cursor position >" + cursorStart, 914, cursorStart);
+				int cursorStart = translation.indexOf("out.print( testJspString );" );
+				assertEquals("incorrect cursor position >" + cursorStart, 928, cursorStart);
 			}
 			sm.releaseFromRead();
 		}
diff --git a/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/testfiles/jspInJavascript2.javasource b/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/testfiles/jspInJavascript2.javasource
index 8a0210b..9fc972b 100644
--- a/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/testfiles/jspInJavascript2.javasource
+++ b/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/contentassist/testfiles/jspInJavascript2.javasource
@@ -1,18 +1,18 @@
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.servlet.jsp.*;
+import jakarta.servlet.*;
+import jakarta.servlet.http.*;
+import jakarta.servlet.jsp.*;
 
-public class _testfiles_2F_jspInJavascript2_2E_jsp extends javax.servlet.http.HttpServlet{
+public class _testfiles_2F_jspInJavascript2_2E_jsp extends jakarta.servlet.http.HttpServlet{
 String testJspString = "testJspString"; 
 
-public void _jspService(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
-		throws java.io.IOException, javax.servlet.ServletException {
-javax.servlet.jsp.PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, JspWriter.DEFAULT_BUFFER, true);
-javax.servlet.ServletContext application = pageContext.getServletContext();
-javax.servlet.ServletConfig config = pageContext.getServletConfig();
-javax.servlet.jsp.JspWriter out = pageContext.getOut();
+public void _jspService(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
+		throws java.io.IOException, jakarta.servlet.ServletException {
+jakarta.servlet.jsp.PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, JspWriter.DEFAULT_BUFFER, true);
+jakarta.servlet.ServletContext application = pageContext.getServletContext();
+jakarta.servlet.ServletConfig config = pageContext.getServletConfig();
+jakarta.servlet.jsp.JspWriter out = pageContext.getOut();
 Object page = this;
-javax.servlet.http.HttpSession session = pageContext.getSession();
+jakarta.servlet.http.HttpSession session = pageContext.getSession();
 
 try {
 {out.print("");} //markup
