Bug 571990 - Fix NPE in GlobalPolicy

Must use Optional.orElse instead of Optional.orElseGet to return null.
The orElseGet expects a function and the function must not be null.

Change-Id: Id45654e6b97ce629dcdcdf16919f79f682050d81
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
diff --git a/bundles/org.eclipse.osgi.tests/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.tests/META-INF/MANIFEST.MF
index 3a09410..8a7e34d 100644
--- a/bundles/org.eclipse.osgi.tests/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.osgi.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Core OSGi Tests
 Bundle-SymbolicName: org.eclipse.osgi.tests;singleton:=true
-Bundle-Version: 3.16.200.qualifier
+Bundle-Version: 3.16.300.qualifier
 Bundle-Vendor: Eclipse.org
 Require-Bundle: 
  org.eclipse.core.runtime,
diff --git a/bundles/org.eclipse.osgi.tests/pom.xml b/bundles/org.eclipse.osgi.tests/pom.xml
index 4e80d6f..cae7351 100644
--- a/bundles/org.eclipse.osgi.tests/pom.xml
+++ b/bundles/org.eclipse.osgi.tests/pom.xml
@@ -19,7 +19,7 @@
   </parent>
   <groupId>org.eclipse.osgi</groupId>
   <artifactId>org.eclipse.osgi.tests</artifactId>
-  <version>3.16.200-SNAPSHOT</version>
+  <version>3.16.300-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java
index 516f80c..793aa05 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java
@@ -1744,6 +1744,28 @@
 		global.loadClass("test.bug438904.frag.Test2");
 	}
 
+	public void testBuddyClassLoadingGlobalNotFound() throws Exception {
+		Bundle global = installer.installBundle("test.bug438904.global");
+
+		try {
+			global.loadClass("does.not.exist.Test");
+			fail("Expected class not found exception.");
+		} catch (ClassNotFoundException e) {
+			// expected
+		}
+		assertNull("Expected null resource found.", global.getResource("does/not/exist/Test.txt"));
+	}
+
+	public void testBuddyClassLoadingGlobalFound() throws Exception {
+		Bundle global = installer.installBundle("test.bug438904.global");
+
+		try {
+			global.loadClass("org.osgi.framework.Bundle");
+		} catch (ClassNotFoundException e) {
+			fail("Unexpected class not found exception.");
+		}
+	}
+
 	public void testUnitTestForcompoundEnumerations() {
 		Enumeration<Object> result = BundleLoader.compoundEnumerations(null, Collections.emptyEnumeration());
 		assertNotNull("Null result.", result);
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/buddy/GlobalPolicy.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/buddy/GlobalPolicy.java
index ac0a446..d016487 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/buddy/GlobalPolicy.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/buddy/GlobalPolicy.java
@@ -55,7 +55,7 @@
 					} catch (ClassNotFoundException e) {
 						return null;
 					}
-				}).orElseGet(null);
+				}).orElse(null);
 	}
 
 	@Override
@@ -63,7 +63,7 @@
 		return getExportingBundles(BundleLoader.getResourcePackageName(name)) //
 				.stream().findFirst().map(b -> {
 					return b.getResource(name);
-				}).orElseGet(null);
+				}).orElse(null);
 	}
 
 	@Override