Dan Haywood created ISIS-318:
--------------------------------

             Summary: Restful Objects viewer returning 500 instead of 400 when 
given bad input
                 Key: ISIS-318
                 URL: https://issues.apache.org/jira/browse/ISIS-318
             Project: Isis
          Issue Type: Bug
          Components: Viewer: RestfulObjects
    Affects Versions: viewer-restfulobjects-1.0.0
            Reporter: Dan Haywood
            Assignee: Dan Haywood
            Priority: Minor
             Fix For: viewer-restfulobjects-1.1.0


For example, this invalid input:

{
    "description": "Eat Seaweed",
    "category": "OTHER",
    "dueBy": "Jan 23, 2013"
}

using URL:        
http://localhost:8080/restfulobjects/objstore.jdo.todo.ToDoItemsJdo:1/actions/newToDo/invoke

returns a 500 instead of 400.


fyi the correct input is 

{
    "description": "Eat Seaweed",
    "category": "Other",
    "dueBy": "20130123T000000000"
}



The stacktrace returned was:

{
  "message": "Unknown enum constant 'OTHER'",
  "stackTrace": [
    
"org.apache.isis.core.progmodel.facets.object.choices.enums.EnumValueSemanticsProvider.doParse(EnumValueSemanticsProvider.java:63)",
    
"org.apache.isis.core.progmodel.facets.object.choices.enums.EnumValueSemanticsProvider.doRestore(EnumValueSemanticsProvider.java:73)",
    
"org.apache.isis.core.progmodel.facets.object.choices.enums.EnumValueSemanticsProvider.doRestore(EnumValueSemanticsProvider.java:32)",
    
"org.apache.isis.core.progmodel.facets.object.value.ValueSemanticsProviderAndFacetAbstract.fromEncodedString(ValueSemanticsProviderAndFacetAbstract.java:261)",
    
"org.apache.isis.core.progmodel.facets.object.encodeable.EncodableFacetUsingEncoderDecoder.fromEncodedString(EncodableFacetUsingEncoderDecoder.java:60)",
    
"org.apache.isis.viewer.restfulobjects.viewer.resources.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:163)",
    
"org.apache.isis.viewer.restfulobjects.viewer.resources.domainobjects.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:332)",
    
"org.apache.isis.viewer.restfulobjects.viewer.resources.domainobjects.DomainResourceHelper.parseArguments(DomainResourceHelper.java:476)",
    
"org.apache.isis.viewer.restfulobjects.viewer.resources.domainobjects.DomainResourceHelper.parseArguments(DomainResourceHelper.java:463)",
    
"org.apache.isis.viewer.restfulobjects.viewer.resources.domainobjects.DomainResourceHelper.invokeActionUsingAdapters(DomainResourceHelper.java:270)",
    
"org.apache.isis.viewer.restfulobjects.viewer.resources.domainobjects.DomainResourceHelper.invokeAction(DomainResourceHelper.java:265)",
    
"org.apache.isis.viewer.restfulobjects.viewer.resources.domainobjects.DomainObjectResourceServerside.invokeAction(DomainObjectResourceServerside.java:407)",
    "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
    
"sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
    
"sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
    "java.lang.reflect.Method.invoke(Method.java:601)",
    
"org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:155)",
    
"org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257)",
    "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222)",
    "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211)",
    
"org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:525)",
    
"org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:502)",
    
"org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119)",
    
"org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",



--
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