[portal-java v0.7] No longer recognizing @JsonProperty - Unrecognized field "workstationUuid"

233 views
Skip to first unread message

Ben Kuhl

unread,
Oct 21, 2013, 1:47:52 PM10/21/13
to portal_...@googlegroups.com
When upgrading from 0.6 to 0.7 an error suddenly appears.  For this reason I've stayed on 0.6 for now.

java.lang.IllegalArgumentException: Unrecognized field "workstationUuid" (class com.company.production.workflow.process.approval.socket.request.WorkstationRequest), not marked as ignorable (2 known properties: , "workstationService", "workstation"])

I'm using a setter method and @JsonProperty to tell jackson to use a method to map the field.

Handler
    @On
   
@Reply
   
@Override
   
@JsonView({Views.WorkstationView.class})
   
public Workstation registerWorkstation(Socket socket, @Data WorkstationRequest request) {


       
//since the workstation is connected, update the last active time
        workstationService
.updateLastActive(request.getWorkstation().getEntity().getUuid());


        request
.getWorkstation().setSocket(socket);


       
//notify admins a new workstation exists
       
AdminSocketHandler.send(new RegisterWorkstationEvent(request.getWorkstation()));


       
return request.getWorkstation();
   
}

@Data object

public class WorkstationRequest extends com.fettergroup.production.socket.request.WorkstationRequest {

    public WorkstationRequest() {
        super(ApprovalWorkstation.class);
    }

    /* Set the workstation based on UUID.  Will register the workstation if it's new */
    @JsonProperty("workstationUuid")
    public void setWorkstation(String workstationUUID) {
        workstation = (PhysicalWorkstation) WorkstationService.getWorkstation(workstationUUID);

        //setup new workstation
        if (workstation == null) {
            WorkstationEntity workstationEntity = workstationService.findByUUID(workstationUUID);
            workstation = (PhysicalWorkstation) Workstation.factory(workstationEntity, ApprovalWorkstation.class);

            //register with queue
            WorkflowProcessService.getWorkflowProcess(workstation).registerWorkstation(workstation);
        }
    }
}


stack trace:
13:44:00,529  WARN Grizzly(1) org.atmosphere.websocket.DefaultWebSocketProcessor:221 - Failed invoking AtmosphereFramework.doCometSupport()
java.lang.IllegalArgumentException: Unrecognized field "workstationUuid" (class com.company.production.workflow.process.approval.socket.request.WorkstationRequest), not marked as ignorable (2 known properties: , "workstationService", "workstation"])
 at [Source: N/A; line: -1, column: -1] (through reference chain: com.company.production.workflow.process.approval.socket.request.WorkstationRequest["workstationUuid"])
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2615)
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2542)
at com.github.flowersinthesand.portal.support.DefaultDispatcher$DefaultHandler$DataParam.resolve(DefaultDispatcher.java:291)
at com.github.flowersinthesand.portal.support.DefaultDispatcher$DefaultHandler.handle(DefaultDispatcher.java:231)
at com.github.flowersinthesand.portal.support.DefaultDispatcher.fire(DefaultDispatcher.java:128)
at com.github.flowersinthesand.portal.support.AbstractSocketFactory.fire(AbstractSocketFactory.java:69)
at com.github.flowersinthesand.portal.atmosphere.AtmosphereSocketController.onRequest(AtmosphereSocketController.java:76)
at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:256)
at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:166)
at org.atmosphere.container.Grizzly2WebSocketSupport.service(Grizzly2WebSocketSupport.java:75)
at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1342)
at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:219)
at org.atmosphere.websocket.DefaultWebSocketProcessor$2.run(DefaultWebSocketProcessor.java:183)
at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:178)
at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:167)
at org.atmosphere.container.Grizzly2WebSocketSupport$Grizzly2WebSocketApplication.onMessage(Grizzly2WebSocketSupport.java:171)
at org.glassfish.grizzly.websockets.DefaultWebSocket.onMessage(DefaultWebSocket.java:164)
at org.glassfish.grizzly.websockets.frametypes.TextFrameType.respond(TextFrameType.java:70)
at org.glassfish.grizzly.websockets.DataFrame.respond(DataFrame.java:104)
at org.glassfish.grizzly.websockets.WebSocketFilter.handleRead(WebSocketFilter.java:221)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:265)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:134)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:78)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:770)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:551)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:531)
at java.lang.Thread.run(Thread.java:722)


pom
        <dependency>
           
<groupId>com.github.flowersinthesand</groupId>
           
<artifactId>portal-core</artifactId>
           
<version>0.7</version>
       
</dependency>
       
<dependency>
           
<groupId>com.github.flowersinthesand</groupId>
           
<artifactId>portal-spring</artifactId>
           
<version>0.7</version>
       
</dependency>
       
<dependency>
           
<groupId>com.github.flowersinthesand</groupId>
           
<artifactId>portal-atmosphere</artifactId>
           
<version>0.7</version>
       
</dependency>
       
<dependency>
           
<groupId>org.atmosphere</groupId>
           
<artifactId>atmosphere-runtime</artifactId>
           
<version>1.0.12</version>
           
<exclusions>
               
<exclusion>
                   
<groupId>org.slf4j</groupId>
                   
<artifactId>slf4j-api</artifactId>
               
</exclusion>
           
</exclusions>
       
</dependency>
       
<dependency>
           
<groupId>eu.infomas</groupId>
           
<artifactId>annotation-detector</artifactId>
           
<version>3.0.1</version>
       
</dependency>

Donghwan Kim

unread,
Oct 22, 2013, 12:12:19 AM10/22/13
to portal_...@googlegroups.com
Hello,

As you know, jackson annotation are not intended to support. I'm not sure how this works in 0.6 and doesn't work in 0.7. But, because 0.6 uses jackson 1.9 and 0.7 uses jackson 2.2, it might be an issue. What do you think?

Thanks,

-- Donghwan

Ben Kuhl

unread,
Oct 22, 2013, 8:00:40 AM10/22/13
to portal_...@googlegroups.com
On maven I'm showing the latest version of Jackson is 1.9.13, which is the version I was using with Portal.  I suppose that's probably the issue.

Donghwan Kim

unread,
Oct 23, 2013, 1:27:15 AM10/23/13
to portal_...@googlegroups.com
Anyway, that exception occurs in calling ObjectMapper.convertValue. Can you confirm whether it's working or not with Jackson 2.2 as well as 1.9.13? It seems that @Data here holds a valid class correctly.

Thanks,

-- Donghwan


On Tue, Oct 22, 2013 at 9:00 PM, Ben Kuhl <ben...@gmail.com> wrote:
On maven I'm showing the latest version of Jackson is 1.9.13, which is the version I was using with Portal.  I suppose that's probably the issue.

--
You received this message because you are subscribed to the Google Groups "Portal" group.
To unsubscribe from this group and stop receiving emails from it, send an email to portal_projec...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Ben Kuhl

unread,
Oct 23, 2013, 8:02:23 AM10/23/13
to portal_...@googlegroups.com
Maven does not have 2.2 available yet or I would test it.


Is there another place I can get 2.2?

Donghwan Kim

unread,
Oct 23, 2013, 9:27:21 AM10/23/13
to portal_...@googlegroups.com
They changed groupid and some artifactsids in 2.x.

-- Donghwan


--

Ben Kuhl

unread,
Oct 23, 2013, 10:05:13 AM10/23/13
to portal_...@googlegroups.com
Yep, that was it.  Thanks!!
Reply all
Reply to author
Forward
0 new messages