Author: lmandel
Date: Sat Mar 29 11:33:39 2008
New Revision: 642577
URL: http://svn.apache.org/viewvc?rev=642577&view=rev
Log:
[WODEN-203] Fix for Description1001 throwing exception when checking a host
name that does not resolve. New tests added to the test suite for this
condition as well.
Modified:
webservices/woden/branches/woden62/src/org/apache/woden/internal/wsdl20/assertions/Description1001.java
webservices/woden/branches/woden62/test/org/apache/woden/internal/wsdl20/assertions/TestDescription1001.java
Modified:
webservices/woden/branches/woden62/src/org/apache/woden/internal/wsdl20/assertions/Description1001.java
URL:
http://svn.apache.org/viewvc/webservices/woden/branches/woden62/src/org/apache/woden/internal/wsdl20/assertions/Description1001.java?rev=642577&r1=642576&r2=642577&view=diff
==============================================================================
---
webservices/woden/branches/woden62/src/org/apache/woden/internal/wsdl20/assertions/Description1001.java
(original)
+++
webservices/woden/branches/woden62/src/org/apache/woden/internal/wsdl20/assertions/Description1001.java
Sat Mar 29 11:33:39 2008
@@ -16,7 +16,6 @@
*/
package org.apache.woden.internal.wsdl20.assertions;
-import java.io.FileNotFoundException;
import java.net.URI;
import java.net.URL;
@@ -64,21 +63,16 @@
o = url.getContent();
}
if(o == null) {
- wodenCtx.getErrorReporter().reportError(
- new ErrorLocatorImpl(), getId(), new Object[] {tns},
ErrorReporter.SEVERITY_WARNING);
+ throw new Exception();
}
- } catch (FileNotFoundException e1) {
- wodenCtx.getErrorReporter().reportError(
- new ErrorLocatorImpl(), getId(), new Object[] {tns},
ErrorReporter.SEVERITY_WARNING);
-
} catch (WSDLException e2) {
+ // A WSDLException may be thrown due to a problem with the URI
resolver so we should report this exception.
throw e2;
} catch (Exception e) {
- // IOException
- // MalformedURLException
- throw new WSDLException(WSDLException.OTHER_ERROR,
- "Fatal error.",
- e);
+ // Any other exception including IOExceptoin,
MalformedURLException, UnknownHostException, and
+ // FileNotFoundException means that the namespace was not
resolvable.
+ wodenCtx.getErrorReporter().reportError(
+ new ErrorLocatorImpl(), getId(), new Object[] {tns},
ErrorReporter.SEVERITY_WARNING);
}
}
Modified:
webservices/woden/branches/woden62/test/org/apache/woden/internal/wsdl20/assertions/TestDescription1001.java
URL:
http://svn.apache.org/viewvc/webservices/woden/branches/woden62/test/org/apache/woden/internal/wsdl20/assertions/TestDescription1001.java?rev=642577&r1=642576&r2=642577&view=diff
==============================================================================
---
webservices/woden/branches/woden62/test/org/apache/woden/internal/wsdl20/assertions/TestDescription1001.java
(original)
+++
webservices/woden/branches/woden62/test/org/apache/woden/internal/wsdl20/assertions/TestDescription1001.java
Sat Mar 29 11:33:39 2008
@@ -65,8 +65,8 @@
}
/**
- * Test that the assertion passes for an interface that
- * extends no other interfaces.
+ * Test that the assertion reports a warning for a namespace
+ * with the urn scheme.
*/
public void testTargetNamespaceSchemeurn() {
DescriptionElement descEl = factory.newDescription();
@@ -78,10 +78,49 @@
fail("Assertion Description1001 threw the following
WSDLException for target namespace urn:sample: " + e.toString());
}
if(handler.errorMessageHasBeenReported()) {
- fail("Assertion Description1001 fails incorrectly for
an target namespace with the scheme urn.");
+ fail("Assertion Description1001 reports an error
instead of a warning for an target namespace with the scheme urn.");
}
else if(!handler.messageHasBeenReported()) {
fail("Assertion Description1001 did not report a
warning for a target namespace with the scheme urn.");
+ }
+ }
+
+ /**
+ * Test that the assertion reports a warning for a namespace
+ * with an unknown host http://example.sample.
+ */
+ public void testTargetNamespaceDoesNotResolveUnknownHost() {
+ DescriptionElement descEl = factory.newDescription();
+ descEl.setTargetNamespace(URI.create("http://example.sample"));
+
+ try {
+ assertion.validate(descEl, wodenContext);
+ } catch(WSDLException e){
+ fail("Assertion Description1001 threw the following
WSDLException for target namespace http://example.sample, which doesn't
resolve: " + e.toString());
+ }
+ if(handler.errorMessageHasBeenReported()) {
+ fail("Assertion Description1001 reports an error
instead of a warning for an target namespace that doesn't resolve.");
+ }
+ else if(!handler.messageHasBeenReported()) {
+ fail("Assertion Description1001 did not report a
warning for a target namespace that doesn't resolve.");
+ }
+ }
+
+ /**
+ * Test that the assertion reports no warning for a namespace
+ * that resolves such as http://apache.org.
+ */
+ public void testTargetNamespaceResolves() {
+ DescriptionElement descEl = factory.newDescription();
+ descEl.setTargetNamespace(URI.create("http://apache.org"));
+
+ try {
+ assertion.validate(descEl, wodenContext);
+ } catch(WSDLException e){
+ fail("Assertion Description1001 threw the following
WSDLException for target namespace http://apache.org, which should resolve: " +
e.toString());
+ }
+ if(handler.messageHasBeenReported()) {
+ fail("Assertion Description1001 reports an error or
warning for an target namespace that should resolve. Note that this test will
fail without network connectivity.");
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]