Skip to content

Commit 3052226

Browse files
committed
recursive
1 parent 084d23b commit 3052226

File tree

2 files changed

+35
-10
lines changed

2 files changed

+35
-10
lines changed

Examples/runtimes/java/DynamoDbEncryption/src/main/java/software/amazon/cryptography/examples/ScanErrorExample.java

+16-3
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,23 @@ public static void ScanError(String kmsKeyId, String ddbTableName) {
157157
final ScanResponse scanResponse = ddb.scan(scanRequest);
158158
assert false;
159159
} catch (Exception e) {
160-
System.err.println(e.getMessage());
161-
System.err.println(e.getCause());
160+
print_exception(e, "");
161+
}
162+
}
163+
164+
public static void print_exception(Exception e, String indent) {
165+
System.err.println(indent + e.getMessage());
166+
if (e.getCause() instanceof CollectionOfErrors) {
167+
System.err.println(indent + e.getCause().getMessage());
162168
for (RuntimeException err : ((CollectionOfErrors) e.getCause()).list()) {
163-
System.err.println(" " + err.getMessage());
169+
print_exception(err, indent + " ");
170+
}
171+
} else if (
172+
e instanceof
173+
software.amazon.cryptography.materialproviders.model.CollectionOfErrors
174+
) {
175+
for (RuntimeException err : ((software.amazon.cryptography.materialproviders.model.CollectionOfErrors) e).list()) {
176+
print_exception(err, indent + " ");
164177
}
165178
}
166179
}

Examples/runtimes/net/src/ScanErrorExample.cs

+19-7
Original file line numberDiff line numberDiff line change
@@ -125,18 +125,30 @@ public static async Task ScanError()
125125
var scanResponse = await ddb.ScanAsync(scanRequest);
126126
Debug.Assert(false);
127127
}
128-
catch (AWS.Cryptography.DbEncryptionSDK.DynamoDb.Transforms.CollectionOfErrors e)
128+
catch (Exception e)
129+
{
130+
PrintException(e, "");
131+
}
132+
}
133+
134+
public static void PrintException(Exception e, String indent)
135+
{
136+
Console.Error.WriteLine(indent + e.Message);
137+
if (e is AWS.Cryptography.DbEncryptionSDK.DynamoDb.Transforms.CollectionOfErrors)
129138
{
130-
Console.Error.WriteLine("Decryption Errors : ");
131-
Console.Error.WriteLine(e.Message);
132-
foreach (Exception element in e.list)
139+
var ee = e as AWS.Cryptography.DbEncryptionSDK.DynamoDb.Transforms.CollectionOfErrors;
140+
foreach (Exception element in ee.list)
133141
{
134-
Console.WriteLine(element);
142+
PrintException(element, " " + indent);
135143
}
136144
}
137-
catch (Exception e)
145+
else if (e is AWS.Cryptography.MaterialProviders.CollectionOfErrors)
138146
{
139-
Debug.Assert(false);
147+
var ee = e as AWS.Cryptography.MaterialProviders.CollectionOfErrors;
148+
foreach (Exception element in ee.list)
149+
{
150+
PrintException(element, " " + indent);
151+
}
140152
}
141153
}
142154
}

0 commit comments

Comments
 (0)