You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wink.apache.org by "Luciano Resende (JIRA)" <ji...@apache.org> on 2012/05/26 06:54:23 UTC

[jira] [Updated] (WINK-354) Inconsistent Unmarshalling of XML to Object during Concurrent requests to a Resource

     [ https://issues.apache.org/jira/browse/WINK-354?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Luciano Resende updated WINK-354:
---------------------------------

    Fix Version/s:     (was: 1.1.3)
                   1.3
    
> Inconsistent Unmarshalling of XML to Object during Concurrent requests to a Resource
> ------------------------------------------------------------------------------------
>
>                 Key: WINK-354
>                 URL: https://issues.apache.org/jira/browse/WINK-354
>             Project: Wink
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 1.1.3
>            Reporter: Munirathnam Kumar
>            Priority: Critical
>             Fix For: 1.3
>
>
> Concurrent request are Issued on a Resource. 
> Client sends an XML to the resource.
> Few request Unmarshall the XML partially, While others succeed in forming complete bean object.
> I have posted my test results on Wink-user.
> Sample code to prove the issue are given below
> Client 
>  
> RestClient client = new RestClient();
>  
> for ( int i =0; i < 50 ; i ++ ){
>              resource = client.resource("http://localhost:8080/logger/test");
>              new Thread(new Multi(resource),new Integer(i).toString()).start();
>          }
> class Multi implements Runnable{    
>     Resource resource;
>     String xml = "<UserSubscription>"
>             +       "<selectedOptions><entry><key >Amount of Memory (MB)</key><value >2000</value></entry>" +
>                                            "<entry><key>Number of CPUs</key><value>1</value></entry>" +
>                                            "<entry><key>Number of Servers</key><value>1</value></entry>"
>             +      "</selectedOptions>"
>             +   "</UserSubscription>";
>     
>     Multi(Resource resource){
>         this.resource = resource;
>         
>     }
>     public void run(){
>              String res = resource.contentType(MediaType.APPLICATION_XML).accept(MediaType.TEXT_PLAIN).post(String.class,xml);         
>              System.out.println("thread - " + Thread.currentThread().getName() + " : " +  res);       
>     }
> }
>  
> Bean Class
>  
> @XmlAccessorType(XmlAccessType.NONE)
> @XmlRootElement(name = "UserSubscription")
> public class ServiceRequest {
>                 private Properties modelInputs;
>  
>  
>                 public  void setSelectedOptions(Properties modelInputs) {
>                                 this.modelInputs = modelInputs;
>                 }
>  
>                 @XmlElementWrapper(name = "selectedOptions", required = true, nillable = false)
>                 public  Properties getSelectedOptions() {
>                                 return this.modelInputs;
>                 }
> }
>  
>  
> Resource Class
>  
> @Path("/test")
> public class PropResource {
>     
> @POST
> @Consumes(MediaType.APPLICATION_XML)
> @Produces(MediaType.TEXT_PLAIN)
>     public Response getLogs(ServiceRequest request){
>  
>     String res = "";
>     if( request.getSelectedOptions() == null){               
>         res = "Unmarshall Failed";
>     } else if(request.getSelectedOptions() != null ){        
>         res = "Unmarshall Passed";
>     }    
>     return Response.ok(res).build();
>     }
>  
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira