From 52647f60ba9c40ca44ac5980c74b3244a3c14146 Mon Sep 17 00:00:00 2001
From: unknown <mfranklin1@.corp.intuit.net>
Date: Tue, 8 Mar 2011 11:41:06 -0800
Subject: [PATCH 1/2] Add fix to enable builds on master without a workspace

---
 .../java/hudson/plugins/perforce/PerforceSCM.java  |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/main/java/hudson/plugins/perforce/PerforceSCM.java b/src/main/java/hudson/plugins/perforce/PerforceSCM.java
index 59bcc3b..f865bba 100644
--- a/src/main/java/hudson/plugins/perforce/PerforceSCM.java
+++ b/src/main/java/hudson/plugins/perforce/PerforceSCM.java
@@ -822,11 +822,17 @@ public class PerforceSCM extends SCM {
                     break;
                 }
             }
-            if (buildNode == null){
-                logger.println("Could not find a node to use for polling! Aborting.");
-                return false;
+            if (buildNode == null) {
+            	if (!this.requiresWorkspaceForPolling()){
+            		logger.println("No workspace required for polling - use master");
+            	} else  {
+            		logger.println("Could not find a node to use for polling! Aborting.");
+            		return false;
+            	} ;
+            } else {
+            	logger.println("Using node: " + buildNode.getDisplayName());
             }
-            logger.println("Using node: " + buildNode.getDisplayName());
+            
             Workspace p4workspace = getPerforceWorkspace(project, substituteParameters(projectPath, subst), depot, buildNode, null, launcher, workspace, listener, false);
 
             saveWorkspaceIfDirty(depot, p4workspace, logger);
@@ -851,7 +857,8 @@ public class PerforceSCM extends SCM {
         }
     }
 
-    private Boolean needToBuild(Workspace p4workspace, AbstractProject project, Depot depot,
+
+	private Boolean needToBuild(Workspace p4workspace, AbstractProject project, Depot depot,
             PrintStream logger) throws IOException, InterruptedException, PerforceException {
 
         /*
-- 
1.7.4.msysgit.0


From 6d0825af06256deb14c95b982ce09784f4359c88 Mon Sep 17 00:00:00 2001
From: unknown <mfranklin1@.corp.intuit.net>
Date: Tue, 8 Mar 2011 12:23:22 -0800
Subject: [PATCH 2/2] If no workspace needed - always set buildNode to null, otherwise do as before

---
 .../java/hudson/plugins/perforce/PerforceSCM.java  |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/main/java/hudson/plugins/perforce/PerforceSCM.java b/src/main/java/hudson/plugins/perforce/PerforceSCM.java
index f865bba..d05e769 100644
--- a/src/main/java/hudson/plugins/perforce/PerforceSCM.java
+++ b/src/main/java/hudson/plugins/perforce/PerforceSCM.java
@@ -822,13 +822,13 @@ public class PerforceSCM extends SCM {
                     break;
                 }
             }
-            if (buildNode == null) {
-            	if (!this.requiresWorkspaceForPolling()){
-            		logger.println("No workspace required for polling - use master");
-            	} else  {
+            if (!this.requiresWorkspaceForPolling()) {
+            	buildNode=null;
+            	logger.println("No workspace required for polling - use master");
+            } else if (buildNode == null) {           	
             		logger.println("Could not find a node to use for polling! Aborting.");
             		return false;
-            	} ;
+ 
             } else {
             	logger.println("Using node: " + buildNode.getDisplayName());
             }
-- 
1.7.4.msysgit.0