Hi guys,
Well I've upgraded to Ice 3.4.1 and am still seeing a problem. ( Okay I confess my Icestorm instance is still 3.4.0 but from what I understand he should just be obliviously passing my messages from publishers to subscribers right?).
I've made the change suggested in BasicStream ( here's my modification).
Code:
private String
typeToClass(String id)
{
if(!id.startsWith("::"))
{
throw new Ice.MarshalException("Malformed id '" + id + "'");
}
StringBuilder buf = new StringBuilder(id.length());
int start = 2;
boolean done = false;
while(!done)
I see the following tracebacks. ( This is from icestorm log, two guis are connected so have included both tracebacks to indicate that they both throw the same exception. I've pasted from emacs so the binary characters in the exception string have been suitable formatted).
Any ideas? Is there anything else I can try? I've verified both the runtime jar and the jar containing my compiled slice definitions are identical. I've enclosed two stacktraces, one is a rather boring empty string, but the second looks a little more interesting...
I've also written a separate bare-bones commandline subscriber that does nothing other than print out which methods are being invoked, and it throws the same exceptions as the gui.
Thanks,
Andrew.
Code:
unknown local exception:
Ice::MarshalException
Ice.MarshalException^M
reason = "Malformed id ''"^M
at IceInternal.BasicStream.typeToClass(BasicStream.java:2320)^M
at IceInternal.BasicStream.findClass(BasicStream.java:2240)^M
at IceInternal.BasicStream.loadObjectFactory(BasicStream.java:2107)^M
at IceInternal.BasicStream.readObject(BasicStream.java:1476)^M
at praxis.trading.String2StateHelper.read(String2StateHelper.java:53)^M
at praxis.trading.BatchUpdate.__read(BatchUpdate.java:135)^M
at praxis.trading._ServerListenerDisp.___onBatchUpdate(_ServerListenerDisp.java:327)^M
at praxis.trading._ServerListenerDisp.__dispatch(_ServerListenerDisp.java:421)^M
at IceInternal.Incoming.invoke(Incoming.java:159)^M
at Ice.ConnectionI.invokeAll(ConnectionI.java:2312)^M
at Ice.ConnectionI.dispatch(ConnectionI.java:1199)^M
at Ice.ConnectionI$1.run(ConnectionI.java:1140)^M
at java.awt.event.InvocationEvent.dispatch(Unknown Source)^M
at java.awt.EventQueue.dispatchEvent(Unknown Source)^M
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)^M
at java.awt.EventDispatchThread.run(Unknown Source)^M
retry: 0/0
-- 03/30/11 14:10:31.702 PermIceBox-IceStorm: Subscriber: 0x2aaab0007530 transition from online to error
-- 03/30/11 14:10:31.702 PermIceBox-IceStorm: Subscriber: 0x2aaab0007530 6cde0cb9-d522-474e-8b56-05317c849174: subscriber errored out: Outgoi\
ngAsync.cpp:680: Ice::UnknownLocalException:
unknown local exception:
Ice::MarshalException
Ice.MarshalException^M
reason = "Malformed id ''"^M
at IceInternal.BasicStream.typeToClass(BasicStream.java:2320)^M
at IceInternal.BasicStream.findClass(BasicStream.java:2240)^M
at IceInternal.BasicStream.loadObjectFactory(BasicStream.java:2107)^M
at IceInternal.BasicStream.readObject(BasicStream.java:1476)^M
at praxis.trading.String2StateHelper.read(String2StateHelper.java:53)^M
at praxis.trading.BatchUpdate.__read(BatchUpdate.java:135)^M
at praxis.trading._ServerListenerDisp.___onBatchUpdate(_ServerListenerDisp.java:327)^M
at praxis.trading._ServerListenerDisp.__dispatch(_ServerListenerDisp.java:421)^M
at IceInternal.Incoming.invoke(Incoming.java:159)^M
at Ice.ConnectionI.invokeAll(ConnectionI.java:2312)^M
at Ice.ConnectionI.dispatch(ConnectionI.java:1199)^M
at Ice.ConnectionI$1.run(ConnectionI.java:1140)^M
at java.awt.event.InvocationEvent.dispatch(Unknown Source)^M
at java.awt.EventQueue.dispatchEvent(Unknown Source)^M
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)^M
at java.awt.EventDispatchThread.run(Unknown Source)^M
retry: 0/0
Ice::MarshalException
Ice.MarshalException^M
reason = "Malformed id '^A^@^@^@^@^@^@^@^M::Ice::Object^E^@^@^@^@&^@^@^@^A^A^\^@^@^@\357\277\275\357\277\275\357\277\275\357\277\275^B^@\
^@^@^@^@^@^@^@\357\277\275I8@^A^@^@^@^@^@^@^A^B^E^@^@^@'"^M
at IceInternal.BasicStream.typeToClass(BasicStream.java:2320)^M
at IceInternal.BasicStream.findClass(BasicStream.java:2240)^M
at IceInternal.BasicStream.loadObjectFactory(BasicStream.java:2107)^M
at IceInternal.BasicStream.readObject(BasicStream.java:1476)^M
at praxis.trading.String2StateHelper.read(String2StateHelper.java:53)^M
at praxis.trading.BatchUpdate.__read(BatchUpdate.java:135)^M
at praxis.trading._ServerListenerDisp.___onBatchUpdate(_ServerListenerDisp.java:327)^M
at praxis.trading._ServerListenerDisp.__dispatch(_ServerListenerDisp.java:421)^M
at IceInternal.Incoming.invoke(Incoming.java:159)^M
at Ice.ConnectionI.invokeAll(ConnectionI.java:2312)^M
at Ice.ConnectionI.dispatch(ConnectionI.java:1199)^M
at Ice.ConnectionI$1.run(ConnectionI.java:1140)^M
at java.awt.event.InvocationEvent.dispatch(Unknown Source)^M
at java.awt.EventQueue.dispatchEvent(Unknown Source)^M
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)^M
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)^M
at java.awt.EventDispatchThread.run(Unknown Source)^M
retry: 0/0
-- 03/30/11 14:30:25.423 PermIceBox-IceStorm: Subscriber: 0x5008d60 transition from online to error
-- 03/30/11 14:30:25.423 PermIceBox-IceStorm: Subscriber: 0x5008d60 44a237bc-9cae-496a-aee2-69b28b57a9c7: subscriber errored out: OutgoingAsy\
nc.cpp:680: Ice::UnknownLocalException:
unknown local exception:
Ice::MarshalException
Ice.MarshalException^M
reason = "Malformed id '^A^@^@^@^@^@^@^@^M::Ice::Object^E^@^@^@^@&^@^@^@^A^A^\^@^@^@\357\277\275\357\277\275\357\277\275\357\277\275^B^@\
^@^@^@^@^@^@^@\357\277\275I8@^A^@^@^@^@^@^@^A^B^E^@^@^@'"^M
at IceInternal.BasicStream.typeToClass(BasicStream.java:2320)^M
at IceInternal.BasicStream.findClass(BasicStream.java:2240)^M
at IceInternal.BasicStream.loadObjectFactory(BasicStream.java:2107)^M
at IceInternal.BasicStream.readObject(BasicStream.java:1476)^M
at praxis.trading.String2StateHelper.read(String2StateHelper.java:53)^M
at praxis.trading.BatchUpdate.__read(BatchUpdate.java:126)^M
at praxis.trading._ServerListenerDisp.___onBatchUpdate(_ServerListenerDisp.java:327)^M
at praxis.trading._ServerListenerDisp.__dispatch(_ServerListenerDisp.java:421)^M
at IceInternal.Incoming.invoke(Incoming.java:159)^M
at Ice.ConnectionI.invokeAll(ConnectionI.java:2312)^M
at Ice.ConnectionI.dispatch(ConnectionI.java:1199)^M
at Ice.ConnectionI$1.run(ConnectionI.java:1140)^M
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)^M
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)^M
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)^M
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)^M
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)^M
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)^M
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)^M
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)^M
retry: 0/0