Skip to content

Commit 899acf5

Browse files
authored
fix: workflow effect.error should not throw MatchError exception (#2378)
1 parent 2eaa50b commit 899acf5

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

publishLocally.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# This script will publish the current snapshot of all artifacts.
22
# Including the maven plugin and archetypes.
33

4+
set -e
45
export SDK_VERSION=$(sbt "print coreSdk/version" | tail -1)
56

67
echo

samples/scala-protobuf-transfer-workflow/src/test/scala/com/example/transfer/api/TransferWorkflowIntegrationSpec.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ class TransferWorkflowIntegrationSpec
5252
}
5353
}
5454

55+
"not start transfer with negative amount" in {
56+
val ex = transferClient.start(Transfer("1", "a", "b", -10)).failed.futureValue
57+
58+
ex.getMessage should include("transfer amount should be greater than zero")
59+
}
60+
5561
}
5662

5763
override def afterAll(): Unit = {

sdk/scala-sdk-protobuf/src/main/scala/kalix/scalasdk/impl/workflow/WorkflowAdapters.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@
55
package kalix.scalasdk.impl.workflow
66

77
import java.util.Optional
8+
89
import scala.jdk.CollectionConverters._
10+
import scala.jdk.DurationConverters.ScalaDurationOps
911
import scala.jdk.FutureConverters.FutureOps
1012
import scala.jdk.OptionConverters._
13+
1114
import akka.stream.Materializer
1215
import com.google.protobuf.Descriptors
1316
import kalix.javasdk
@@ -27,8 +30,6 @@ import kalix.scalasdk.workflow.WorkflowContext
2730
import kalix.scalasdk.workflow.WorkflowOptions
2831
import kalix.scalasdk.workflow.WorkflowProvider
2932

30-
import scala.jdk.DurationConverters.ScalaDurationOps
31-
3233
private[scalasdk] final class JavaWorkflowAdapter[S >: Null](scalaSdkWorkflow: AbstractWorkflow[S])
3334
extends javasdk.workflow.Workflow[S] {
3435

@@ -174,7 +175,8 @@ private[scalasdk] final class JavaWorkflowRouterAdapter[S >: Null](
174175
command: Any,
175176
context: javasdk.workflow.CommandContext): javasdk.workflow.AbstractWorkflow.Effect[_] = {
176177
scalaSdkRouter.handleCommand(commandName, state, command, new ScalaCommandContextAdapter(context)) match {
177-
case WorkflowEffectImpl(javaSdkEffectImpl) => javaSdkEffectImpl
178+
case WorkflowEffectImpl(javaSdkEffectImpl) => javaSdkEffectImpl
179+
case ErrorEffectImpl(javaSdkErrorEffectImpl) => javaSdkErrorEffectImpl
178180
}
179181
}
180182
}

sdk/scala-sdk-protobuf/src/main/scala/kalix/scalasdk/impl/workflow/WorkflowEffectImpl.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ private[scalasdk] final case class WorkflowEffectImpl[S, T](
8585
override def delete: TransitionalEffect[Void] =
8686
TransitionalEffectImpl(javasdkEffect.delete())
8787
}
88-
89-
case class ErrorEffectImpl[R](javasdkEffect: workflow.AbstractWorkflow.Effect.ErrorEffect[T]) extends ErrorEffect[R]
90-
9188
}
89+
90+
private[scalasdk] final case class ErrorEffectImpl[R](javasdkEffect: workflow.AbstractWorkflow.Effect.ErrorEffect[R])
91+
extends ErrorEffect[R]

0 commit comments

Comments
 (0)