From a20908b9a6530faf6457f7d16355d8b9326af068 Mon Sep 17 00:00:00 2001 From: Tony Knapp <5892063+texastony@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:24:21 -0700 Subject: [PATCH] fix(Java-SDK): dtor_message is never safe for Opaque (#470) --- .../generator/awssdk/v2/ToNativeAwsV2.java | 27 ------------------- .../awssdk/v2/ToNativeConstants.java | 7 ----- 2 files changed, 34 deletions(-) diff --git a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithyjava/generator/awssdk/v2/ToNativeAwsV2.java b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithyjava/generator/awssdk/v2/ToNativeAwsV2.java index 7c2ad6ea1..2fd559028 100644 --- a/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithyjava/generator/awssdk/v2/ToNativeAwsV2.java +++ b/codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithyjava/generator/awssdk/v2/ToNativeAwsV2.java @@ -553,33 +553,6 @@ protected MethodSpec errorOpaque() { VAR_INPUT, Dafny.datatypeDeconstructor("obj") ) - // If String is set - .nextControlFlow( - "else if ($L.$L.$L())", - VAR_INPUT, - Dafny.datatypeDeconstructor("message"), - Dafny.datatypeConstructorIs("Some") - ) - // if not null, stringify the object - .addStatement( - "final String suffix = $L.dtor_obj() != null ? String.format($S, $L.dtor_obj()) : $S;", - VAR_INPUT, - " Unknown Object: %s", - VAR_INPUT, - "" - ) - // Convert String from Dafny - .addStatement( - "final $T message = $L($L.$L.$L) + suffix", - String.class, - SIMPLE_CONVERSION_METHOD_FROM_SHAPE_TYPE - .get(ShapeType.STRING) - .asNormalReference(), - VAR_INPUT, - Dafny.datatypeDeconstructor("message"), - Dafny.datatypeDeconstructor("value") - ) - .addStatement("return new $T(message)", RuntimeException.class) .endControlFlow() // If obj is not ANY exception and String is not set, Give Up with IllegalStateException .addStatement( diff --git a/codegen/smithy-dafny-codegen/src/test/java/software/amazon/polymorph/smithyjava/generator/awssdk/v2/ToNativeConstants.java b/codegen/smithy-dafny-codegen/src/test/java/software/amazon/polymorph/smithyjava/generator/awssdk/v2/ToNativeConstants.java index 1d62b9fda..e240b9e28 100644 --- a/codegen/smithy-dafny-codegen/src/test/java/software/amazon/polymorph/smithyjava/generator/awssdk/v2/ToNativeConstants.java +++ b/codegen/smithy-dafny-codegen/src/test/java/software/amazon/polymorph/smithyjava/generator/awssdk/v2/ToNativeConstants.java @@ -100,7 +100,6 @@ public static software.amazon.awssdk.services.kms.model.RequiredListEnum Require import java.lang.Exception; import java.lang.IllegalStateException; import java.lang.RuntimeException; - import java.lang.String; import software.amazon.awssdk.services.kms.KmsClient; import software.amazon.awssdk.services.kms.model.DependencyTimeoutException; import software.amazon.awssdk.services.kms.model.DoSomethingRequest; @@ -149,10 +148,6 @@ public static RuntimeException Error(Error_Opaque dafnyValue) { return (KmsException) dafnyValue.dtor_obj(); } else if (dafnyValue.dtor_obj() instanceof Exception) { return (RuntimeException) dafnyValue.dtor_obj(); - } else if (dafnyValue.dtor_message().is_Some()) { - final String suffix = dafnyValue.dtor_obj() != null ? String.format(%s, dafnyValue.dtor_obj()) : %s;; - final String message = software.amazon.smithy.dafny.conversion.ToNative.Simple.String(dafnyValue.dtor_message().dtor_value()) + suffix; - return new RuntimeException(message); } return new IllegalStateException(String.format(%s, dafnyValue)); } @@ -161,8 +156,6 @@ public static RuntimeException Error(Error_Opaque dafnyValue) { STRING_CONVERSION, STRING_CONVERSION, STRING_CONVERSION, - "\" Unknown Object: %s\"", - "\"\"", "\"Unknown error thrown while calling AWS. %s\"" ); }