diff --git a/bundles/org.eclipse.jst.ws.annotations.core/src/org/eclipse/jst/ws/annotations/core/AnnotationsManager.java b/bundles/org.eclipse.jst.ws.annotations.core/src/org/eclipse/jst/ws/annotations/core/AnnotationsManager.java
index b638382..ba93d16 100644
--- a/bundles/org.eclipse.jst.ws.annotations.core/src/org/eclipse/jst/ws/annotations/core/AnnotationsManager.java
+++ b/bundles/org.eclipse.jst.ws.annotations.core/src/org/eclipse/jst/ws/annotations/core/AnnotationsManager.java
@@ -138,8 +138,10 @@
             annotationClassNameToDefinitionMap = new HashMap<String, AnnotationDefinition>();
 
             for (AnnotationDefinition annotationDefinition : annotationDefinitions) {
-                annotationClassNameToDefinitionMap.put(annotationDefinition.getAnnotationClass()
-                        .getCanonicalName(), annotationDefinition);
+            	if (annotationDefinition.getAnnotationClass() != null) {
+                    annotationClassNameToDefinitionMap.put(annotationDefinition.getAnnotationClass()
+                            .getCanonicalName(), annotationDefinition);
+            	}
             }
         }
         return annotationClassNameToDefinitionMap;
diff --git a/bundles/org.eclipse.jst.ws.jaxws.ui/src/org/eclipse/jst/ws/internal/jaxws/ui/filters/NewHandlerChainViewerFilter.java b/bundles/org.eclipse.jst.ws.jaxws.ui/src/org/eclipse/jst/ws/internal/jaxws/ui/filters/NewHandlerChainViewerFilter.java
index be855ae..f582f88 100644
--- a/bundles/org.eclipse.jst.ws.jaxws.ui/src/org/eclipse/jst/ws/internal/jaxws/ui/filters/NewHandlerChainViewerFilter.java
+++ b/bundles/org.eclipse.jst.ws.jaxws.ui/src/org/eclipse/jst/ws/internal/jaxws/ui/filters/NewHandlerChainViewerFilter.java
@@ -58,9 +58,11 @@
             }
 
             if (!filterCompilationUnits && element instanceof ICompilationUnit) {
-                ICompilationUnit compilationUnit = (ICompilationUnit) element;
+            	ICompilationUnit compilationUnit = (ICompilationUnit) element;
                 IType type = compilationUnit.findPrimaryType();
-                return type.isClass() || type.isInterface() && !type.isAnnotation();
+                if (type != null) {
+                    return type.isClass() || type.isInterface() && !type.isAnnotation();                	
+                }
             }
         } catch (JavaModelException jme) {
             JAXWSUIPlugin.log(jme);
