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

Reply via email to