Skip to content

fix: Make Details field extends GenericJson so that GoogleJsonError should include any arbitrary error info from services #2210

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

Merged
merged 129 commits into from
Jan 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
7d0ccc8
Try to reproduce the original error.
blakeli0 Apr 19, 2022
c76e664
Fix 1 - extends GenericJson
blakeli0 Apr 19, 2022
f7e8c50
chore(deps): update dependency org.apache.maven.plugins:maven-javadoc…
renovate-bot Apr 21, 2022
c50863c
chore(deps): update dependency org.apache.maven.plugins:maven-site-pl…
renovate-bot Apr 21, 2022
09a1323
chore(deps): update dependency org.sonatype.plugins:nexus-staging-mav…
renovate-bot Apr 21, 2022
fb8f1f4
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot Apr 21, 2022
e5f97d0
fix(deps): update dependency com.google.cloud:libraries-bom to v25.2.…
renovate-bot Apr 27, 2022
502e6ab
chore(deps): update dependency org.apache.maven.plugins:maven-project…
renovate-bot May 5, 2022
37e0594
fix(deps): update dependency com.google.api-client:google-api-client-…
renovate-bot May 9, 2022
f8121a7
fix(deps): update dependency com.google.api-client:google-api-client-…
renovate-bot May 9, 2022
5bc17b0
fix(deps): update dependency com.google.api-client:google-api-client-…
renovate-bot May 9, 2022
9f6b584
chore(deps): update project.http.version to v1.41.8 (#2055)
renovate-bot May 9, 2022
bd3248f
fix(deps): update dependency com.google.api-client:google-api-client …
renovate-bot May 9, 2022
76386fd
fix(deps): update dependency com.google.api-client:google-api-client-…
renovate-bot May 9, 2022
ef7c8ce
fix(deps): update dependency com.google.api-client:google-api-client-…
renovate-bot May 10, 2022
7f48411
fix(deps): update dependency com.google.api-client:google-api-client-…
renovate-bot May 10, 2022
c226eac
fix(deps): update dependency com.google.api-client:google-api-client-…
renovate-bot May 10, 2022
9ed3f53
fix(deps): update dependency com.google.api-client:google-api-client-…
renovate-bot May 10, 2022
efb61e4
fix(deps): update dependency com.google.api-client:google-api-client-…
renovate-bot May 10, 2022
c135466
chore: set Java header at native image runtime (#2069)
mpeddada1 May 12, 2022
8df5308
fix(deps): update dependency com.google.appengine:appengine-api-1.0-s…
renovate-bot May 12, 2022
e032b28
chore: remove old deprecated class (#2074)
eaball35 May 16, 2022
b6e742a
chore(deps): update dependency org.apache.felix:maven-bundle-plugin t…
renovate-bot May 16, 2022
a32ca8b
fix(deps): update dependency com.google.cloud:libraries-bom to v25.3.…
renovate-bot May 16, 2022
43b45d1
feat: add build scripts for native image testing in Java 17 (#1440) (…
gcf-owl-bot[bot] May 19, 2022
219e67e
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot May 26, 2022
37dbc55
fix(deps): update dependency com.google.oauth-client:google-oauth-cli…
renovate-bot Jun 2, 2022
4ca4233
fix: use verifyPayload instead of verify to disable duplicate signatu…
TimurSadykov Jun 2, 2022
fed74c0
chore(main): release 1.35.0 (#2039)
release-please[bot] Jun 2, 2022
1c1ac53
chore(main): release 1.35.1-SNAPSHOT (#2082)
release-please[bot] Jun 2, 2022
e80a821
fix(deps): update dependency com.google.api-client:google-api-client …
renovate-bot Jun 6, 2022
f66c51e
fix(deps): update dependency com.google.cloud:libraries-bom to v25.4.…
renovate-bot Jun 6, 2022
e0438e2
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot Jun 6, 2022
eda7cf5
fix(deps): update dependency com.google.oauth-client:google-oauth-cli…
renovate-bot Jun 10, 2022
0af1fa9
chore(deps): update project.http.version to v1.42.0 (#2087)
renovate-bot Jun 10, 2022
0ce536e
chore(deps): update dependency org.apache.maven.plugins:maven-surefir…
renovate-bot Jun 10, 2022
871de9a
chore(main): release 1.35.1 (#2089)
release-please[bot] Jun 10, 2022
ef2cd98
chore(main): release 1.35.2-SNAPSHOT (#2090)
release-please[bot] Jun 10, 2022
08691e3
fix(deps): update dependency com.google.api-client:google-api-client …
renovate-bot Jun 13, 2022
cddbf6a
chore(deps): update dependency org.apache.maven.plugins:maven-enforce…
renovate-bot Jun 13, 2022
17864f0
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot Jun 27, 2022
477b88c
chore: update dependencies for regapic (#1467) (#2097)
gcf-owl-bot[bot] Jun 27, 2022
de2f775
chore: Disable CLIRR checks on releas (#1474) (#2098)
gcf-owl-bot[bot] Jun 30, 2022
c97576c
chore(main): release 1.35.2 (#2093)
release-please[bot] Jul 1, 2022
c9dbddf
chore(main): release 1.35.3-SNAPSHOT (#2099)
release-please[bot] Jul 1, 2022
e6cf5ba
chore(deps): update project.http.version to v1.42.1 (#2100)
renovate-bot Jul 14, 2022
cfe83ad
fix(deps): update dependency com.google.api-client:google-api-client …
renovate-bot Jul 14, 2022
15451d2
chore(deps): update dependency org.apache.maven.plugins:maven-assembl…
renovate-bot Jul 14, 2022
b0fb09a
fix(deps): update dependency com.google.cloud:libraries-bom to v26 (#…
renovate-bot Jul 14, 2022
94bbdf6
fix!: remove deprecated class (#1666)
elharo Jul 14, 2022
0664505
chore(main): release 2.0.0 (#2105)
release-please[bot] Jul 14, 2022
21709c1
chore(main): release 2.0.1-SNAPSHOT (#2106)
release-please[bot] Jul 14, 2022
8661d3a
chore(deps): update dependency org.apache.felix:maven-bundle-plugin t…
renovate-bot Jul 14, 2022
5ef6490
chore(deps): update project.http.version to v1.42.2 (#2110)
renovate-bot Jul 14, 2022
0fae362
fix(deps): update dependency com.google.api-client:google-api-client …
renovate-bot Jul 14, 2022
871b033
chore(deps): update dependency org.apache.maven.plugins:maven-depende…
renovate-bot Jul 14, 2022
3f54db6
fix: add error description to batch emptiness validation (#2109)
BenWhitehead Jul 15, 2022
ab960fa
chore(deps): update dependency org.apache.maven.plugins:maven-project…
renovate-bot Jul 18, 2022
a9048a9
chore(deps): update dependency org.apache.maven.plugins:maven-deploy-…
renovate-bot Jul 19, 2022
c80a02f
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot Jul 21, 2022
b71335f
chore(deps): update dependency org.apache.maven.plugins:maven-assembl…
renovate-bot Jul 25, 2022
1512283
chore(deps): update dependency org.apache.maven.plugins:maven-resourc…
renovate-bot Jul 26, 2022
4e11322
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot Jul 27, 2022
e249e3e
chore(deps): update dependency org.apache.felix:maven-bundle-plugin t…
renovate-bot Aug 2, 2022
b355338
chore(deps): update dependency org.apache.maven.plugins:maven-site-pl…
renovate-bot Aug 4, 2022
a11fabe
chore(deps): update dependency org.apache.maven.plugins:maven-javadoc…
renovate-bot Aug 16, 2022
757081b
chore(deps): update dependency org.apache.maven.plugins:maven-project…
renovate-bot Aug 16, 2022
e2c6dea
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot Aug 16, 2022
9aec288
fix(deps): update dependency com.google.appengine:appengine-api-1.0-s…
renovate-bot Aug 16, 2022
697df32
fix(deps): update dependency com.google.cloud:libraries-bom to v26.1.…
renovate-bot Aug 16, 2022
ab14171
chore(deps): update dependency org.codehaus.mojo:animal-sniffer-maven…
renovate-bot Aug 16, 2022
ef85b20
fix(deps): update dependency com.google.appengine:appengine-api-1.0-s…
renovate-bot Aug 22, 2022
14fef7a
chore(deps): update dependency org.apache.maven.plugins:maven-checkst…
renovate-bot Aug 24, 2022
47b52e4
fix(deps): update dependency com.google.cloud:libraries-bom to v26.1.…
renovate-bot Aug 31, 2022
00868ab
chore: Generated snippets should not be owned by samples reviewers (#…
gcf-owl-bot[bot] Sep 10, 2022
5a1f46c
fix(deps): update dependency com.google.appengine:appengine-api-1.0-s…
renovate-bot Sep 20, 2022
1b2baa5
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot Sep 20, 2022
87b73e0
chore(deps): update dependency org.apache.maven.plugins:maven-jar-plu…
renovate-bot Sep 20, 2022
c177ca5
fix(deps): update dependency com.google.cloud:libraries-bom to v26.1.…
renovate-bot Sep 20, 2022
de3ed7c
chore: exclude requirements.txt file from renovate-bot (#1594) (#2145)
gcf-owl-bot[bot] Sep 26, 2022
30e31fe
chore(deps): update dependency click to v8.1.3 (#2146)
renovate-bot Sep 27, 2022
06e35cf
chore(deps): update dependency google-api-core to v2.10.1 (#2147)
renovate-bot Sep 27, 2022
845aadb
chore: pin versions of dependencies for compatibility with Python 3.6…
gcf-owl-bot[bot] Sep 28, 2022
8592250
chore(deps): update dependency certifi to v2022.9.24 (#2148)
renovate-bot Sep 28, 2022
980389e
chore(deps): update dependency gcp-releasetool to v1.8.8 (#2149)
renovate-bot Sep 28, 2022
0ee3862
chore(deps): update dependency google-auth to v2.12.0 (#2153)
renovate-bot Sep 28, 2022
2161ca6
chore(deps): update dependency charset-normalizer to v2.1.1 (#2152)
renovate-bot Sep 28, 2022
d633078
chore(deps): update dependency google-cloud-core to v2.3.2 (#2150)
renovate-bot Sep 28, 2022
65939bd
chore(deps): update dependency googleapis-common-protos to v1.56.4 (#…
renovate-bot Sep 28, 2022
e885023
chore(deps): update dependency gcp-releasetool to v1.8.9 (#2155)
renovate-bot Oct 2, 2022
ea556c0
chore(deps): update dependency gcp-releasetool to v1.8.10 (#2156)
renovate-bot Oct 6, 2022
d591635
chore(deps): update dependency google-api-core to v2.10.2 (#2158)
renovate-bot Oct 10, 2022
2e84e26
chore: pin versions of certifi and google-resumable-media (#1660) (#…
gcf-owl-bot[bot] Oct 24, 2022
0ff594b
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot Oct 26, 2022
2e3cc99
chore(deps): update dependency gcp-releasetool to v1.9.0 (#2164)
renovate-bot Oct 26, 2022
6fbb272
chore(deps): update dependency google-auth to v2.13.0 (#2160)
renovate-bot Oct 26, 2022
198a758
chore(deps): update dependency protobuf to v3.20.2 (#1659) (#2167)
gcf-owl-bot[bot] Oct 28, 2022
1ccb20a
chore(deps): update dependency com.google.protobuf:protobuf-java to v…
renovate-bot Oct 28, 2022
fb5c42c
chore(deps): update dependency gcp-docuploader to v0.6.4 (#2169)
renovate-bot Oct 31, 2022
ebbe90a
Revert "chore(deps): update dependency protobuf to v3.20.2" (#1674) (…
gcf-owl-bot[bot] Oct 31, 2022
d54cb46
fix(deps): update dependency com.google.appengine:appengine-api-1.0-s…
renovate-bot Nov 5, 2022
3859a7d
chore(deps): update project.http.version to v1.42.3 (#2173)
renovate-bot Nov 5, 2022
0ea00da
chore(main): release 2.0.1 (#2111)
release-please[bot] Nov 5, 2022
282fae0
chore(main): release 2.0.2-SNAPSHOT (#2175)
release-please[bot] Nov 5, 2022
9781201
feat: next release from main branch is 2.1.0 (#2179)
suztomo Nov 7, 2022
d125ead
fix(deps): update dependency com.google.cloud:libraries-bom to v26.1.…
renovate-bot Nov 8, 2022
f31c8a7
chore(java): update dependencies in java requirements file (#1695) (#…
gcf-owl-bot[bot] Nov 8, 2022
42a1270
fix(deps): update dependency com.google.api-client:google-api-client …
renovate-bot Nov 8, 2022
3487e35
chore(deps): update dependency google-auth to v2.14.1 (#2184)
renovate-bot Nov 9, 2022
ad7661a
chore(deps): update dependency google-cloud-storage to v2.6.0 (#2185)
renovate-bot Nov 9, 2022
5490897
chore(deps): update dependency kr.motd.maven:os-maven-plugin to v1.7.…
renovate-bot Nov 9, 2022
92c75d3
chore(deps): update dependency google-crc32c to v1.5.0 (#2187)
renovate-bot Nov 14, 2022
1b72fe6
chore(java): pom generation to look at root versions.txt (#1706) (#2190)
gcf-owl-bot[bot] Nov 16, 2022
e45a74b
chore(deps): update dependency googleapis-common-protos to v1.57.0 (#…
renovate-bot Nov 16, 2022
39a4b12
fix: update and declare commons-codec dependency (#2195)
alicejli Nov 29, 2022
0d83230
chore(main): release 2.1.0 (#2182)
release-please[bot] Nov 30, 2022
9183ff7
chore(main): release 2.1.1-SNAPSHOT (#2197)
release-please[bot] Nov 30, 2022
7d99b98
fix: pinning commons-codec dependency in google-api-client (#2201)
alicejli Dec 2, 2022
d3baba0
chore(main): release 2.1.1 (#2202)
release-please[bot] Dec 2, 2022
d517199
chore(main): release 2.1.2-SNAPSHOT (#2203)
release-please[bot] Dec 2, 2022
9f0076c
ParameterViolations not extending GenericJson
blakeli0 Dec 16, 2022
f55f6de
Merge branch 'main' into error-details-fix-1
blakeli0 Dec 16, 2022
d3f1493
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Dec 16, 2022
6255fcc
Merge branch 'error-details-fix-1' of https://github.com/googleapis/g…
gcf-owl-bot[bot] Dec 16, 2022
54fe152
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Dec 16, 2022
30d67ed
Merge branch 'error-details-fix-1' of https://github.com/googleapis/g…
gcf-owl-bot[bot] Dec 16, 2022
1acaf5f
CLean up unit tests
blakeli0 Jan 2, 2023
044e95c
Update unit tests
blakeli0 Jan 2, 2023
bd3c13d
Add GSON as a test dependency
blakeli0 Jan 2, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions google-api-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,11 @@
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ public ErrorInfo clone() {
}
}

public static class Details {
public static class Details extends GenericJson {
@Key("@type")
private String type;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import com.google.api.client.testing.http.MockLowLevelHttpRequest;
import com.google.api.client.testing.http.MockLowLevelHttpResponse;
import java.io.InputStream;
import java.io.InputStreamReader;
import junit.framework.TestCase;

/**
Expand All @@ -37,6 +38,7 @@
*/
public class GoogleJsonErrorTest extends TestCase {

public static final com.google.gson.JsonParser JSON_PARSER = new com.google.gson.JsonParser();
static final JsonFactory FACTORY = new GsonFactory();
static final String ERROR =
"{"
Expand Down Expand Up @@ -93,6 +95,32 @@ public void testParse() throws Exception {
assertEquals(ERROR, FACTORY.toString(errorResponse));
}

public void testParse_withMultipleErrorTypesInDetails() throws Exception {
InputStream errorResponseStream =
GoogleJsonErrorTest.class.getResourceAsStream(
"errorResponseWithMultipleTypesInDetails.json");

InputStream expectedParsedErrorResponse =
GoogleJsonErrorTest.class.getResourceAsStream(
"expectedParsedErrorWithMultipleTypesInDetails.json");

HttpTransport transport =
new ErrorTransport(
new MockLowLevelHttpResponse()
.setContent(errorResponseStream)
.setContentType(Json.MEDIA_TYPE)
.setStatusCode(HttpStatusCodes.STATUS_CODE_FORBIDDEN));
HttpRequest request =
transport.createRequestFactory().buildGetRequest(HttpTesting.SIMPLE_GENERIC_URL);
request.setThrowExceptionOnExecuteError(false);
HttpResponse response = request.execute();
com.google.api.client.googleapis.json.GoogleJsonError actualParsedErrorResponse =
com.google.api.client.googleapis.json.GoogleJsonError.parse(FACTORY, response);
assertEquals(
JSON_PARSER.parse(new InputStreamReader(expectedParsedErrorResponse)),
JSON_PARSER.parse(FACTORY.toString(actualParsedErrorResponse)));
}

public void testParse_withDetails() throws Exception {
String DETAILS_ERROR =
"{"
Expand Down Expand Up @@ -122,7 +150,8 @@ public void testParse_withDetails() throws Exception {
com.google.api.client.googleapis.json.GoogleJsonError errorResponse =
com.google.api.client.googleapis.json.GoogleJsonError.parse(FACTORY, response);

assertEquals(DETAILS_ERROR, FACTORY.toString(errorResponse));
assertEquals(
JSON_PARSER.parse(DETAILS_ERROR), JSON_PARSER.parse(FACTORY.toString(errorResponse)));
assertNotNull(errorResponse.getDetails());
}

Expand Down Expand Up @@ -166,7 +195,8 @@ public void testParse_withReasonInDetails() throws Exception {
com.google.api.client.googleapis.json.GoogleJsonError errorResponse =
com.google.api.client.googleapis.json.GoogleJsonError.parse(FACTORY, response);

assertEquals(DETAILS_ERROR, FACTORY.toString(errorResponse));
assertEquals(
JSON_PARSER.parse(DETAILS_ERROR), JSON_PARSER.parse(FACTORY.toString(errorResponse)));
assertNotNull(errorResponse.getDetails().get(2).getReason());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"error": {
"code": 400,
"message": "The template parameters are invalid.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.dataflow.v1beta3.InvalidTemplateParameters",
"reason": "TEST REASON 1",
"parameterViolations": [
{
"parameter": "safeBrowsingApiKey",
"description": "Parameter didn't match regex '^[0-9a-zA-Z_]+$'"
}
]
},
{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"detail": "test detail"
},
{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"reason": "test reason 2"
},
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "language_code",
"description": "Field is required"
}
]
},
{
"@type": "type.googleapis.com/google.chrome.policy.v1.PolicyModificationErrorDetails",
"modificationErrors": [
{
"policyTargetKey": {
"targetResource": "orgunits/03ph8a2z19ryqq8"
},
"policySchema": "chrome.users.BrowserThemeColor",
"fieldErrors": [
{
"field": "browserThemeColor",
"error": "Field is an invalid hex color. Only the numbers 0-9 and letters A-F are permitted."
}
]
}
]
},
{
"@type": "type.googleapis.com/google.mybusiness.v4.ValidationError",
"errorDetails": [
{
"code": 3,
"field": "regular_hours.periods.close_time",
"message": "Time field must follow hh:mm format.",
"value": "25:00"
}
]
}
]
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"code": 400,
"message": "The template parameters are invalid.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.dataflow.v1beta3.InvalidTemplateParameters",
"reason": "TEST REASON 1",
"parameterViolations": [
{
"parameter": "safeBrowsingApiKey",
"description": "Parameter didn't match regex '^[0-9a-zA-Z_]+$'"
}
]
},
{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"detail": "test detail"
},
{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"reason": "test reason 2"
},
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "language_code",
"description": "Field is required"
}
]
},
{
"@type": "type.googleapis.com/google.chrome.policy.v1.PolicyModificationErrorDetails",
"modificationErrors": [
{
"policyTargetKey": {
"targetResource": "orgunits/03ph8a2z19ryqq8"
},
"policySchema": "chrome.users.BrowserThemeColor",
"fieldErrors": [
{
"field": "browserThemeColor",
"error": "Field is an invalid hex color. Only the numbers 0-9 and letters A-F are permitted."
}
]
}
]
},
{
"@type": "type.googleapis.com/google.mybusiness.v4.ValidationError",
"errorDetails": [
{
"code": 3,
"field": "regular_hours.periods.close_time",
"message": "Time field must follow hh:mm format.",
"value": "25:00"
}
]
}
]
}

7 changes: 7 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,12 @@
<version>${project.protobuf-java.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>

Expand Down Expand Up @@ -515,6 +521,7 @@
<project.datanucleus-maven-plugin.version>4.0.3</project.datanucleus-maven-plugin.version>
<project.servlet-api.version>2.5</project.servlet-api.version>
<deploy.autorelease>false</deploy.autorelease>
<gson.version>2.10</gson.version>
</properties>

<profiles>
Expand Down