diff --git a/dev/run-tests-jenkins b/dev/run-tests-jenkins
index d9205f08cc1349eb2933152c6748f38bb016fe9e..06c3781eb3ccf3910197b7b9b14268ca3beee85f 100755
--- a/dev/run-tests-jenkins
+++ b/dev/run-tests-jenkins
@@ -33,9 +33,7 @@ COMMIT_URL="https://github.com/apache/spark/commit/${ghprbActualCommit}"
 # GitHub doesn't auto-link short hashes when submitted via the API, unfortunately. :(
 SHORT_COMMIT_HASH="${ghprbActualCommit:0:7}"
 
-# NOTE: Jenkins will kill the whole build after 120 minutes.
-#       Tests are a large part of that, but not all of it.
-TESTS_TIMEOUT="120m"
+TESTS_TIMEOUT="120m" # format: http://linux.die.net/man/1/timeout
 
 function post_message () {
   local message=$1
@@ -93,9 +91,14 @@ function post_message () {
   else
     merge_note=" * This patch merges cleanly."
 
-    non_test_files=$(git diff master --name-only | grep -v "\/test" | tr "\n" " ")
+    source_files=$(
+        git diff master --name-only \
+      | grep -v -e "\/test"                         `# ignore files in test directories` \
+      | grep -e "\.py$" -e "\.java$" -e "\.scala$"  `# include only code files` \
+      | tr "\n" " "
+    )
     new_public_classes=$(
-        git diff master ${non_test_files}       `# diff this patch against master and...` \
+        git diff master ${source_files}         `# diff this patch against master and...` \
       | grep "^\+"                              `# filter in only added lines` \
       | sed -r -e "s/^\+//g"                    `# remove the leading +` \
       | grep -e "trait " -e "class "            `# filter in lines with these key words` \
@@ -138,7 +141,8 @@ function post_message () {
   test_result="$?"
 
   if [ "$test_result" -eq "124" ]; then
-    fail_message="**[Tests timed out](${BUILD_URL}consoleFull)** after a configured wait of \`${TESTS_TIMEOUT}\`."
+    fail_message="**[Tests timed out](${BUILD_URL}consoleFull)** after \
+    a configured wait of \`${TESTS_TIMEOUT}\`."
     post_message "$fail_message"
     exit $test_result
   else