Merge changes I172c43ff,I2a4c5743,Icc4b8d2f into stable-6.10

* changes:
  Mark Attribute#getValue as @Nullable
  Fix potential NPE in ResolveMerger#getAttributesContentMergeStrategy
  Fix NPE in DiffFormatter#getDiffDriver
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/attributes/Attribute.java b/org.eclipse.jgit/src/org/eclipse/jgit/attributes/Attribute.java
index fe3e22a..9c4d870 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/attributes/Attribute.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/attributes/Attribute.java
@@ -9,6 +9,8 @@
  */
 package org.eclipse.jgit.attributes;
 
+import org.eclipse.jgit.annotations.Nullable;
+
 /**
  * Represents an attribute.
  * <p>
@@ -139,6 +141,7 @@ public State getState() {
 	 *
 	 * @return the attribute value (may be <code>null</code>)
 	 */
+	@Nullable
 	public String getValue() {
 		return value;
 	}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
index fa446e1..6375a60 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
@@ -1356,13 +1356,17 @@ private boolean matchesAny(List<Pattern> patterns, String text) {
 
 	private DiffDriver getDiffDriver(DiffEntry entry) {
 		Attribute diffAttr = entry.getDiffAttribute();
-		if (diffAttr != null) {
-			try {
-				return DiffDriver.valueOf(diffAttr.getValue());
-			} catch (IllegalArgumentException e) {
-				return null;
-			}
+		if (diffAttr == null) {
+			return null;
 		}
-		return null;
+		String diffAttrValue = diffAttr.getValue();
+		if (diffAttrValue == null) {
+			return null;
+		}
+		try {
+			return DiffDriver.valueOf(diffAttrValue);
+		} catch (IllegalArgumentException e) {
+			return null;
+		}
 	}
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
index a6a287b..a50a644 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
@@ -1507,9 +1507,12 @@ private MergeResult<RawText> contentMerge(CanonicalTreeParser base,
 	private ContentMergeStrategy getAttributesContentMergeStrategy(
 			Attributes attributes, ContentMergeStrategy strategy) {
 		Attribute attr = attributes.get(Constants.ATTR_MERGE);
-		if (attr != null && attr.getValue()
-				.equals(Constants.ATTR_BUILTIN_UNION_MERGE_DRIVER)) {
-			return ContentMergeStrategy.UNION;
+		if (attr != null) {
+			String attrValue = attr.getValue();
+			if (attrValue != null && attrValue
+					.equals(Constants.ATTR_BUILTIN_UNION_MERGE_DRIVER)) {
+				return ContentMergeStrategy.UNION;
+			}
 		}
 		return strategy;
 	}