From 88ee3029fcfa91dd75f7827921fa524fb7e5b61d Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Tue, 10 Jan 2017 19:38:17 -0800 Subject: [PATCH] Bug 510226 - ClassCastException in PDOMCPPUnknownMemberClass.getOwner Change-Id: Ib85621abe85f8ef29b0cd231f390f6c5447f6434 --- .../internal/core/dom/parser/cpp/CPPUnknownMember.java | 2 +- .../core/pdom/dom/cpp/PDOMCPPUnknownMemberClass.java | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownMember.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownMember.java index cb47bdc96ab..e3a166bc803 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownMember.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPUnknownMember.java @@ -30,7 +30,7 @@ import org.eclipse.core.runtime.CoreException; * Represents a binding that is unknown because it depends on template arguments. */ public class CPPUnknownMember extends CPPUnknownBinding implements ICPPUnknownMember, ISerializableType { - protected IType fOwner; + protected final IType fOwner; protected CPPUnknownMember(IType owner, char[] name) { super(name); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUnknownMemberClass.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUnknownMemberClass.java index e1527ac55dd..dcbe0d4d89f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUnknownMemberClass.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUnknownMemberClass.java @@ -65,12 +65,14 @@ public class PDOMCPPUnknownMemberClass extends CPPUnknownMemberClass implements public long getBindingID() { return 0; } - + @Override public IIndexFragmentBinding getOwner() { - return (IIndexFragmentBinding) super.getOwner(); + if (fOwner instanceof IIndexFragmentBinding) + return (IIndexFragmentBinding) fOwner; + return null; } - + @Override public IIndexScope getScope() { try {