cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aristedes Maniatis <...@maniatis.org>
Subject Re: NPE on ROP connect after upgrading from 4.0.M2 to 4.0.M3
Date Sat, 09 Apr 2016 06:55:03 GMT
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 <ari@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

Mime
View raw message