-
Bug
-
Resolution: Fixed
-
P2
-
7
-
b145
-
generic
-
windows
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2210159 | 6-pool | Unassigned | P3 | Closed | Won't Fix | |
JDK-2211589 | 5.0u32 | Miroslaw Niemiec | P3 | Closed | Fixed | b01 |
JDK-2213250 | 5.0u31-rev | Miroslaw Niemiec | P3 | Resolved | Fixed | b20 |
JDK-2210160 | 5.0u30-rev | Miroslaw Niemiec | P3 | Resolved | Fixed | b20 |
REGRESSION
----------
This bug report starts with JDK 7b123. This appears to be a regression from
CR 6877056, which was fixed in JDK 7 b123. The regression also begins with
JDK 6u19 and CR 6877056 was delivered in JDK 6u19.
SYNOPSIS
--------
Enum exchanged as parameters using CORBA call results in Exception
OPERATING SYSTEM
----------------
Windows XP
FULL JDK VERSION
----------------
JDK 7 from b123 onwards
Java 6 from 6u19 onwards
PROBLEM DESCRIPTION
-------------------
When the enum class 'java.math.RoundingMode' is used as parameter in a remote method and tried to send across to other side using CORBA call, the call fails with an Exception.
REPRODUCTION INSTRUCTIONS
-------------------------
1.Compile the test
a) javac EnumTest.java
b) rmic -iiop EnumTest$ServiceImpl
2.Run the command
java EnumTest
Expected result:
Test should pass without throwing exceptions
Observed result:
Exceptions as detailed below:
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:6528)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1061)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:271)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie.doit(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:84)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie._invoke(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:73)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:653)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:205)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1698)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1558)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:940)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:198)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:712)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:469)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1230)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:418)
Caused by: java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:236)
at com.sun.corba.se.impl.encoding.ByteBufferWithInfo.position(ByteBufferWithInfo.java:176)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_2.alignAndCheck(CDRInputStream_1_2.java:95)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_long(CDRInputStream_1_0.java:494)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_long(CDRInputStream.java:151)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1016)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:416)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:333)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:299)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1050)
... 13 more
Exception in thread "main" java.rmi.MarshalException: CORBA MARSHAL 1398079699 Maybe; nested exception is:
org.omg.CORBA.MARSHAL: ----------BEGIN server-side stack trace----------
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 211 completed: Maybe
at com.sun.corba.se.impl.logging.ORBUtilSystemException.valuehandlerReadException(ORBUtilSystemException.java:6528)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1061)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:271)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie.doit(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:84)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie._invoke(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:73)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:653)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:205)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1698)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1558)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:940)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:198)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:712)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:469)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1230)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:418)
Caused by: java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:236)
at com.sun.corba.se.impl.encoding.ByteBufferWithInfo.position(ByteBufferWithInfo.java:176)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_2.alignAndCheck(CDRInputStream_1_2.java:95)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_long(CDRInputStream_1_0.java:494)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_long(CDRInputStream.java:151)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1016)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:416)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:333)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:299)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1050)
... 13 more
----------END server-side stack trace---------- vmcid: SUN minor code: 211 completed: Maybe
at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:213)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:83)
at InitialContextCloseCleanupTest$_Service_Stub.doit(InitialContextCloseCleanupTest$_Service_Stub.java:49)
at InitialContextCloseCleanupTest.main(InitialContextCloseCleanupTest.java:44)
Caused by: org.omg.CORBA.MARSHAL: ----------BEGIN server-side stack trace----------
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 211 completed: Maybe
at com.sun.corba.se.impl.logging.ORBUtilSystemException.valuehandlerReadException(ORBUtilSystemException.java:6528)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1061)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:271)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie.doit(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:84)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie._invoke(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:73)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:653)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:205)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1698)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1558)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:940)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:198)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:712)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:469)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1230)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:418)
Caused by: java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:236)
at com.sun.corba.se.impl.encoding.ByteBufferWithInfo.position(ByteBufferWithInfo.java:176)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_2.alignAndCheck(CDRInputStream_1_2.java:95)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_long(CDRInputStream_1_0.java:494)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_long(CDRInputStream.java:151)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1016)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:416)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:333)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:299)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1050)
... 13 more
----------END server-side stack trace---------- vmcid: SUN minor code: 211 completed: Maybe
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:919)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:116)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:590)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:469)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:353)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:147)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:475)
at InitialContextCloseCleanupTest$_Service_Stub.doit(InitialContextCloseCleanupTest$_Service_Stub.java:39)
... 1 more
TESTCASE SOURCE
---------------
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import java.io.*;
import java.util.*;
import org.omg.CORBA.ORB;
import javax.rmi.CORBA.Tie;
import javax.rmi.CORBA.Util;
/*
* NB: To run the test successfully, the IIOP stubs and ties need to have been
* created for EnumTest.ServiceImpl, using 'rmic -iiop'.
*/
public class EnumTest {
public static void main(String[] args) throws Exception {
ORB serverORB = ORB.init(args, null);
ServiceImpl impl = new ServiceImpl();
Tie tie = Util.getTie(impl);
org.omg.CORBA.Object obj = tie.thisObject();
serverORB.connect(obj);
String ior = serverORB.object_to_string(obj);
System.out.println("Server Started..");
ORB clientORB = ORB.init(args, null);
org.omg.CORBA.Object clientObj = clientORB.string_to_object(ior);
Service remoteObj =(Service)PortableRemoteObject.narrow(clientObj,
Service.class);
System.out.println("Client started.. Sending requests#");
java.math.RoundingMode rm1 =java.math.RoundingMode.valueOf(7);
java.math.RoundingMode rm2 = remoteObj.doit( rm1 );
System.out.println("RM="+rm1.compareTo(rm2));
}
interface Service extends Remote {
java.math.RoundingMode doit(java.math.RoundingMode rm) throws RemoteException;
}
static class ServiceImpl extends PortableRemoteObject implements Service {
public ServiceImpl() throws RemoteException {
}
public java.math.RoundingMode doit(java.math.RoundingMode rm) {
System.out.println("received and returning # " + rm);
return rm;
}
}
}
----------
This bug report starts with JDK 7b123. This appears to be a regression from
CR 6877056, which was fixed in JDK 7 b123. The regression also begins with
JDK 6u19 and CR 6877056 was delivered in JDK 6u19.
SYNOPSIS
--------
Enum exchanged as parameters using CORBA call results in Exception
OPERATING SYSTEM
----------------
Windows XP
FULL JDK VERSION
----------------
JDK 7 from b123 onwards
Java 6 from 6u19 onwards
PROBLEM DESCRIPTION
-------------------
When the enum class 'java.math.RoundingMode' is used as parameter in a remote method and tried to send across to other side using CORBA call, the call fails with an Exception.
REPRODUCTION INSTRUCTIONS
-------------------------
1.Compile the test
a) javac EnumTest.java
b) rmic -iiop EnumTest$ServiceImpl
2.Run the command
java EnumTest
Expected result:
Test should pass without throwing exceptions
Observed result:
Exceptions as detailed below:
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:6528)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1061)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:271)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie.doit(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:84)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie._invoke(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:73)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:653)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:205)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1698)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1558)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:940)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:198)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:712)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:469)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1230)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:418)
Caused by: java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:236)
at com.sun.corba.se.impl.encoding.ByteBufferWithInfo.position(ByteBufferWithInfo.java:176)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_2.alignAndCheck(CDRInputStream_1_2.java:95)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_long(CDRInputStream_1_0.java:494)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_long(CDRInputStream.java:151)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1016)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:416)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:333)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:299)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1050)
... 13 more
Exception in thread "main" java.rmi.MarshalException: CORBA MARSHAL 1398079699 Maybe; nested exception is:
org.omg.CORBA.MARSHAL: ----------BEGIN server-side stack trace----------
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 211 completed: Maybe
at com.sun.corba.se.impl.logging.ORBUtilSystemException.valuehandlerReadException(ORBUtilSystemException.java:6528)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1061)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:271)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie.doit(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:84)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie._invoke(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:73)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:653)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:205)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1698)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1558)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:940)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:198)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:712)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:469)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1230)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:418)
Caused by: java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:236)
at com.sun.corba.se.impl.encoding.ByteBufferWithInfo.position(ByteBufferWithInfo.java:176)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_2.alignAndCheck(CDRInputStream_1_2.java:95)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_long(CDRInputStream_1_0.java:494)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_long(CDRInputStream.java:151)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1016)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:416)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:333)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:299)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1050)
... 13 more
----------END server-side stack trace---------- vmcid: SUN minor code: 211 completed: Maybe
at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:213)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:83)
at InitialContextCloseCleanupTest$_Service_Stub.doit(InitialContextCloseCleanupTest$_Service_Stub.java:49)
at InitialContextCloseCleanupTest.main(InitialContextCloseCleanupTest.java:44)
Caused by: org.omg.CORBA.MARSHAL: ----------BEGIN server-side stack trace----------
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 211 completed: Maybe
at com.sun.corba.se.impl.logging.ORBUtilSystemException.valuehandlerReadException(ORBUtilSystemException.java:6528)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1061)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:271)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie.doit(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:84)
at InitialContextCloseCleanupTest$_ServiceImpl_Tie._invoke(InitialContextCloseCleanupTest$_ServiceImpl_Tie.java:73)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:653)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:205)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1698)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1558)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:940)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:198)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:712)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:469)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1230)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:418)
Caused by: java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:236)
at com.sun.corba.se.impl.encoding.ByteBufferWithInfo.position(ByteBufferWithInfo.java:176)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_2.alignAndCheck(CDRInputStream_1_2.java:95)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_long(CDRInputStream_1_0.java:494)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_long(CDRInputStream.java:151)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1016)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:416)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:333)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:299)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1050)
... 13 more
----------END server-side stack trace---------- vmcid: SUN minor code: 211 completed: Maybe
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:919)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:116)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:590)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:469)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:353)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:147)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:475)
at InitialContextCloseCleanupTest$_Service_Stub.doit(InitialContextCloseCleanupTest$_Service_Stub.java:39)
... 1 more
TESTCASE SOURCE
---------------
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import java.io.*;
import java.util.*;
import org.omg.CORBA.ORB;
import javax.rmi.CORBA.Tie;
import javax.rmi.CORBA.Util;
/*
* NB: To run the test successfully, the IIOP stubs and ties need to have been
* created for EnumTest.ServiceImpl, using 'rmic -iiop'.
*/
public class EnumTest {
public static void main(String[] args) throws Exception {
ORB serverORB = ORB.init(args, null);
ServiceImpl impl = new ServiceImpl();
Tie tie = Util.getTie(impl);
org.omg.CORBA.Object obj = tie.thisObject();
serverORB.connect(obj);
String ior = serverORB.object_to_string(obj);
System.out.println("Server Started..");
ORB clientORB = ORB.init(args, null);
org.omg.CORBA.Object clientObj = clientORB.string_to_object(ior);
Service remoteObj =(Service)PortableRemoteObject.narrow(clientObj,
Service.class);
System.out.println("Client started.. Sending requests#");
java.math.RoundingMode rm1 =java.math.RoundingMode.valueOf(7);
java.math.RoundingMode rm2 = remoteObj.doit( rm1 );
System.out.println("RM="+rm1.compareTo(rm2));
}
interface Service extends Remote {
java.math.RoundingMode doit(java.math.RoundingMode rm) throws RemoteException;
}
static class ServiceImpl extends PortableRemoteObject implements Service {
public ServiceImpl() throws RemoteException {
}
public java.math.RoundingMode doit(java.math.RoundingMode rm) {
System.out.println("received and returning # " + rm);
return rm;
}
}
}
- backported by
-
JDK-2210160 Regression : Enum exchanged as parameters using CORBA call results in Exception
- Resolved
-
JDK-2213250 Regression : Enum exchanged as parameters using CORBA call results in Exception
- Resolved
-
JDK-2210159 Regression : Enum exchanged as parameters using CORBA call results in Exception
- Closed
-
JDK-2211589 Regression : Enum exchanged as parameters using CORBA call results in Exception
- Closed
- relates to
-
JDK-6877056 SVUID calculated for java.lang.Enum is not 0L
- Closed