Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Ratz2019-05-21 10:33:54 +0000
committerLakshmi Shanmugam2019-05-21 11:01:01 +0000
commite5a15ba55972b191ed4270c58ce4c2b1af683cc5 (patch)
treedb5448c29dfadb15446be72feed9ef0e345848fe
parentd32ccb4c0216930fee44b5641125a7f060d560b5 (diff)
downloadeclipse.platform.swt-e5a15ba55972b191ed4270c58ce4c2b1af683cc5.tar.gz
eclipse.platform.swt-e5a15ba55972b191ed4270c58ce4c2b1af683cc5.tar.xz
eclipse.platform.swt-e5a15ba55972b191ed4270c58ce4c2b1af683cc5.zip
Bug 547506 - [MacOS] [WebKit] java.lang.NullPointerException at
org.eclipse.swt.browser.WebKit.webView_didFailProvisionalLoadWithError_forFrame Change-Id: Id5864a73c02f47b1bc310164105b265e82221987 Signed-off-by: Sebastian Ratz <sebastian.ratz@sap.com>
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT WebKit/cocoa/org/eclipse/swt/browser/WebKit.java51
1 files changed, 26 insertions, 25 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT WebKit/cocoa/org/eclipse/swt/browser/WebKit.java b/bundles/org.eclipse.swt/Eclipse SWT WebKit/cocoa/org/eclipse/swt/browser/WebKit.java
index 529c6be886..0c4c7019df 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT WebKit/cocoa/org/eclipse/swt/browser/WebKit.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT WebKit/cocoa/org/eclipse/swt/browser/WebKit.java
@@ -705,34 +705,35 @@ void webView_didFailProvisionalLoadWithError_forFrame(long sender, long error, l
if (failingURL != null && OS.NSURLErrorServerCertificateNotYetValid <= errorCode && errorCode <= OS.NSURLErrorSecureConnectionFailed) {
/* handle invalid certificate error */
id certificates = info.objectForKey(NSString.stringWith("NSErrorPeerCertificateChainKey")); //$NON-NLS-1$
-
- long[] policySearch = new long[1];
- long[] policyRef = new long[1];
- long[] trustRef = new long[1];
- boolean success = false;
- int result = OS.SecPolicySearchCreate(OS.CSSM_CERT_X_509v3, 0, 0, policySearch);
- if (result == 0 && policySearch[0] != 0) {
- result = OS.SecPolicySearchCopyNext(policySearch[0], policyRef);
- if (result == 0 && policyRef[0] != 0) {
- result = OS.SecTrustCreateWithCertificates(certificates.id, policyRef[0], trustRef);
- if (result == 0 && trustRef[0] != 0) {
- SFCertificateTrustPanel panel = SFCertificateTrustPanel.sharedCertificateTrustPanel();
- String failingUrlString = failingURL.absoluteString().getString();
- String message = Compatibility.getMessage("SWT_InvalidCert_Message", new Object[] {failingUrlString}); //$NON-NLS-1$
- panel.setAlternateButtonTitle(NSString.stringWith(Compatibility.getMessage("SWT_Cancel"))); //$NON-NLS-1$
- panel.setShowsHelp(true);
- failingURL.retain();
- NSWindow window = browser.getShell().view.window();
- panel.beginSheetForWindow(window, delegate, OS.sel_createPanelDidEnd, failingURL.id, trustRef[0], NSString.stringWith(message));
- success = true;
+ if (certificates != null) {
+ long[] policySearch = new long[1];
+ long[] policyRef = new long[1];
+ long[] trustRef = new long[1];
+ boolean success = false;
+ int result = OS.SecPolicySearchCreate(OS.CSSM_CERT_X_509v3, 0, 0, policySearch);
+ if (result == 0 && policySearch[0] != 0) {
+ result = OS.SecPolicySearchCopyNext(policySearch[0], policyRef);
+ if (result == 0 && policyRef[0] != 0) {
+ result = OS.SecTrustCreateWithCertificates(certificates.id, policyRef[0], trustRef);
+ if (result == 0 && trustRef[0] != 0) {
+ SFCertificateTrustPanel panel = SFCertificateTrustPanel.sharedCertificateTrustPanel();
+ String failingUrlString = failingURL.absoluteString().getString();
+ String message = Compatibility.getMessage("SWT_InvalidCert_Message", new Object[] {failingUrlString}); //$NON-NLS-1$
+ panel.setAlternateButtonTitle(NSString.stringWith(Compatibility.getMessage("SWT_Cancel"))); //$NON-NLS-1$
+ panel.setShowsHelp(true);
+ failingURL.retain();
+ NSWindow window = browser.getShell().view.window();
+ panel.beginSheetForWindow(window, delegate, OS.sel_createPanelDidEnd, failingURL.id, trustRef[0], NSString.stringWith(message));
+ success = true;
+ }
}
}
- }
- if (trustRef[0] != 0) OS.CFRelease(trustRef[0]);
- if (policyRef[0] != 0) OS.CFRelease(policyRef[0]);
- if (policySearch[0] != 0) OS.CFRelease(policySearch[0]);
- if (success) return;
+ if (trustRef[0] != 0) OS.CFRelease(trustRef[0]);
+ if (policyRef[0] != 0) OS.CFRelease(policyRef[0]);
+ if (policySearch[0] != 0) OS.CFRelease(policySearch[0]);
+ if (success) return;
+ }
}
/* handle other types of errors */

Back to the top