[ 
https://issues.apache.org/jira/browse/JUDDI-561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13594246#comment-13594246
 ] 

Alex O'Ree commented on JUDDI-561:
----------------------------------

So if we were to make some unit tests to validate string lengths for those 
parameters, which base project should it go in? The current structure of the 
tck tests do not make these types of tests easy. It's like the tests were 
simply designed to make sure that the correct test cases work, not for when 
incorrect tests case work (which would be a failure)


here's the min-max lengths. If only one number is listed, then the min length 
is 0
lang 26
bindingKey 255
businessKey 255
authorizedName 255
completionStatus 32
keyName 255
keyValue 255
address sort code 10
useType 255
findQualifier 1-255
instanceParms 1-8192
accessPoint 1-4096
description 1-255
discoveryUrl 1-4096
email address 1-255
name 1-255
overviewURL 1-4096
personname 1-255
phone 1-50

from replication
controlledMessage_type 1-255
message_type 1-255
timeOfConfigurationUpdate_type 1-255
operatorStatus_type 16
USN_type int 0-9223372036854775807

                
> Transaction rollback when PersonName Lang is greater than 5 characters
> ----------------------------------------------------------------------
>
>                 Key: JUDDI-561
>                 URL: https://issues.apache.org/jira/browse/JUDDI-561
>             Project: jUDDI
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.1.4
>            Reporter: Alex O'Ree
>            Assignee: Kurt T Stam
>             Fix For: 3.1.5
>
>         Attachments: validation of name lang element.patch
>
>
> Basically, there's a lack of validation of the input text for the language 
> field of PersonName and possibly others that causes a rather strange soap 
> fault. The following exert is from the catalina log.
> WARNING: Application 
> {urn:uddi-org:v3_service}UDDIPublicationService#{urn:uddi-org:v3_service}save_business
>  has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: The transaction has been rolled back.  See 
> the nested exceptions for details on the errors that occurred.
>       at 
> org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:155)
>       at 
> org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:86)
>       at 
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:121)
>       at 
> org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:60)
>       at 
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
>       at 
> org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>       at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>       at 
> org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
>       at 
> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
>       at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)
>       at 
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:461)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188)
>       at 
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:394)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>       at java.lang.Thread.run(Thread.java:722)
> Caused by: <openjpa-1.2.2-r422266:898935 fatal general error> 
> org.apache.openjpa.persistence.PersistenceException: The transaction has been 
> rolled back.  See the nested exceptions for details on the errors that 
> occurred.
>       at 
> org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2187)
>       at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2029)
>       at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1927)
>       at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1698)
>       at org.apache.openjpa.kernel.QueryImpl.isInMemory(QueryImpl.java:956)
>       at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:796)
>       at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:775)
>       at 
> org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:533)
>       at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:252)
>       at 
> org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294)
>       at 
> org.apache.juddi.query.EntityQuery.getQueryResult(EntityQuery.java:128)
>       at 
> org.apache.juddi.query.FindEntityByPublisherQuery.select(FindEntityByPublisherQuery.java:83)
>       at 
> org.apache.juddi.query.FindBusinessByPublisherQuery.select(FindBusinessByPublisherQuery.java:44)
>       at 
> org.apache.juddi.validation.ValidatePublish.validateSaveBusinessMax(ValidatePublish.java:295)
>       at 
> org.apache.juddi.api.impl.UDDIPublicationImpl.saveBusiness(UDDIPublicationImpl.java:595)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:601)
>       at 
> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)
>       at 
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)
>       ... 31 more
> Caused by: <openjpa-1.2.2-r422266:898935 nonfatal general error> 
> org.apache.openjpa.persistence.PersistenceException: A truncation error was 
> encountered trying to shrink VARCHAR 'Click to edit' to length 5. {prepstmnt 
> 2037277748 INSERT INTO j3_person_name (id, lang_code, name, contact_id) 
> VALUES (?, ?, ?, ?) [params=(long) 1452, (String) Click to edit, (String) 
> Click to edit, (long) 1202]} [code=20000, state=22001]
> FailedObject: org.apache.juddi.model.PersonName@3b79b2c6
>       at 
> org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4244)
>       at 
> org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4211)
>       at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
>       at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72)
>       at 
> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:131)
>       at 
> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
>       at 
> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
>       at 
> org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimaryRow(OperationOrderUpdateManager.java:203)
>       at 
> org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:89)
>       at 
> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
>       at 
> org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:721)
>       at 
> org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
>       ... 51 more
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: A truncation 
> error was encountered trying to shrink VARCHAR 'Click to edit' to length 5. 
> {prepstmnt 2037277748 INSERT INTO j3_person_name (id, lang_code, name, 
> contact_id) VALUES (?, ?, ?, ?) [params=(long) 1452, (String) Click to edit, 
> (String) Click to edit, (long) 1202]} [code=20000, state=22001]
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
>       at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1590)
>       at 
> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
>       at 
> org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
>       ... 59 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to