Author: mmerz
Date: Mon Jan 10 17:18:04 2005
New Revision: 124860

URL: http://svn.apache.org/viewcvs?view=rev&rev=124860
Log:
Added more error checks.


Modified:
   
incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java

Modified: 
incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java?view=diff&rev=124860&p1=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java&r1=124859&p2=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java&r2=124860
==============================================================================
--- 
incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java
     (original)
+++ 
incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/processor/apt/WsmAnnotationProcessor.java
     Mon Jan 10 17:18:04 2005
@@ -118,13 +118,18 @@
                     // get object model for service endpoint interface
                     om = 
Jsr181TypeMetadataImpl.load(getClass().getClassLoader().getResourceAsStream(Jsr181TypeMetadataImpl.getLocation(endpointInterface).toString()));
                     if (null == om) {
-                        messager.printError(classDecl.getPosition(), "cannot 
find service endpoint interface: " + endpointInterface);
+                        messager.printError(classDecl.getPosition(), "cannot 
find object model for service endpoint interface: " + endpointInterface);
+                        return;
                     }
-                    
+
                     // merge abstract and concrete object models
                     Jsr181TypeMetadata com = 
getWebServiceTYPEMetadata(classDecl, false);
+                    if (null == com) {
+                        messager.printError(classDecl.getPosition(), "cannot 
create object model for service implementation bean: " + 
classDecl.getQualifiedName());
+                        return;
+                    }
                     om.merge(com);
-                    
+
                     // validate concrete object model against the contract 
(service endpoint interface)
                     validate(om, classDecl);
                 }
@@ -134,33 +139,42 @@
                     om = getWebServiceTYPEMetadata(classDecl, false);
                 }
 
-                // store the object model
-                if (null != om) {
-                    
Jsr181TypeMetadataImpl.store(_env.getFiler().createBinaryFile(Filer.Location.CLASS_TREE,
 "", Jsr181TypeMetadataImpl.getLocation(classDecl.getQualifiedName())), om);
+                // check if we have an object model
+                if (null == om) {
+                    messager.printError(classDecl.getPosition(), "cannot 
create object model for service implementation bean: " + 
classDecl.getQualifiedName());
+                    return;
                 }
+
+                // persist object model
+                
Jsr181TypeMetadataImpl.store(_env.getFiler().createBinaryFile(Filer.Location.CLASS_TREE,
 "", Jsr181TypeMetadataImpl.getLocation(classDecl.getQualifiedName())), om);
             }
             
             // service endpoint interface
             else if (_decl instanceof InterfaceDeclaration) {
                 InterfaceDeclaration interfaceDecl = (InterfaceDeclaration) 
_decl;
                 
-                messager.printNotice("processing service endpoint interface: " 
+ interfaceDecl.getQualifiedName());
+                messager.printNotice("creating object model for service 
endpoint interface: " + interfaceDecl.getQualifiedName());
                 
                 // create object model
                 Jsr181TypeMetadata om = 
getWebServiceTYPEMetadata(interfaceDecl, true);
+                if (null == om) {
+                    messager.printError(interfaceDecl.getPosition(), "cannot 
create object model for service endpoint interface: " + 
interfaceDecl.getQualifiedName());
+                    return;
+                }
 
                 // store the object model
-                if (null != om) {
-                    
Jsr181TypeMetadataImpl.store(_env.getFiler().createBinaryFile(Filer.Location.CLASS_TREE,
 "", Jsr181TypeMetadataImpl.getLocation(interfaceDecl.getQualifiedName())), om);
-                }
+                
Jsr181TypeMetadataImpl.store(_env.getFiler().createBinaryFile(Filer.Location.CLASS_TREE,
 "", Jsr181TypeMetadataImpl.getLocation(interfaceDecl.getQualifiedName())), om);
             }
-            
+
+            // @WebService annotation on unknown/unsupported type definition
             else {
                 messager.printError(_decl.getPosition(), "found unsupported 
type of TypeDeclaration:" + _decl.getSimpleName());
             }
         }
-        catch (Exception e) {
-            messager.printError(_decl.getPosition(), e.getMessage());
+
+        // if an exception or error ocurred log it and return
+        catch (Throwable t) {
+            messager.printError(_decl.getPosition(), t.getMessage());
         }
     }
     
@@ -197,7 +211,10 @@
         else {
             for (MethodDeclaration mdecl : decl.getMethods()) {
                 if (null != mdecl.getAnnotation(WebMethod.class)) {
-                    webMethods.add(getWebServiceMETHODMetadata(mdecl));
+                    Jsr181MethodMetadata wsmm = 
getWebServiceMETHODMetadata(mdecl);
+                    if (null != wsmm) {
+                        webMethods.add(wsmm);
+                    }
                 }
             }
         }
@@ -223,7 +240,10 @@
         List<Jsr181ParameterMetadata> webParams =
                 new ArrayList<Jsr181ParameterMetadata>();
         for (ParameterDeclaration paramDecl : decl.getParameters()) {
-            webParams.add(getWebServicePARAMETERMetadata(paramDecl));
+            Jsr181ParameterMetadata wspm = 
getWebServicePARAMETERMetadata(paramDecl);
+            if (null != wspm) {
+                webParams.add(wspm);
+            }
         }
 
         // create & return webMethod

Reply via email to