-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
6u3
-
x86
-
windows_xp
OPERATING SYSTEM(S):
--------------------
Microsoft Windows XP [Version 5.1.2600]
FULL JDK VERSION(S):
-------------------
java6 version
-------------
java version "1.6.0_03-ea"
Java(TM) SE Runtime Environment (build 1.6.0_03-ea-b01)
Java HotSpot(TM) Client VM (build 1.6.0_03-ea-b01, mixed mode)
java5 version
-------------
java version "1.5.0_12"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
Java HotSpot(TM) Client VM (build 1.5.0_12-b04, mixed mode)
DESCRIPTION:
------------
PROBLEM DESCRIPTION
Problem:
For testing interoperibility between SDK 5.0 & SDK 6.0 javax.swing.TransferHandler(null) is sent from a client to the server using RMI-IIOP.This is resulting in MarshalException.
The serialVersionUID of javax.swing.TranserHandler is different for Java5 and Java6.
Using Java5 and running the command
serialver javax.swing.TransferHandler
gives the result:
-3647487763055806389L;
Using Java6 and running the command
serialver javax.swing.TransferHandler
gives a different result:
7915941022583212167L;
STEPS TO REPRODUCE
------------------
Install latest SDK 6.0 on Windows IA32
Set PATH variable to point to bin and jre\bin folders
1. Compile all the testcases below - javac *.java
2. rmic -iiop HelloImpl
3. Issue these commands
start- \jdk5\sdk\jre\bin\tnameserv -ORBInitialPort 9009
Wait for the tnameserv to start
start- \jdk5\sdk\jre\bin\java
-Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://127.0.0.1:9009 Server
Wait for the server to start
start- \jdk6\sdk\jre\bin\java
-Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://127.0.0.1:9009 Client
You can see the following Exception:
Exception in thread "main" java.rmi.MarshalException: CORBA MARSHAL 1398079699 M
aybe; 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.valuehandlerRead
Exception(ORBUtilSystemException.java:6500)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInput
Stream_1_0.java:1045)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStre
am.java:253)
at _HelloImpl_Tie._invoke(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
tchToServant(CorbaServerRequestDispatcherImpl.java:637)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
tch(CorbaServerRequestDispatcherImpl.java:189)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
Request(CorbaMessageMediatorImpl.java:1680)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
(CorbaMessageMediatorImpl.java:1540)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(C
orbaMessageMediatorImpl.java:922)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.call
back(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.dispatc
h(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.IOException: Mismatched serialization UIDs : Source (Rep. IDR
MI:javax.swing.TransferHandler:B259346E0B8AAACA:CD6185346879784B) = CD6185346879
784B whereas Target (Rep. ID RMI:javax.swing.TransferHandler:B259346E0B8AAACA:6D
DB126B6A03C887) = 6DDB126B6A03C887
at com.sun.corba.se.impl.util.RepositoryId.useFullValueDescription(Repos
itoryId.java:577)
at com.sun.corba.se.impl.io.ValueHandlerImpl.useFullValueDescription(Val
ueHandlerImpl.java:388)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputSt
ream.java:397)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHand
lerImpl.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(CDRInput
Stream_1_0.java:1034)
... 12 more
----------END server-side stack trace---------- vmcid: SUN minor code: 211 com
pleted: Maybe
at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(Util.ja
va:197)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:67)
at _Hello_Stub.sayHello(Unknown Source)
at Client.main(Client.java:12)
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.valuehandlerRead
Exception(ORBUtilSystemException.java:6500)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInput
Stream_1_0.java:1045)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStre
am.java:253)
at _HelloImpl_Tie._invoke(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
tchToServant(CorbaServerRequestDispatcherImpl.java:637)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
tch(CorbaServerRequestDispatcherImpl.java:189)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
Request(CorbaMessageMediatorImpl.java:1680)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
(CorbaMessageMediatorImpl.java:1540)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(C
orbaMessageMediatorImpl.java:922)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.call
back(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.dispatc
h(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.IOException: Mismatched serialization UIDs : Source (Rep. IDR
MI:javax.swing.TransferHandler:B259346E0B8AAACA:CD6185346879784B) = CD6185346879
784B whereas Target (Rep. ID RMI:javax.swing.TransferHandler:B259346E0B8AAACA:6D
DB126B6A03C887) = 6DDB126B6A03C887
at com.sun.corba.se.impl.util.RepositoryId.useFullValueDescription(Repos
itoryId.java:577)
at com.sun.corba.se.impl.io.ValueHandlerImpl.useFullValueDescription(Val
ueHandlerImpl.java:388)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputSt
ream.java:397)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHand
lerImpl.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(CDRInput
Stream_1_0.java:1034)
... 12 more
----------END server-side stack trace---------- vmcid: SUN minor code: 211 com
pleted: Maybe
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemEx
ception(MessageBase.java:902)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSys
temException(ReplyMessage_1_2.java:99)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExce
ptionReply(CorbaMessageMediatorImpl.java:572)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.proce
ssResponse(CorbaClientRequestDispatcherImpl.java:430)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marsh
alingComplete(CorbaClientRequestDispatcherImpl.java:326)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaCl
ientDelegateImpl.java:129)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
... 2 more
TEST CASES:
-----------
Client.java
-----------
import java.rmi.*;
import javax.rmi.*;
import javax.naming.*;
import java.rmi.server.*;
import java.io.*;
import java.util.*;
public class Client{
public static void main(String[] args) throws Exception{
Context ic = new InitialContext();
Object ref = ic.lookup("HELLO");
Hello hello = (Hello)PortableRemoteObject.narrow(ref, Hello.class);
hello.sayHello(new javax.swing.TransferHandler(null));
}
}
Hello.java
----------
import java.rmi.*;
public interface Hello extends Remote{
public javax.swing.TransferHandler sayHello(javax.swing.TransferHandler data) throws RemoteException;
}
HelloImpl.java
--------------
import java.rmi.*;
import javax.rmi.*;
import java.rmi.server.*;
import java.util.*;
import java.math.*;
public class HelloImpl extends PortableRemoteObject implements Hello{
public HelloImpl() throws RemoteException{
super();
}
public javax.swing.TransferHandler sayHello(javax.swing.TransferHandler data) throws RemoteException{
return data;
}
}
Server.java
-----------
import java.rmi.*;
import javax.rmi.*;
import javax.naming.*;
import java.rmi.server.*;
public class Server{
public static void main(String[] args ) throws Exception{
Hello hello = new HelloImpl();
Context ic = new InitialContext();
ic.rebind("HELLO",hello);
System.out.println("SERVER STARTED");
}
}
--------------------
Microsoft Windows XP [Version 5.1.2600]
FULL JDK VERSION(S):
-------------------
java6 version
-------------
java version "1.6.0_03-ea"
Java(TM) SE Runtime Environment (build 1.6.0_03-ea-b01)
Java HotSpot(TM) Client VM (build 1.6.0_03-ea-b01, mixed mode)
java5 version
-------------
java version "1.5.0_12"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
Java HotSpot(TM) Client VM (build 1.5.0_12-b04, mixed mode)
DESCRIPTION:
------------
PROBLEM DESCRIPTION
Problem:
For testing interoperibility between SDK 5.0 & SDK 6.0 javax.swing.TransferHandler(null) is sent from a client to the server using RMI-IIOP.This is resulting in MarshalException.
The serialVersionUID of javax.swing.TranserHandler is different for Java5 and Java6.
Using Java5 and running the command
serialver javax.swing.TransferHandler
gives the result:
-3647487763055806389L;
Using Java6 and running the command
serialver javax.swing.TransferHandler
gives a different result:
7915941022583212167L;
STEPS TO REPRODUCE
------------------
Install latest SDK 6.0 on Windows IA32
Set PATH variable to point to bin and jre\bin folders
1. Compile all the testcases below - javac *.java
2. rmic -iiop HelloImpl
3. Issue these commands
start- \jdk5\sdk\jre\bin\tnameserv -ORBInitialPort 9009
Wait for the tnameserv to start
start- \jdk5\sdk\jre\bin\java
-Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://127.0.0.1:9009 Server
Wait for the server to start
start- \jdk6\sdk\jre\bin\java
-Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://127.0.0.1:9009 Client
You can see the following Exception:
Exception in thread "main" java.rmi.MarshalException: CORBA MARSHAL 1398079699 M
aybe; 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.valuehandlerRead
Exception(ORBUtilSystemException.java:6500)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInput
Stream_1_0.java:1045)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStre
am.java:253)
at _HelloImpl_Tie._invoke(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
tchToServant(CorbaServerRequestDispatcherImpl.java:637)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
tch(CorbaServerRequestDispatcherImpl.java:189)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
Request(CorbaMessageMediatorImpl.java:1680)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
(CorbaMessageMediatorImpl.java:1540)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(C
orbaMessageMediatorImpl.java:922)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.call
back(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.dispatc
h(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.IOException: Mismatched serialization UIDs : Source (Rep. IDR
MI:javax.swing.TransferHandler:B259346E0B8AAACA:CD6185346879784B) = CD6185346879
784B whereas Target (Rep. ID RMI:javax.swing.TransferHandler:B259346E0B8AAACA:6D
DB126B6A03C887) = 6DDB126B6A03C887
at com.sun.corba.se.impl.util.RepositoryId.useFullValueDescription(Repos
itoryId.java:577)
at com.sun.corba.se.impl.io.ValueHandlerImpl.useFullValueDescription(Val
ueHandlerImpl.java:388)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputSt
ream.java:397)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHand
lerImpl.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(CDRInput
Stream_1_0.java:1034)
... 12 more
----------END server-side stack trace---------- vmcid: SUN minor code: 211 com
pleted: Maybe
at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(Util.ja
va:197)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:67)
at _Hello_Stub.sayHello(Unknown Source)
at Client.main(Client.java:12)
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.valuehandlerRead
Exception(ORBUtilSystemException.java:6500)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInput
Stream_1_0.java:1045)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStre
am.java:253)
at _HelloImpl_Tie._invoke(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
tchToServant(CorbaServerRequestDispatcherImpl.java:637)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispa
tch(CorbaServerRequestDispatcherImpl.java:189)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
Request(CorbaMessageMediatorImpl.java:1680)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
(CorbaMessageMediatorImpl.java:1540)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(C
orbaMessageMediatorImpl.java:922)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.call
back(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.dispatc
h(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.IOException: Mismatched serialization UIDs : Source (Rep. IDR
MI:javax.swing.TransferHandler:B259346E0B8AAACA:CD6185346879784B) = CD6185346879
784B whereas Target (Rep. ID RMI:javax.swing.TransferHandler:B259346E0B8AAACA:6D
DB126B6A03C887) = 6DDB126B6A03C887
at com.sun.corba.se.impl.util.RepositoryId.useFullValueDescription(Repos
itoryId.java:577)
at com.sun.corba.se.impl.io.ValueHandlerImpl.useFullValueDescription(Val
ueHandlerImpl.java:388)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputSt
ream.java:397)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHand
lerImpl.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(CDRInput
Stream_1_0.java:1034)
... 12 more
----------END server-side stack trace---------- vmcid: SUN minor code: 211 com
pleted: Maybe
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemEx
ception(MessageBase.java:902)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSys
temException(ReplyMessage_1_2.java:99)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExce
ptionReply(CorbaMessageMediatorImpl.java:572)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.proce
ssResponse(CorbaClientRequestDispatcherImpl.java:430)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marsh
alingComplete(CorbaClientRequestDispatcherImpl.java:326)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaCl
ientDelegateImpl.java:129)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
... 2 more
TEST CASES:
-----------
Client.java
-----------
import java.rmi.*;
import javax.rmi.*;
import javax.naming.*;
import java.rmi.server.*;
import java.io.*;
import java.util.*;
public class Client{
public static void main(String[] args) throws Exception{
Context ic = new InitialContext();
Object ref = ic.lookup("HELLO");
Hello hello = (Hello)PortableRemoteObject.narrow(ref, Hello.class);
hello.sayHello(new javax.swing.TransferHandler(null));
}
}
Hello.java
----------
import java.rmi.*;
public interface Hello extends Remote{
public javax.swing.TransferHandler sayHello(javax.swing.TransferHandler data) throws RemoteException;
}
HelloImpl.java
--------------
import java.rmi.*;
import javax.rmi.*;
import java.rmi.server.*;
import java.util.*;
import java.math.*;
public class HelloImpl extends PortableRemoteObject implements Hello{
public HelloImpl() throws RemoteException{
super();
}
public javax.swing.TransferHandler sayHello(javax.swing.TransferHandler data) throws RemoteException{
return data;
}
}
Server.java
-----------
import java.rmi.*;
import javax.rmi.*;
import javax.naming.*;
import java.rmi.server.*;
public class Server{
public static void main(String[] args ) throws Exception{
Hello hello = new HelloImpl();
Context ic = new InitialContext();
ic.rebind("HELLO",hello);
System.out.println("SERVER STARTED");
}
}