-
Notifications
You must be signed in to change notification settings - Fork 711
Fix XML unmarshaler not correctly unmarshaling list of timestamp values #166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@@ -52,14 +54,26 @@ func parse(r reflect.Value, node *XMLNode, tag reflect.StructTag) error { | |||
if t == "" { | |||
switch rtype.Kind() { | |||
case reflect.Struct: | |||
t = "structure" | |||
// also it can't be a time object | |||
_, tok := r.Interface().(*time.Time) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May be cleaner to do something like this
if _, ok := reflect.Indirect(v).Interface().(time.Time); ok {
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't be able to use Indirect
because that would produce a nil value for fields, which Interface
will panic on.
Merge pending until we're able to regression test this with the other REST XML protocol services. |
Can this be expedited ? |
Fixes a bug in the XML unmarshaler that would incorrectly try to unmarshal "time.Time" parameters that did not have the struct tag type on them. This would occur for nested lists like CloudWatch's GetMetricDataResponse MetricDataResults timestamp parameters. Adds protocol tests for XML unmarshaling with list of timestamps. Related to aws/aws-sdk-go#1894 Fix #1892
8418c25
to
72da4ca
Compare
"shape": "Timestamps" | ||
}, | ||
"Float64s": { | ||
"shape": "Float64s" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add JSONValue
to this test?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed JSONValue as its not yet supported by RESTXML. we can add that in another change.
Services --- * Synced the V2 SDK with latests AWS service API definitions. SDK Bugs --- * `private/protocol/xml/xmlutil`: Fix XML unmarshaler not correctly unmarshaling list of timestamp values ([aws#166](aws#166)) * Fixes a bug in the XML unmarshaler that would incorrectly try to unmarshal "time.Time" parameters that did not have the struct tag type on them. * Related to [aws/aws-sdk-go#1894](aws/aws-sdk-go#1894) * `service/s3`: Fix typos for migrated S3 specific config options ([aws#173](aws#173)) * Updates the S3 specific config error messages to the correct fields. * `aws/endpoints`: Fix SDK endpoint signing name resolution ([aws#181](aws#181)) * Fixes how the SDK derives service signing names. If the signing name is not modeled in the endpoints package the service will fallback to the signing name modeled in the service model. * Fix [aws#163](aws#163) * Fix [aws#153](aws#153) * Related to [aws/aws-sdk-go#1854](aws/aws-sdk-go#1854) * `service/s3`: remove SelectContent until EventStream supported ([aws#175](aws#175]) * S3's SelectContent API is not functional in the SDK yet, and was not supposed to be generated until EventStream support is available. * Related to [aws/aws-sdk-go#1941](aws/aws-sdk-go#1941) SDK Enhancements --- * `service/s3/s3manager/s3manageriface`: Add WithIterator to mock interface ([aws#156](aws#156)) * Updates the `DownloaderAPI` and `UploaderAPI` mocking interfaces to have parity with the concrete types. * Fixes [aws#155](aws#155)
Services --- * Synced the V2 SDK with latests AWS service API definitions. SDK Bugs --- * `private/protocol/xml/xmlutil`: Fix XML unmarshaler not correctly unmarshaling list of timestamp values ([#166](#166)) * Fixes a bug in the XML unmarshaler that would incorrectly try to unmarshal "time.Time" parameters that did not have the struct tag type on them. * Related to [aws/aws-sdk-go#1894](aws/aws-sdk-go#1894) * `service/s3`: Fix typos for migrated S3 specific config options ([#173](#173)) * Updates the S3 specific config error messages to the correct fields. * `aws/endpoints`: Fix SDK endpoint signing name resolution ([#181](#181)) * Fixes how the SDK derives service signing names. If the signing name is not modeled in the endpoints package the service will fallback to the signing name modeled in the service model. * Fix [#163](#163) * Fix [#153](#153) * Related to [aws/aws-sdk-go#1854](aws/aws-sdk-go#1854) * `service/s3`: remove SelectContent until EventStream supported ([#175](#175]) * S3's SelectContent API is not functional in the SDK yet, and was not supposed to be generated until EventStream support is available. * Related to [aws/aws-sdk-go#1941](aws/aws-sdk-go#1941) SDK Enhancements --- * `service/s3/s3manager/s3manageriface`: Add WithIterator to mock interface ([#156](#156)) * Updates the `DownloaderAPI` and `UploaderAPI` mocking interfaces to have parity with the concrete types. * Fixes [#155](#155)
Fixes a bug in the XML unmarshaler that would incorrectly try to
unmarshal "time.Time" parameters that did not have the struct tag type
on them. This would occur for nested lists like CloudWatch's
GetMetricDataResponse MetricDataResults timestamp parameters.
Adds protocol tests for XML unmarshaling with list of timestamps.
Related to aws/aws-sdk-go#1894
Fix #1892