Skip to content

Commit f443bfd

Browse files
author
gdgate
authored
Merge pull request #1006 from gooddata/liry2
Mitigate risky code parts Reviewed-by: Peter Plocháň https://github.com/peter-plochan
2 parents 7822879 + f6be420 commit f443bfd

6 files changed

Lines changed: 52 additions & 18 deletions

File tree

gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/FeatureFlags.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,13 @@ private Optional<FeatureFlag> findFlag(final String flagName) {
7979
public boolean equals(final Object o) {
8080
if (this == o) return true;
8181
if (o == null || getClass() != o.getClass()) return false;
82-
8382
final FeatureFlags that = (FeatureFlags) o;
84-
85-
return !(featureFlags != null ? !featureFlags.equals(that.featureFlags) : that.featureFlags != null);
86-
83+
return featureFlags.equals(that.featureFlags);
8784
}
8885

8986
@Override
9087
public int hashCode() {
91-
return featureFlags != null ? featureFlags.hashCode() : 0;
88+
return featureFlags.hashCode();
9289
}
9390

9491
@Override

gooddata-java/src/main/java/com/gooddata/sdk/service/AbstractService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ final <R> R poll(final PollHandler<?,R> handler, long timeout, final TimeUnit un
6666
try {
6767
Thread.sleep(settings.getPollSleep());
6868
} catch (InterruptedException e) {
69+
Thread.currentThread().interrupt();
6970
throw new GoodDataException("interrupted");
7071
}
7172
}

gooddata-java/src/main/java/com/gooddata/sdk/service/connector/ConnectorService.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved.
2+
* Copyright (C) 2004-2021, GoodData(R) Corporation. All rights reserved.
33
* This source code is licensed under the BSD-style license found in the
44
* LICENSE.txt file in the root directory of this source tree.
55
*/
@@ -22,8 +22,8 @@
2222
import java.io.IOException;
2323
import java.util.Collection;
2424
import java.util.Map;
25+
import java.util.Optional;
2526

26-
import static com.gooddata.sdk.common.util.Validate.isTrue;
2727
import static com.gooddata.sdk.common.util.Validate.notNull;
2828
import static com.gooddata.sdk.common.util.Validate.notNullState;
2929
import static java.lang.String.format;
@@ -267,13 +267,17 @@ public FutureResult<ProcessStatus> getProcessStatus(final IntegrationProcessStat
267267
* You should use the result of {@link #scheduleZendesk4Reload} to see changes in {@link Reload#getStatus()} and
268268
* {@link Reload#getProcessId()} or retrieve process URI {@link Reload#getProcessUri()}.
269269
*
270-
* @param reload existing reload.
270+
* @param reload existing reload (self link must be present).
271271
* @return same reload with refreshed properties (status, processId, process URI)
272272
*/
273273
public Reload getZendesk4Reload(final Reload reload) {
274274
notNull(reload, "reload");
275-
isTrue(reload.getUri().isPresent(), "reload.uri");
276-
return getZendesk4ReloadByUri(reload.getUri().get());
275+
final Optional<String> reloadUri = reload.getUri();
276+
if (reloadUri.isPresent()) {
277+
return getZendesk4ReloadByUri(reloadUri.get());
278+
} else {
279+
throw new IllegalArgumentException("Self link in the Reload must be present!");
280+
}
277281
}
278282

279283
/**

gooddata-java/src/main/java/com/gooddata/sdk/service/dataload/processes/ProcessService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public class ProcessService extends AbstractService {
7272
public static final UriTemplate PROCESSES_TEMPLATE = new UriTemplate(DataloadProcesses.URI);
7373
public static final UriTemplate USER_PROCESSES_TEMPLATE = new UriTemplate(DataloadProcesses.USER_PROCESSES_URI);
7474
private static final MediaType MEDIA_TYPE_ZIP = MediaType.parseMediaType("application/zip");
75-
private static final long MAX_MULTIPART_SIZE = 1024 * 1024;
75+
private static final long MAX_MULTIPART_SIZE = 1024L * 1024L;
7676

7777
private final AccountService accountService;
7878
private final DataStoreService dataStoreService;

gooddata-java/src/main/java/com/gooddata/sdk/service/featureflag/FeatureFlagService.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,7 @@ public ProjectFeatureFlag getProjectFeatureFlag(final Project project, final Str
108108
notEmpty(featureFlagName, "featureFlagName");
109109

110110
try {
111-
final ProjectFeatureFlag flag = getProjectFeatureFlag(getProjectFeatureFlagUri(project, featureFlagName));
112-
113-
if (flag == null) {
114-
throw new GoodDataException("empty response from API call");
115-
}
116-
117-
return flag;
111+
return getProjectFeatureFlag(getProjectFeatureFlagUri(project, featureFlagName));
118112
} catch (GoodDataException | RestClientException e) {
119113
throw new GoodDataException("Unable to get project feature flag: " + featureFlagName, e);
120114
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* Copyright (C) 2004-2021, GoodData(R) Corporation. All rights reserved.
3+
* This source code is licensed under the BSD-style license found in the
4+
* LICENSE.txt file in the root directory of this source tree.
5+
*/
6+
7+
package com.gooddata.sdk.service.connector
8+
9+
import com.gooddata.sdk.model.connector.Reload
10+
import com.gooddata.sdk.service.GoodDataSettings
11+
import com.gooddata.sdk.service.project.ProjectService
12+
import org.springframework.web.client.RestTemplate
13+
import spock.lang.Specification
14+
import spock.lang.Subject
15+
16+
import static java.util.Collections.emptyMap
17+
18+
class ConnectorServiceTest extends Specification {
19+
20+
@Subject
21+
def service = new ConnectorService(Mock(RestTemplate), Mock(ProjectService), Mock(GoodDataSettings))
22+
23+
def "getZendesk4Reload should throw when Reload is null"() {
24+
when:
25+
service.getZendesk4Reload(null)
26+
27+
then:
28+
thrown(IllegalArgumentException)
29+
}
30+
31+
def "getZendesk4Reload should throw when Reload does not contain self URI"() {
32+
when:
33+
service.getZendesk4Reload(new Reload(emptyMap()))
34+
35+
then:
36+
thrown(IllegalArgumentException)
37+
}
38+
}

0 commit comments

Comments
 (0)