Skip to content

Commit

Permalink
Fix JENKINS-16874
Browse files Browse the repository at this point in the history
  • Loading branch information
gboissinot committed Feb 24, 2013
1 parent 372e4e1 commit 7bc6f7c
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 39 deletions.
57 changes: 26 additions & 31 deletions src/main/java/com/sonyericsson/rebuild/RebuildAction.java
Expand Up @@ -24,33 +24,18 @@
*/
package com.sonyericsson.rebuild;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;

import hudson.matrix.MatrixRun;
import hudson.model.*;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.kohsuke.stapler.Stapler;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;

import hudson.matrix.MatrixRun;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.BooleanParameterValue;
import hudson.model.Cause;
import hudson.model.CauseAction;
import hudson.model.Hudson;
import hudson.model.ParameterDefinition;
import hudson.model.ParameterValue;
import hudson.model.ParametersAction;
import hudson.model.ParametersDefinitionProperty;
import hudson.model.PasswordParameterValue;
import hudson.model.RunParameterValue;
import hudson.model.StringParameterValue;
import hudson.model.SimpleParameterDefinition;
import javax.servlet.ServletException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
* Rebuild RootAction implementation class. This class will basically reschedule
Expand Down Expand Up @@ -126,17 +111,17 @@ public String getRebuildurl() {
* @return currentProject.
*/
public AbstractProject getProject() {

if (build != null) {
return build.getProject();
}

AbstractProject currentProject = null;
StaplerRequest request = Stapler.getCurrentRequest();
if (request != null) {
currentProject = request.findAncestorObject(AbstractProject.class);
}
if (currentProject == null) {
throw new NullPointerException("Current Project is null");
}

return currentProject;
}

Expand Down Expand Up @@ -202,7 +187,7 @@ public void doIndex(StaplerRequest request, StaplerResponse response) throws
*/
public void nonParameterizedRebuild(AbstractBuild currentBuild, StaplerResponse
response) throws ServletException, IOException, InterruptedException {
getProject().checkPermission(AbstractProject.BUILD);
currentBuild.getProject().checkPermission(AbstractProject.BUILD);
Hudson.getInstance().getQueue().schedule(currentBuild.getProject(), 0, null,
new CauseAction(new Cause.UserIdCause()));
response.sendRedirect("../../");
Expand All @@ -219,7 +204,11 @@ public void nonParameterizedRebuild(AbstractBuild currentBuild, StaplerResponse
*/
public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws
ServletException, IOException, InterruptedException {
getProject().checkPermission(AbstractProject.BUILD);
AbstractProject project = getProject();
if (project == null) {
return;
}
project.checkPermission(AbstractProject.BUILD);
if (isRebuildAvailable()) {
if (!req.getMethod().equals("POST")) {
// show the parameter entry form.
Expand Down Expand Up @@ -273,8 +262,14 @@ public boolean isMatrixRun() {
* @return boolean
*/
public boolean isRebuildAvailable() {
return getProject() != null && getProject().hasPermission(AbstractProject.BUILD)
&& getProject().isBuildable() && !(getProject().isDisabled()) && !isMatrixRun();

AbstractProject project = getProject();
if (project == null) {
return false;
}

return project.hasPermission(AbstractProject.BUILD)
&& project.isBuildable() && !(project.isDisabled()) && !isMatrixRun();
}

/**
Expand All @@ -297,7 +292,7 @@ public ParameterValue getParameterValue(ParametersDefinitionProperty paramDefPro
if (paramDef != null) {
// The copy artifact plugin throws an exception when using createValue(req, jo)
// If the parameter comes from the copy artifact plugin, then use the single argument createValue
if (jo.toString().contains("BuildSelector") || jo.toString().contains("WorkspaceSelector")){
if (jo.toString().contains("BuildSelector") || jo.toString().contains("WorkspaceSelector")) {
SimpleParameterDefinition parameterDefinition = (SimpleParameterDefinition) paramDefProp.getParameterDefinition(parameterName);
return parameterDefinition.createValue(jo.getString("value"));
}
Expand Down
Expand Up @@ -24,11 +24,7 @@
package com.sonyericsson.rebuild;

import hudson.Extension;
import hudson.model.AbstractBuild;
import hudson.model.Action;
import hudson.model.Hudson;
import hudson.model.Run;
import hudson.model.TransientBuildActionFactory;
import hudson.model.*;

import java.util.Collection;

Expand Down
Expand Up @@ -23,6 +23,8 @@
*/
package com.sonyericsson.rebuild;

import hudson.model.AbstractProject;

/**
* Reschedules last completed build for the project if available.
* Otherwise it behaves as if the user clicked on the build now button.
Expand All @@ -31,11 +33,16 @@ public class RebuildLastCompletedBuildAction extends RebuildAction {

@Override
public String getUrlName() {
boolean isBuildable = getProject() != null && getProject().isBuildable();
boolean hasCompletedBuild = getProject().getLastCompletedBuild() != null;
AbstractProject project = getProject();
if (project == null) {
return null;
}

boolean isBuildable = project.isBuildable();
boolean hasCompletedBuild = project.getLastCompletedBuild() != null;
if (isBuildable) {
if (hasCompletedBuild) {
return getProject().getLastCompletedBuild().getNumber() + "/rebuild";
return project.getLastCompletedBuild().getNumber() + "/rebuild";
} else {
return "build?delay=0sec";
}
Expand Down
Expand Up @@ -25,6 +25,7 @@

import hudson.ExtensionPoint;
import hudson.model.AbstractBuild;

import java.io.Serializable;

/**
Expand Down

0 comments on commit 7bc6f7c

Please sign in to comment.