jUDDI cannot accept null tModelKey in keyedReference element in a
set_publisherAssertions call
----------------------------------------------------------------------------------------------
Key: JUDDI-78
URL: http://issues.apache.org/jira/browse/JUDDI-78
Project: jUDDI
Type: Bug
Versions: 0.9rc4
Environment: OS: Fedora Core 4 -- KERNEL=2.6.11-1.1369_FC4smp
Software env: JOnAS 4.5.3 + postgresql backend + jUDDI v09.rc4
Reporter: Deepak Bhole
Assigned to: Steve Viens
When creating an association, a SOAP message is sent to jUDDI with the
set_publisherAssertions element/call. According to the UDDI V2 specifications,
the set_publisherAssertions element has 0 or more publisherAssertion elements.
These publisherAssertion elements have a keyedReference element, which in turn
has an optional "tModelKey" attribute.
A SOAP message[1] with a non-existent 'tModelKey' key attribute was sent from a
client (Scout) to a server using jUDDI. According to the uddi specifications,
that message should have been valid. However, the server threw an error
indicating that a not-null constraint was violated in the datastore.
Couple of notes...
1. There are two faults at work here. In a proper scenario, the server should
be sending a SOAP fault back, gracefully indicating that there was a problem.
Instead, there is an exception[2] that gets thrown on server side. I will be
opening another bug for this and will post the number in here for tracking
purposes.
2. Currently, Scout has an associated bug that will prevent you from
reproducing this error (it will throw an exception before SOAP message is even
sent). If you wish to reproduce this with Scout, you will have to add a check
in it in
modules/scout/src/java/org/apache/ws/scout/util/ScoutJaxrUddiHelper.java, line
(approx.) 184 in getPubAssertionFromJAXRAssociation() so that
kr.setTModelKey(key.getId()); gets called only if key != null. I am going to
open a corresponding bug for Scout and will post the number here.
[1] -- SOAP message sent from client:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<urn:set_publisherAssertions xmlns:urn="urn:uddi-org:api_v2"
generic="2.0" xmlns="urn:uddi-org:api_v2">
<urn:authInfo>authToken:9D0A9310-2F86-11DA-9310-B41FF8323FA2</urn:authInfo>
<urn:publisherAssertion>
<urn:fromKey>BF367EF0-2F80-11DA-BEF0-A93E6C39B5A5</urn:fromKey>
<urn:toKey>BF3A2870-2F80-11DA-A870-B6F127499C12</urn:toKey>
<urn:keyedReference keyValue="RelatedTo"
keyName="Concept"/>
</urn:publisherAssertion>
</urn:set_publisherAssertions>
</soapenv:Body>
</soapenv:Envelope>
[2] -- Exception seen on serverside:
2005-09-27 14:28:32,368 : PublisherAssertionTable.insert : ERROR: null value in
column "tmodel_key" violates not-null constraint
2005-09-27 14:28:32,369 : SetPublisherAssertionsFunction.execute :
org.postgresql.util.PSQLException: ERROR: null value in column "tmodel_key"
violates not-null constraint
2005-09-27 14:28:32,370 : AbstractService.doPost :
org.postgresql.util.PSQLException: ERROR: null value in column "tmodel_key"
violates not-null constraint
2005-09-27 14:28:32,371 : AbstractService.doPost : A serious error has occured
while assembling the SOAP Fault.
java.lang.IllegalArgumentException: invalid QName local part
at javax.xml.namespace.QName.<init>(QName.java(Inlined Compiled Code))
at javax.xml.namespace.QName.<init>(QName.java(Compiled Code))
at org.apache.axis.AxisFault.setFaultCodeAsString(AxisFault.java:422)
at org.apache.axis.message.SOAPFault.setFaultCode(SOAPFault.java:226)
at
org.apache.juddi.registry.AbstractService.doPost(AbstractService.java:317)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled
Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
at java.security.AccessController.doPrivileged1(Native Method)
at
java.security.AccessController.doPrivileged(AccessController.java(Compiled
Code))
at javax.security.auth.Subject.doAsPrivileged(Subject.java:709)
at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:245)
at
org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50)
at
org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:156)
at java.security.AccessController.doPrivileged1(Native Method)
at
java.security.AccessController.doPrivileged(AccessController.java(Compiled
Code))
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:152)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:568)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira