This is an automated email from the ASF dual-hosted git repository.

Yicong-Huang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/texera.git


The following commit(s) were added to refs/heads/main by this push:
     new 34a00cc395 docs(scala): fully-qualify ScalaDoc @throws and link 
references (#4671)
34a00cc395 is described below

commit 34a00cc3956755253374c3bde85426ce90db7f26
Author: Yicong Huang <[email protected]>
AuthorDate: Sat May 2 02:36:32 2026 -0700

    docs(scala): fully-qualify ScalaDoc @throws and link references (#4671)
    
    ### What changes were proposed in this PR?
    
    Resolve the ScalaDoc broken-link warnings tracked in #4670 by replacing
    bare class names with fully-qualified names in `@throws` tags and
    `[[X]]` inline links.
    
    - JDK exception references → `java.lang.AssertionError`,
    `java.util.NoSuchElementException`,
    `java.lang.IllegalArgumentException`, `java.io.FileNotFoundException`,
    `java.lang.Exception`, `java.sql.SQLException`,
    `java.lang.reflect.AnnotatedType`.
    - JAX-RS exception → `javax.ws.rs.BadRequestException`.
    - Project-internal references resolved against their companion objects:
    
`org.apache.texera.amber.core.tuple.AttributeTypeUtils.AttributeTypeException`,
    
`org.apache.texera.service.resource.ComputingUnitManagingResource.DashboardWorkflowComputingUnit`.
    - `S3StorageClient.scala` — Javadoc `{@link software.amazon.awssdk...}`
    references converted to ScalaDoc `[[software.amazon.awssdk...]]` form
    (the AWS SDK references are already on the classpath; ScalaDoc was
    rejecting the Javadoc syntax).
    - Vendored `JsonSchemaInject.java` — same-class method links `{@link
    #json()}` rewritten with explicit class context as `{@link
    JsonSchemaInject#json()}`.
    
    `@throws[X]` annotations in code (Scala-level annotations, not docstring
    tags) are intentionally untouched — only the ScalaDoc `* @throws X`
    lines and `[[X]]` references in comments change.
    
    Two extra docstring sites were swept up while at it
    (`StableMergeSortOpExecSpec.scala`, `DatasetResource.scala`) so the
    build does not start emitting new warnings the next time their modules'
    scaladoc runs.
    
    ### Any related issues, documentation, discussions?
    
    Closes #4670.
    
    ### How was this PR tested?
    
    Pure ScalaDoc / comment changes — no behavioral effect, no test changes.
    Verified by:
    
    1. \`grep -r '@throws AssertionError' --include='*.scala'\` and the same
    for the other 8 bare class names returns zero hits across the repo.
    2. CI's scala job runs scaladoc as part of \`sbt jacoco\` / compile and
    will report any remaining unresolved references.
    
    ### Was this PR authored or co-authored using generative AI tooling?
    
    Generated-by: Claude Code (Opus 4.7, 1M context)
    
    Co-authored-by: Yicong Huang <[email protected]>
    Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
---
 .../controller/execution/OperatorExecution.scala   |  2 +-
 .../controller/execution/RegionExecution.scala     |  4 ++--
 .../controller/execution/WorkflowExecution.scala   |  4 ++--
 .../web/resource/dashboard/hub/HubResource.scala   |  2 +-
 .../amber/pybuilder/EncodableInspector.scala       |  4 ++--
 .../texera/amber/core/storage/FileResolver.scala   |  6 ++---
 .../texera/amber/core/storage/VFSURIFactory.scala  |  4 ++--
 .../core/storage/util/LakeFSStorageClient.scala    |  2 +-
 .../org/apache/texera/amber/core/tuple/Tuple.scala |  2 +-
 .../org/apache/texera/amber/util/ArrowUtils.scala  |  4 ++--
 .../texera/service/util/LargeBinaryManager.scala   |  2 +-
 .../texera/service/util/S3StorageClient.scala      |  6 ++---
 .../jsonSchema/annotations/JsonSchemaInject.java   |  4 ++--
 .../operator/source/sql/SQLSourceOpExec.scala      | 28 +++++++++++-----------
 .../sql/asterixdb/AsterixDBSourceOpExec.scala      |  2 +-
 .../operator/sort/StableMergeSortOpExecSpec.scala  |  2 +-
 .../resource/ComputingUnitManagingResource.scala   |  2 +-
 .../texera/service/resource/DatasetResource.scala  |  2 +-
 18 files changed, 41 insertions(+), 41 deletions(-)

diff --git 
a/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/OperatorExecution.scala
 
b/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/OperatorExecution.scala
index 5a7f57083a..8b698af8f6 100644
--- 
a/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/OperatorExecution.scala
+++ 
b/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/OperatorExecution.scala
@@ -48,7 +48,7 @@ case class OperatorExecution() {
     *
     * @param workerId The `ActorVirtualIdentity` representing the unique 
identity of the worker.
     * @return The `WorkerExecution` instance associated with the specified 
workerId.
-    * @throws AssertionError if a `WorkerExecution` already exists for the 
given workerId.
+    * @throws java.lang.AssertionError if a `WorkerExecution` already exists 
for the given workerId.
     */
   def initWorkerExecution(workerId: ActorVirtualIdentity): WorkerExecution = {
     assert(
diff --git 
a/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/RegionExecution.scala
 
b/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/RegionExecution.scala
index d5939c2e3b..cca66cfc04 100644
--- 
a/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/RegionExecution.scala
+++ 
b/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/RegionExecution.scala
@@ -53,7 +53,7 @@ case class RegionExecution(region: Region) {
     * @param physicalOpId             The physical operatorId for which to 
initialize or retrieve the execution.
     * @param inheritOperatorExecution An optional `OperatorExecution` to make 
a copy.
     * @return The `OperatorExecution` associated with the given physical 
operatorId.
-    * @throws AssertionError if the `OperatorExecution` has already been 
initialized.
+    * @throws java.lang.AssertionError if the `OperatorExecution` has already 
been initialized.
     */
   def initOperatorExecution(
       physicalOpId: PhysicalOpIdentity,
@@ -98,7 +98,7 @@ case class RegionExecution(region: Region) {
     *
     * @param link The `PhysicalLink` for which to initialize the 
`LinkExecution`.
     * @return The newly initialized `LinkExecution`.
-    * @throws AssertionError if the `LinkExecution` has already been 
initialized for the link.
+    * @throws java.lang.AssertionError if the `LinkExecution` has already been 
initialized for the link.
     */
   def initLinkExecution(link: PhysicalLink): LinkExecution = {
     assert(!linkExecutions.contains(link))
diff --git 
a/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/WorkflowExecution.scala
 
b/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/WorkflowExecution.scala
index c1e44bd5cc..01a8fee466 100644
--- 
a/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/WorkflowExecution.scala
+++ 
b/amber/src/main/scala/org/apache/texera/amber/engine/architecture/controller/execution/WorkflowExecution.scala
@@ -41,7 +41,7 @@ case class WorkflowExecution() {
     *
     * @param region The `Region` for which to initialize or retrieve the 
`RegionExecution`.
     * @return The `RegionExecution` associated with the given `Region`.
-    * @throws AssertionError if the `RegionExecution` has already been 
initialized.
+    * @throws java.lang.AssertionError if the `RegionExecution` has already 
been initialized.
     */
   def initRegionExecution(region: Region): RegionExecution = {
     // ensure the region execution hasn't been initialized already.
@@ -130,7 +130,7 @@ case class WorkflowExecution() {
     * @param physicalOpId The unique identifier of the physical operator for 
which the latest execution is
     *                     to be retrieved.
     * @return The latest `OperatorExecution` instance associated with the 
given physical operatorId.
-    * @throws NoSuchElementException if no `OperatorExecution` is found for 
the specified operatorId.
+    * @throws java.util.NoSuchElementException if no `OperatorExecution` is 
found for the specified operatorId.
     */
   def getLatestOperatorExecution(physicalOpId: PhysicalOpIdentity): 
OperatorExecution = {
     getLatestOperatorExecutionOption(physicalOpId).get
diff --git 
a/amber/src/main/scala/org/apache/texera/web/resource/dashboard/hub/HubResource.scala
 
b/amber/src/main/scala/org/apache/texera/web/resource/dashboard/hub/HubResource.scala
index fe687aa1d7..c4cb9ee3cb 100644
--- 
a/amber/src/main/scala/org/apache/texera/web/resource/dashboard/hub/HubResource.scala
+++ 
b/amber/src/main/scala/org/apache/texera/web/resource/dashboard/hub/HubResource.scala
@@ -523,7 +523,7 @@ class HubResource {
     *                      Supported values: View, Like, Clone, Unlike. If 
empty or null, all actions are returned.
     * @return              A list of CountResponse objects, one per 
(entityType, entityId) pair,
     *                      each containing the counts for the requested 
actions.
-    * @throws BadRequestException if entityTypes or entityIds are missing, 
empty, mismatched in length,
+    * @throws javax.ws.rs.BadRequestException if entityTypes or entityIds are 
missing, empty, mismatched in length,
     *         or if actionTypes contains an unsupported value.
     */
   @GET
diff --git 
a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala
 
b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala
index 9362016c72..781c1c9a0a 100644
--- 
a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala
+++ 
b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala
@@ -70,7 +70,7 @@ final class EncodableInspector[C <: blackbox.Context](val c: 
C) {
   }
 
   /**
-   * True if a [[Type]] carries @EncodableStringAnnotation as a TYPE_USE 
annotation (via [[AnnotatedType]]).
+   * True if a [[Type]] carries @EncodableStringAnnotation as a TYPE_USE 
annotation (via [[java.lang.reflect.AnnotatedType]]).
    *
    * Walks common wrappers (existentials, refinements, type refs) to find 
nested annotations.
    */
@@ -103,7 +103,7 @@ final class EncodableInspector[C <: blackbox.Context](val 
c: C) {
   /**
    * Checks @EncodableStringAnnotation on either:
    *   - accessed symbol (field/param), or
-   *   - type (TYPE_USE), via [[AnnotatedType]].
+   *   - type (TYPE_USE), via [[java.lang.reflect.AnnotatedType]].
    */
   def treeHasEncodableString(tree: Tree): Boolean = {
     val rawSym = tree.symbol
diff --git 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/FileResolver.scala
 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/FileResolver.scala
index cda5b28779..c8a407df99 100644
--- 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/FileResolver.scala
+++ 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/FileResolver.scala
@@ -44,7 +44,7 @@ object FileResolver {
     * Resolves a given fileName to either a file on the local file system or a 
dataset file.
     *
     * @param fileName the name of the file to resolve.
-    * @throws FileNotFoundException if the file cannot be resolved.
+    * @throws java.io.FileNotFoundException if the file cannot be resolved.
     * @return A URI pointing to the resolved file.
     */
   def resolve(fileName: String): URI = {
@@ -64,7 +64,7 @@ object FileResolver {
 
   /**
     * Attempts to resolve a local file path.
-    * @throws FileNotFoundException if the local file does not exist
+    * @throws java.io.FileNotFoundException if the local file does not exist
     * @param fileName the name of the file to check
     */
   private def localResolveFunc(fileName: String): URI = {
@@ -110,7 +110,7 @@ object FileResolver {
     *
     * @param fileName the name of the file to attempt resolving as a 
DatasetFileDocument
     * @return Either[String, DatasetFileDocument] - Right(document) if 
creation succeeds
-    * @throws FileNotFoundException if the dataset file does not exist or 
cannot be created
+    * @throws java.io.FileNotFoundException if the dataset file does not exist 
or cannot be created
     */
   private def datasetResolveFunc(fileName: String): URI = {
     val (ownerEmail, datasetName, versionName, fileRelativePathSegments) =
diff --git 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/VFSURIFactory.scala
 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/VFSURIFactory.scala
index 3513ac5ecd..0fbee64457 100644
--- 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/VFSURIFactory.scala
+++ 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/VFSURIFactory.scala
@@ -44,7 +44,7 @@ object VFSURIFactory {
     *
     * @param uri The VFS URI to parse.
     * @return A `VFSUriComponents` object with the extracted data.
-    * @throws IllegalArgumentException if the URI is malformed.
+    * @throws java.lang.IllegalArgumentException if the URI is malformed.
     */
   def decodeURI(uri: URI): (
       WorkflowIdentity,
@@ -135,7 +135,7 @@ object VFSURIFactory {
     * @param executionId    Execution identifier.
     * @param operatorId     Operator identifier.
     * @return A VFS URI
-    * @throws IllegalArgumentException if `resourceType` is `RESULT`, if 
`operatorId` is provided for
+    * @throws java.lang.IllegalArgumentException if `resourceType` is 
`RESULT`, if `operatorId` is provided for
     *                                  `RUNTIME_STATISTICS`, or if 
`operatorId` is not provided for `CONSOLE_MESSAGES`.
     */
   private def createNonResultVFSURI(
diff --git 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/util/LakeFSStorageClient.scala
 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/util/LakeFSStorageClient.scala
index 14737b9800..613255173e 100644
--- 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/util/LakeFSStorageClient.scala
+++ 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/storage/util/LakeFSStorageClient.scala
@@ -400,7 +400,7 @@ object LakeFSStorageClient {
     *
     * @param address URI string in the form "<scheme>://<bucket>/<key...>"
     * @return (bucket, key) where key does not start with "/"
-    * @throws IllegalArgumentException
+    * @throws java.lang.IllegalArgumentException
     *   if the address is empty, not a valid URI, missing bucket/host, or 
missing key/path
     */
   def parsePhysicalAddress(address: String): (String, String) = {
diff --git 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Tuple.scala
 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Tuple.scala
index cc3220827d..f7a962eb4a 100644
--- 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Tuple.scala
+++ 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Tuple.scala
@@ -40,7 +40,7 @@ class TupleBuildingException(errorMessage: String) extends 
RuntimeException(erro
   * @param fieldVals A list of values corresponding to the fields defined in 
the schema. Each value in this list
   *                  is mapped to a field in the schema, in the same order as 
the fields are defined.
   *
-  * @throws IllegalArgumentException if either schema or fieldVals is null, 
ensuring that every Tuple has a well-defined structure.
+  * @throws java.lang.IllegalArgumentException if either schema or fieldVals 
is null, ensuring that every Tuple has a well-defined structure.
   */
 case class Tuple @JsonCreator() (
     @JsonProperty(value = "schema", required = true) schema: Schema,
diff --git 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/util/ArrowUtils.scala
 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/util/ArrowUtils.scala
index 626047fda2..a6f22085b6 100644
--- 
a/common/workflow-core/src/main/scala/org/apache/texera/amber/util/ArrowUtils.scala
+++ 
b/common/workflow-core/src/main/scala/org/apache/texera/amber/util/ArrowUtils.scala
@@ -115,7 +115,7 @@ object ArrowUtils extends LazyLogging {
     * Converts an ArrowType into an AttributeType.
     *
     * @param srcType the ArrowType to be converted.
-    * @throws AttributeTypeException if the type cannot be converted.
+    * @throws 
org.apache.texera.amber.core.tuple.AttributeTypeUtils.AttributeTypeException if 
the type cannot be converted.
     * @return An AttributeType.
     */
   @throws[AttributeTypeException]
@@ -259,7 +259,7 @@ object ArrowUtils extends LazyLogging {
     * Converts an AttributeType into an ArrowType (PrimitiveType).
     *
     * @param srcType The AttributeType to be converted.
-    * @throws AttributeTypeException if the type cannot be converted.
+    * @throws 
org.apache.texera.amber.core.tuple.AttributeTypeUtils.AttributeTypeException if 
the type cannot be converted.
     * @return A PrimitiveType, a type of ArrowType, does not handle complex 
data.
     */
   @throws[AttributeTypeException]
diff --git 
a/common/workflow-core/src/main/scala/org/apache/texera/service/util/LargeBinaryManager.scala
 
b/common/workflow-core/src/main/scala/org/apache/texera/service/util/LargeBinaryManager.scala
index b23edb7ae9..44db3929f2 100644
--- 
a/common/workflow-core/src/main/scala/org/apache/texera/service/util/LargeBinaryManager.scala
+++ 
b/common/workflow-core/src/main/scala/org/apache/texera/service/util/LargeBinaryManager.scala
@@ -48,7 +48,7 @@ object LargeBinaryManager extends LazyLogging {
   /**
     * Deletes all large binaries from the bucket.
     *
-    * @throws Exception if the deletion fails
+    * @throws java.lang.Exception if the deletion fails
     * @return Unit
     */
   def deleteAllObjects(): Unit = {
diff --git 
a/common/workflow-core/src/main/scala/org/apache/texera/service/util/S3StorageClient.scala
 
b/common/workflow-core/src/main/scala/org/apache/texera/service/util/S3StorageClient.scala
index d692c574b8..148205a681 100644
--- 
a/common/workflow-core/src/main/scala/org/apache/texera/service/util/S3StorageClient.scala
+++ 
b/common/workflow-core/src/main/scala/org/apache/texera/service/util/S3StorageClient.scala
@@ -266,8 +266,8 @@ object S3StorageClient {
     * Uploads a single part for an in-progress S3 multipart upload.
     *
     * This method wraps the AWS SDK v2 {@code UploadPart} API:
-    * it builds an {@link 
software.amazon.awssdk.services.s3.model.UploadPartRequest}
-    * and streams the part payload via a {@link 
software.amazon.awssdk.core.sync.RequestBody}.
+    * it builds an 
[[software.amazon.awssdk.services.s3.model.UploadPartRequest]]
+    * and streams the part payload via a 
[[software.amazon.awssdk.core.sync.RequestBody]].
     *
     * Payload handling:
     *   - If {@code contentLength} is provided, the payload is streamed 
directly from {@code inputStream}
@@ -287,7 +287,7 @@ object S3StorageClient {
     * @param partNumber    1-based part number for this upload.
     * @param inputStream   Stream containing the bytes for this part.
     * @param contentLength Optional size (in bytes) of this part; provide it 
to avoid buffering in memory.
-    * @return              The {@link 
software.amazon.awssdk.services.s3.model.UploadPartResponse},
+    * @return              The 
[[software.amazon.awssdk.services.s3.model.UploadPartResponse]],
     *                      including the part ETag used for completing the 
multipart upload.
     */
   def uploadPartWithRequest(
diff --git 
a/common/workflow-operator/src/main/scala/com/kjetland/jackson/jsonSchema/annotations/JsonSchemaInject.java
 
b/common/workflow-operator/src/main/scala/com/kjetland/jackson/jsonSchema/annotations/JsonSchemaInject.java
index 3b2df70eac..5244a058ae 100644
--- 
a/common/workflow-operator/src/main/scala/com/kjetland/jackson/jsonSchema/annotations/JsonSchemaInject.java
+++ 
b/common/workflow-operator/src/main/scala/com/kjetland/jackson/jsonSchema/annotations/JsonSchemaInject.java
@@ -30,7 +30,7 @@ public @interface JsonSchemaInject {
     String json() default "{}";
 
     /**
-     * @return a class for supplier of a raw json. The json gets applied after 
{@link #json()}.
+     * @return a class for supplier of a raw json. The json gets applied after 
{@link JsonSchemaInject#json()}.
      */
     Class<? extends Supplier<JsonNode>> jsonSupplier() default None.class;
 
@@ -40,7 +40,7 @@ public @interface JsonSchemaInject {
     String jsonSupplierViaLookup() default "";
 
     /**
-     * @return a collection of key/value pairs to merge on top of the 
generated jsonSchema and applied after {@link #jsonSupplier()}
+     * @return a collection of key/value pairs to merge on top of the 
generated jsonSchema and applied after {@link JsonSchemaInject#jsonSupplier()}
      */
     JsonSchemaString[] strings() default {};
 
diff --git 
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/source/sql/SQLSourceOpExec.scala
 
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/source/sql/SQLSourceOpExec.scala
index be04ba2a46..9931f98890 100644
--- 
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/source/sql/SQLSourceOpExec.scala
+++ 
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/source/sql/SQLSourceOpExec.scala
@@ -68,7 +68,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
         * - If resultSet is exhausted, send the next query until no more 
queries are available.
         * - If no more queries, return null.
         *
-        * @throws SQLException all possible exceptions from JDBC
+        * @throws java.sql.SQLException all possible exceptions from JDBC
         * @return Tuple
         */
       @throws[SQLException]
@@ -143,7 +143,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     * - tableNames, to check if the input tableName exists on the database 
server, to prevent SQL injection.
     * - batchColumnBoundaries, to be used to split mini queries, if 
progressive mode is enabled.
     *
-    * @throws SQLException all possible exceptions from JDBC
+    * @throws java.sql.SQLException all possible exceptions from JDBC
     */
   @throws[SQLException]
   override def open(): Unit = {
@@ -164,7 +164,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
   /**
     * close resultSet, preparedStatement and connection
     *
-    * @throws SQLException all possible exceptions from JDBC
+    * @throws java.sql.SQLException all possible exceptions from JDBC
     */
   @throws[SQLException]
   override def close(): Unit = {
@@ -180,7 +180,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     * Build a Tuple from a row of curResultSet
     *
     * @return the new Tuple
-    * @throws SQLException all possible exceptions from JDBC
+    * @throws java.sql.SQLException all possible exceptions from JDBC
     */
   @throws[SQLException]
   protected def buildTupleFromRow: Tuple = {
@@ -214,7 +214,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     * - If it is not progressive mode, this method will return false when
     * invoked the second time. Which means there is only one query.
     *
-    * @throws IllegalArgumentException if the given batchByAttribute's type is
+    * @throws java.lang.IllegalArgumentException if the given 
batchByAttribute's type is
     *                                  not supported to be incremental.
     * @return A boolean value whether there exists the next query or not.
     */
@@ -266,7 +266,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     * be [lower, nextLower)
     *
     * @param queryBuilder the target query builder
-    * @throws IllegalArgumentException if the given batchByAttribute's type is
+    * @throws java.lang.IllegalArgumentException if the given 
batchByAttribute's type is
     *                                  not supported to be incremental.
     */
   @throws[IllegalArgumentException]
@@ -305,7 +305,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     * Convert the Number value to a String to be concatenate to SQL.
     *
     * @param value a Number, contains the value to be converted.
-    * @throws IllegalArgumentException when the batchByAttribute is missing or 
the type is unexpected
+    * @throws java.lang.IllegalArgumentException when the batchByAttribute is 
missing or the type is unexpected
     * @return a String of that value
     */
   @throws[IllegalArgumentException]
@@ -332,7 +332,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     * Fetch for a numeric value of the boundary of the batchByColumn.
     *
     * @param side either "MAX" or "MIN" for boundary
-    * @throws IllegalArgumentException if the batchByAttribute type is 
unexpected
+    * @throws java.lang.IllegalArgumentException if the batchByAttribute type 
is unexpected
     * @return a numeric value, could be Int, Long or Double
     */
   @throws[IllegalArgumentException]
@@ -368,7 +368,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
   /**
     * Establishes the connection to database.
     *
-    * @throws SQLException all possible exceptions from JDBC
+    * @throws java.sql.SQLException all possible exceptions from JDBC
     * @return a SQL connection over JDBC
     */
   @throws[SQLException]
@@ -378,7 +378,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     * Fetch all table names from the given database. This is used to
     * check the input table name to prevent from SQL injection.
     *
-    * @throws SQLException all possible exceptions from JDBC
+    * @throws java.sql.SQLException all possible exceptions from JDBC
     */
   @throws[SQLException]
   protected def loadTableNames(): Unit
@@ -397,7 +397,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     *
     * Or a fixed offset [OFFSET ?] to be added if not progressive.
     *
-    * @throws IllegalArgumentException if the given batchByAttribute's type is
+    * @throws java.lang.IllegalArgumentException if the given 
batchByAttribute's type is
     *                                  not supported to be incremental.
     * @return string of sql query
     */
@@ -443,7 +443,7 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     * - If progressive mode is not enabled, this method will be invoked
     * only once, returning the one giant query.
     *
-    * @throws SQLException all possible exceptions from JDBC
+    * @throws java.sql.SQLException all possible exceptions from JDBC
     * @return a PreparedStatement to be filled with values.
     */
   @throws[SQLException]
@@ -492,8 +492,8 @@ abstract class SQLSourceOpExec(descString: String) extends 
SourceOperatorExecuto
     * Load the lower bound and upper bound of the batchByColumn. Those
     * bounds will be used in progressive mode to determine mini-queries.
     *
-    * @throws SQLException             all possible exceptions from JDBC
-    * @throws IllegalArgumentException if the batchByAttribute is missing or 
the type is unexpected
+    * @throws java.sql.SQLException             all possible exceptions from 
JDBC
+    * @throws java.lang.IllegalArgumentException if the batchByAttribute is 
missing or the type is unexpected
     */
   @throws[SQLException]
   @throws[IllegalArgumentException]
diff --git 
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/source/sql/asterixdb/AsterixDBSourceOpExec.scala
 
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/source/sql/asterixdb/AsterixDBSourceOpExec.scala
index c82dcfe2e0..f7df4064a1 100644
--- 
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/source/sql/asterixdb/AsterixDBSourceOpExec.scala
+++ 
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/source/sql/asterixdb/AsterixDBSourceOpExec.scala
@@ -198,7 +198,7 @@ class AsterixDBSourceOpExec private[asterixdb] (
     * ['hello', 'world'], {'mode':'all'}
     *
     * @param queryBuilder queryBuilder for concatenation
-    * @throws IllegalArgumentException if attribute does not support string 
based search
+    * @throws java.lang.IllegalArgumentException if attribute does not support 
string based search
     */
   @throws[IllegalArgumentException]
   def addFilterConditions(queryBuilder: StringBuilder): Unit = {
diff --git 
a/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/sort/StableMergeSortOpExecSpec.scala
 
b/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/sort/StableMergeSortOpExecSpec.scala
index bd8d41eed0..46c3727cd3 100644
--- 
a/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/sort/StableMergeSortOpExecSpec.scala
+++ 
b/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/sort/StableMergeSortOpExecSpec.scala
@@ -62,7 +62,7 @@ class StableMergeSortOpExecSpec extends AnyFlatSpec {
     * Construct a Tuple for the provided schema.
     *
     * @param values map-like varargs: "colName" -> value. Must provide every 
column.
-    * @throws NoSuchElementException if a provided key is not in the schema.
+    * @throws java.util.NoSuchElementException if a provided key is not in the 
schema.
     */
   private def tupleOf(schema: Schema, values: (String, Any)*): Tuple = {
     val valueMap = values.toMap
diff --git 
a/computing-unit-managing-service/src/main/scala/org/apache/texera/service/resource/ComputingUnitManagingResource.scala
 
b/computing-unit-managing-service/src/main/scala/org/apache/texera/service/resource/ComputingUnitManagingResource.scala
index 2d1b312b0e..d013d71e6b 100644
--- 
a/computing-unit-managing-service/src/main/scala/org/apache/texera/service/resource/ComputingUnitManagingResource.scala
+++ 
b/computing-unit-managing-service/src/main/scala/org/apache/texera/service/resource/ComputingUnitManagingResource.scala
@@ -585,7 +585,7 @@ class ComputingUnitManagingResource {
   }
 
   /**
-    * Return a fully populated [[DashboardWorkflowComputingUnit]] for the
+    * Return a fully populated 
[[org.apache.texera.service.resource.ComputingUnitManagingResource.DashboardWorkflowComputingUnit]]
 for the
     * specified `cuid`, identical to one row produced by /list.
     *
     * @param cuid the ID of the computing-unit to fetch
diff --git 
a/file-service/src/main/scala/org/apache/texera/service/resource/DatasetResource.scala
 
b/file-service/src/main/scala/org/apache/texera/service/resource/DatasetResource.scala
index 9832cbbf64..7bcd3bb77c 100644
--- 
a/file-service/src/main/scala/org/apache/texera/service/resource/DatasetResource.scala
+++ 
b/file-service/src/main/scala/org/apache/texera/service/resource/DatasetResource.scala
@@ -1359,7 +1359,7 @@ class DatasetResource {
     * - Cannot start with a hyphen.
     *
     * @param name The dataset name to validate.
-    * @throws IllegalArgumentException if the name is invalid.
+    * @throws java.lang.IllegalArgumentException if the name is invalid.
     */
   private def validateDatasetName(name: String): Unit = {
     val datasetNamePattern = "^[A-Za-z0-9_-]+$".r

Reply via email to