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
