From owner-freebsd-java@FreeBSD.ORG Thu Jun 1 09:58:30 2006 Return-Path: X-Original-To: freebsd-java@freebsd.org Delivered-To: freebsd-java@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 605D516B71A for ; Thu, 1 Jun 2006 09:58:30 +0000 (UTC) (envelope-from roman321@ua.fm) Received: from uafm2.trumo.net (uafm2.trumo.net [213.133.165.69]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7798F43D90 for ; Thu, 1 Jun 2006 09:58:01 +0000 (GMT) (envelope-from roman321@ua.fm) Received: from [212.82.216.227] (account roman321@ua.fm) by uafm2.trumo.net (CommuniGate Pro WebUser 5.0.8) with HTTP id 12721386 for freebsd-java@freebsd.org; Thu, 01 Jun 2006 12:57:43 +0300 From: "R F" To: freebsd-java@freebsd.org X-Mailer: CommuniGate Pro WebUser v5.0.8 Date: Thu, 01 Jun 2006 12:57:43 +0300 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit Subject: jdk1.5, BigDecimal via IIOP between amd64 and i386 issue X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 09:58:36 -0000 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 мегабайт под сайт и почту бесплатно.