Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 01 Jun 2006 12:57:43 +0300
From:      "R F" <roman321@ua.fm>
To:        freebsd-java@freebsd.org
Subject:   jdk1.5, BigDecimal via IIOP between amd64 and i386 issue
Message-ID:  <web-12721386@uafm2.trumo.net>

next in thread | raw e-mail | index | archive | help

Hi,

I've ran into an issue while trying to pass BigDecimal via IIOP  from i386 
based client to amd64 based server (and vice-versa). Marshalling of say, 
String works just fine.

Marshalling between two i386 or between two amd64 works fine.

The following test interface yields below trace, when used between amd64 and 
i386:
public interface Test extends Remote
{
	public void func(BigDecimal d) throws RemoteException;
}

WARNING: "IOP00810211: (MARSHAL) Exception from readValue on ValueHandler in 
CDRInputStream"
org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 211 completed: Maybe
         at 
com.sun.corba.se.impl.logging.ORBUtilSystemException.valuehandlerReadException(ORBUtilSystemException.java:6500)
         at 
com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1045)
         at 
com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1892)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2311)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.defaultReadObjectDelegate(IIOPInputStream.java:570)
         at 
com.sun.corba.se.impl.io.InputStreamHook.defaultReadObject(InputStreamHook.java:183)
         at java.math.BigDecimal.readObject(BigDecimal.java:3153)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1694)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.inputObjectUsingFVD(IIOPInputStream.java:1548)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:398)
         at 
com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at 
com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at 
com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         at 
com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
         at _HelloImpl_Tie._invoke(Unknown Source)
         at 
com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:637)
         at 
com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:189)
         at 
com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1680)
         at 
com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1540)
         at 
com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:922)
         at 
com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:181)
         at 
com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:694)
         at 
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:451)
         at 
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1187)
         at 
com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:417)
Caused by: java.io.StreamCorruptedException: Invalid indirection to offset 338
         at 
com.sun.corba.se.impl.io.IIOPInputStream.inputRemoteMembersForReadFields(IIOPInputStream.java:2089)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.readFields(IIOPInputStream.java:2008)
         at 
com.sun.corba.se.impl.io.InputStreamHook.readFields(InputStreamHook.java:216)
         at java.math.BigInteger.readObject(BigInteger.java:3098)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1694)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1212)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
         at 
com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
         at 
com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
         at 
com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
         ... 28 more
Caused by: java.io.IOException: Invalid indirection to offset 338
         at 
com.sun.corba.se.impl.io.IIOPInputStream$ActiveRecursionManager.getObject(IIOPInputStream.java:2684)
         at 
com.sun.corba.se.impl.io.IIOPInputStream.inputRemoteMembersForReadFields(IIOPInputStream.java:2077)
         ... 41 more

Any ideas on the above?
--
http://45griven.com - все домены по 45 гривен
+ 10 мегабайт под сайт и почту бесплатно.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?web-12721386>