Skip to content

Commit

Permalink
fix critical parsing of json objects crashing in last version of bitb…
Browse files Browse the repository at this point in the history
…ucket
  • Loading branch information
jmecosta committed Oct 24, 2023
1 parent 47a631a commit f2c292c
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.trimble.tekla</groupId>
<artifactId>TeamCityTriggerHook</artifactId>
<version>5.0.0</version>
<version>5.0.1</version>

<organization>
<name>Tekla</name>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import com.atlassian.bitbucket.pull.PullRequestService;
import com.atlassian.bitbucket.repository.Repository;
import com.atlassian.bitbucket.setting.Settings;
import com.atlassian.bitbucket.user.ApplicationUser;
import com.atlassian.event.api.EventListener;
import com.trimble.tekla.helpers.ChangesetService;
import com.trimble.tekla.pojo.Trigger;
Expand Down Expand Up @@ -188,9 +187,9 @@ private void TriggerBuildFromPullRequest(final PullRequest pr, Boolean UpdatedRe
true);

final JSONObject obj = new JSONObject(buildData);
final String count = obj.getString("count");
final Integer count = obj.getInt("count");

if (count.equals("0") || !buildConfig.isCancelRunningBuilds()) {
if (count == 0 || !buildConfig.isCancelRunningBuilds()) {
this.connector.QueueBuild(
conf,
buildConfig.getBranchConfig(),
Expand All @@ -205,7 +204,7 @@ private void TriggerBuildFromPullRequest(final PullRequest pr, Boolean UpdatedRe
final JSONArray builds = obj.getJSONArray("build");
for (int i = 0; i < builds.length(); i++) {
final String buildState = builds.getJSONObject(i).getString("state");
final String id = builds.getJSONObject(i).getString("id");
final String id = Integer.toString(builds.getJSONObject(i).getInt("id"));
if (buildState.equals("running")) {
this.connector.ReQueueBuild(conf, id, settings.get(), false, repo.getName());
} else if (buildState.equals("queued")) {
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/com/trimble/tekla/TeamcityTriggerHook.java
Original file line number Diff line number Diff line change
Expand Up @@ -243,17 +243,18 @@ private void QueueBuild(
// check if build is running
final String buildData = this.connector.GetBuildsForBranch(conf, branch, buildIdIn, settings, repoName, true);

TeamcityLogger.logMessage(context, repoName, "Build Data Retrieved: " + buildData);
try {
final JSONObject obj = new JSONObject(buildData);
final String count = obj.getString("count");
final Integer count = obj.getInt("count");

if (count.equals("0") || !cancelRunningBuilds) {
if (count == 0 || !cancelRunningBuilds) {
this.connector.QueueBuild(conf, branch, buildIdIn, comment, isDefault, settings, repoName, null);
} else {
final JSONArray builds = obj.getJSONArray("build");
for (int i = 0; i < builds.length(); i++) {
final String buildState = builds.getJSONObject(i).getString("state");
final String id = builds.getJSONObject(i).getString("id");
final String id = Integer.toString(builds.getJSONObject(i).getInt("id"));
if (buildState.equals("running")) {
this.connector.ReQueueBuild(conf, id, settings, false, repoName);
} else if (buildState.equals("queued")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public List<TeamcityQueuedElement> GetQueuedAndRunningBuilds(TeamcityConfigurati
}

String buildType = queued.getString("buildTypeId");
String id = queued.getString("id");
final String id = Integer.toString(queued.getInt("id"));
String webUrl = queued.getString("webUrl");
TeamcityQueuedElement queuedElement = new TeamcityQueuedElement();
queuedElement.setBranch(branchName);
Expand Down

0 comments on commit f2c292c

Please sign in to comment.