I'm not sure. The only other bug we know about is that Hessian 4 has a problem 
in BigDecimal serialisation. But I can't see that in the stack trace.

I'm currently deciding what to do about Hessian. Options include moving to 
something other than Hessian or forking Hessian since upstream isn't accepting 
patches. In the meantime, if you hit the BigDecimal bug, it isn't hard to work 
around.

Ari


On 9/04/2016 11:47am, Adam Boyle wrote:
> I'm running both client and server from an eclipse project locally with 
> maven, but I'll make sure that the hessian dependencies are on version 4.0.38.
> 
> I checked the client and server poms and they are both updated to Hessian 
> 4.0.38 and Cayenne 4.0.M3. I'm still seeing the same stacktrace, so let me 
> know if I should provide any other configs/whatever.
> 
> Here is the stacktrace after verifying that everything was updated:
> 
> Apr 08, 2016 9:38:44 PM org.apache.cayenne.remote.hessian.HessianConnection 
> connect
> INFO: Connecting to [system:*******@http://localhost:8080/vidval/cws] - 
> dedicated session.
> Apr 08, 2016 9:38:44 PM org.apache.cayenne.remote.hessian.HessianConnection 
> connect
> INFO: Error establishing remote session. URL - 
> http://localhost:8080/vidval/cws
> java.lang.NullPointerException
>       at 
> com.caucho.hessian.client.HessianURLConnectionFactory.open(HessianURLConnectionFactory.java:90)
>       at 
> org.apache.cayenne.remote.hessian.HessianURLConnectionFactory.open(HessianURLConnectionFactory.java:39)
>       at 
> com.caucho.hessian.client.HessianProxy.sendRequest(HessianProxy.java:270)
>       at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:171)
>       at com.sun.proxy.$Proxy5.establishSession(Unknown Source)
>       at 
> org.apache.cayenne.remote.hessian.HessianConnection.connect(HessianConnection.java:246)
>       at 
> org.apache.cayenne.remote.hessian.HessianConnection.beforeSendMessage(HessianConnection.java:164)
>       at 
> org.apache.cayenne.remote.BaseConnection.sendMessage(BaseConnection.java:55)
>       at org.apache.cayenne.remote.ClientChannel.send(ClientChannel.java:326)
>       at 
> org.apache.cayenne.remote.ClientChannel.getEntityResolver(ClientChannel.java:282)
>       at org.apache.cayenne.BaseContext.attachToChannel(BaseContext.java:177)
>       at 
> org.apache.cayenne.CayenneContext.attachToChannel(CayenneContext.java:85)
>       at org.apache.cayenne.CayenneContext.<init>(CayenneContext.java:76)
>       at org.apache.cayenne.CayenneContext.<init>(CayenneContext.java:65)
>       at 
> com.valsphere.vidval.client.cayenne.CayenneContextWrapper.<init>(CayenneContextWrapper.java:14)
>       at com.valsphere.vidval.client.Client$1.onSubmit(Client.java:108)
>       at 
> com.valsphere.vidval.client.gui.GuiLogin$4.actionPerformed(GuiLogin.java:125)
>       at 
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
>       at 
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
>       at 
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>       at 
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>       at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
>       at 
> com.alee.managers.hotkey.ButtonHotkeyRunnable.run(ButtonHotkeyRunnable.java:47)
>       at com.alee.utils.SwingUtils.invokeLater(SwingUtils.java:2672)
>       at 
> com.alee.managers.hotkey.HotkeyManager.processHotkey(HotkeyManager.java:314)
>       at 
> com.alee.managers.hotkey.HotkeyManager.processHotkeys(HotkeyManager.java:266)
>       at 
> com.alee.managers.hotkey.HotkeyManager$3.eventDispatched(HotkeyManager.java:162)
>       at 
> java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2444)
>       at 
> java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2335)
>       at 
> java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2335)
>       at 
> java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2335)
>       at 
> java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2335)
>       at java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:2294)
>       at java.awt.Component.dispatchEventImpl(Component.java:4768)
>       at java.awt.Container.dispatchEventImpl(Container.java:2287)
>       at java.awt.Component.dispatchEvent(Component.java:4698)
>       at 
> java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1887)
>       at 
> java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
>       at 
> java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
>       at 
> java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)
>       at 
> java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
>       at java.awt.Component.dispatchEventImpl(Component.java:4742)
>       at java.awt.Container.dispatchEventImpl(Container.java:2287)
>       at java.awt.Window.dispatchEventImpl(Window.java:2719)
>       at java.awt.Component.dispatchEvent(Component.java:4698)
>       at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
>       at java.awt.EventQueue.access$200(EventQueue.java:103)
>       at java.awt.EventQueue$3.run(EventQueue.java:694)
>       at java.awt.EventQueue$3.run(EventQueue.java:692)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>       at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
>       at java.awt.EventQueue$4.run(EventQueue.java:708)
>       at java.awt.EventQueue$4.run(EventQueue.java:706)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>       at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
>       at 
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
>       at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
>       at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
>       at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
>       at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
>       at java.awt.Dialog.show(Dialog.java:1082)
>       at java.awt.Component.show(Component.java:1655)
>       at java.awt.Component.setVisible(Component.java:1607)
>       at java.awt.Window.setVisible(Window.java:1014)
>       at java.awt.Dialog.setVisible(Dialog.java:1005)
>       at com.valsphere.vidval.client.gui.GuiLogin.<init>(GuiLogin.java:181)
>       at com.valsphere.vidval.client.Client.initPriv(Client.java:97)
>       at com.valsphere.vidval.client.Client.initialize(Client.java:76)
>       at com.valsphere.vidval.client.gui.GuiMain.doLogin(GuiMain.java:128)
>       at com.valsphere.vidval.client.Main$1.run(Main.java:56)
>       at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
>       at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
>       at java.awt.EventQueue.access$200(EventQueue.java:103)
>       at java.awt.EventQueue$3.run(EventQueue.java:694)
>       at java.awt.EventQueue$3.run(EventQueue.java:692)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>       at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
>       at 
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
>       at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
>       at 
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
>       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
>       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
>       at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
> 
> ________________________________________
> From: Aristedes Maniatis <a...@maniatis.org>
> Sent: Friday, April 8, 2016 8:43 PM
> To: user@cayenne.apache.org
> Subject: Re: NPE on ROP connect after upgrading from 4.0.M2 to 4.0.M3
> 
> The main change in M3 is that we moved to Hessian 4. Are you running a newer 
> client compared to the server end? I'm not sure of the compatibility between 
> the two.
> 
> Ari
> 
> 
> On 9/04/2016 3:28am, Adam Boyle wrote:
>> I'm seeing the following NPE on the client when connecting my ROP client 
>> after upgrading from 4.0.M2 to M3:
>>
>>
>> Apr 08, 2016 1:11:38 PM org.apache.cayenne.remote.hessian.HessianConnection 
>> connect
>> INFO: Connecting to [system:*******@http://localhost:8080/vidval/cws] - 
>> dedicated session.
>> Apr 08, 2016 1:11:39 PM org.apache.cayenne.remote.hessian.HessianConnection 
>> connect
>> INFO: Error establishing remote session. URL - 
>> http://localhost:8080/vidval/cws
>> java.lang.NullPointerException
>> at 
>> com.caucho.hessian.client.HessianURLConnectionFactory.open(HessianURLConnectionFactory.java:90)
>> at 
>> org.apache.cayenne.remote.hessian.HessianURLConnectionFactory.open(HessianURLConnectionFactory.java:39)
>> at com.caucho.hessian.client.HessianProxy.sendRequest(HessianProxy.java:270)
>> at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:171)
>> at com.sun.proxy.$Proxy5.establishSession(Unknown Source)
>> at 
>> org.apache.cayenne.remote.hessian.HessianConnection.connect(HessianConnection.java:246)
>> at 
>> org.apache.cayenne.remote.hessian.HessianConnection.beforeSendMessage(HessianConnection.java:164)
>> at 
>> org.apache.cayenne.remote.BaseConnection.sendMessage(BaseConnection.java:55)
>> at org.apache.cayenne.remote.ClientChannel.send(ClientChannel.java:326)
>> at 
>> org.apache.cayenne.remote.ClientChannel.getEntityResolver(ClientChannel.java:282)
>> at org.apache.cayenne.BaseContext.attachToChannel(BaseContext.java:177)
>> at org.apache.cayenne.CayenneContext.attachToChannel(CayenneContext.java:85)
>> at org.apache.cayenne.CayenneContext.<init>(CayenneContext.java:76)
>> at org.apache.cayenne.CayenneContext.<init>(CayenneContext.java:65)
>> at 
>> com.valsphere.vidval.client.cayenne.CayenneContextWrapper.<init>(CayenneContextWrapper.java:14)
>> at com.valsphere.vidval.client.Client$1.onSubmit(Client.java:105)
>> at 
>> com.valsphere.vidval.client.gui.GuiLogin$4.actionPerformed(GuiLogin.java:125)
>> at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
>> at 
>> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
>> at 
>> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>> at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>> at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
>> at 
>> com.alee.managers.hotkey.ButtonHotkeyRunnable.run(ButtonHotkeyRunnable.java:47)
>> at com.alee.utils.SwingUtils.invokeLater(SwingUtils.java:2672)
>> at 
>> com.alee.managers.hotkey.HotkeyManager.processHotkey(HotkeyManager.java:314)
>> at 
>> com.alee.managers.hotkey.HotkeyManager.processHotkeys(HotkeyManager.java:266)
>> at 
>> com.alee.managers.hotkey.HotkeyManager$3.eventDispatched(HotkeyManager.java:162)
>> at 
>> java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2444)
>> at 
>> java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2335)
>> at 
>> java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2335)
>> at 
>> java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2335)
>> at 
>> java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2335)
>> at java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:2294)
>> at java.awt.Component.dispatchEventImpl(Component.java:4768)
>> at java.awt.Container.dispatchEventImpl(Container.java:2287)
>> at java.awt.Component.dispatchEvent(Component.java:4698)
>> at 
>> java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1887)
>> at 
>> java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
>> at 
>> java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
>> at 
>> java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)
>> at 
>> java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
>> at java.awt.Component.dispatchEventImpl(Component.java:4742)
>> at java.awt.Container.dispatchEventImpl(Container.java:2287)
>> at java.awt.Window.dispatchEventImpl(Window.java:2719)
>> at java.awt.Component.dispatchEvent(Component.java:4698)
>> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
>> at java.awt.EventQueue.access$200(EventQueue.java:103)
>> at java.awt.EventQueue$3.run(EventQueue.java:694)
>> at java.awt.EventQueue$3.run(EventQueue.java:692)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at 
>> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>> at 
>> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
>> at java.awt.EventQueue$4.run(EventQueue.java:708)
>> at java.awt.EventQueue$4.run(EventQueue.java:706)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at 
>> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>> at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
>> at 
>> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
>> at 
>> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
>> at 
>> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
>> at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
>> at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
>> at java.awt.Dialog.show(Dialog.java:1082)
>> at java.awt.Component.show(Component.java:1655)
>> at java.awt.Component.setVisible(Component.java:1607)
>> at java.awt.Window.setVisible(Window.java:1014)
>> at java.awt.Dialog.setVisible(Dialog.java:1005)
>> at com.valsphere.vidval.client.gui.GuiLogin.<init>(GuiLogin.java:181)
>> at com.valsphere.vidval.client.Client.initPriv(Client.java:94)
>> at com.valsphere.vidval.client.Client.initialize(Client.java:73)
>> at com.valsphere.vidval.client.gui.GuiMain.doLogin(GuiMain.java:128)
>> at com.valsphere.vidval.client.Main$1.run(Main.java:56)
>> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
>> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
>> at java.awt.EventQueue.access$200(EventQueue.java:103)
>> at java.awt.EventQueue$3.run(EventQueue.java:694)
>> at java.awt.EventQueue$3.run(EventQueue.java:692)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at 
>> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>> at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
>> at 
>> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
>> at 
>> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
>> at 
>> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
>> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
>> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
>> at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
>>
>> My code looks like this and was working well in 4.0.M2:
>> connection = new HessianConnection(host, userId, 
>> String.copyValueOf(password), null);
>> channel = new ClientChannel(connection, false, null, true);
>> setContext(new CayenneContextWrapper(channel));
>>
>> The server console is not reporting any exceptions. I checked 
>> http://localhost:8080/vidval/cws in my browser and was able to login with 
>> BASIC auth and see the "Hessian Requires POST" message, so not sure what's 
>> going on.
>>
>> -Adam
>>
>>
>>
> 
> --
> -------------------------->
> Aristedes Maniatis
> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
> 

-- 
-------------------------->
Aristedes Maniatis
GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A

Reply via email to