- Object passing copies non-private variables only
-
When an instance is transfered, private variables are copied. This
is due to security reason. This limitation will be cleared when Java VM
has a builtin serializer (Yes, it will).
- Returning value in argument is not supported.
-
All argument passing is in 'out' direction. Returning value in an argument
is not supported. For example,
class foo {
void read(byte buf) {
buf[0] = 10;
}
}
When you call foo remotely, you will never get 10 in buf[0].
- Variables in remote objects are not accessible remotely.
-
If a remote object has a variable foo, a client cannot access to foo
directly. Write an accessor method of foo.
- Extend clause of interface is not supported yet.
-
Extend clause of interface definition is ignored when the interface
is compiled by the horbc compiler.
- Null constructor
-
You have to supply a null constructor (e.g., Foo(){}), if the class
has other constructors.
- Applets cannot connect to a server over a firewall.
- Standalone clients can connect to a server over a firewall through
SOCKS server. Set socksProxyHost and socksProxyPort of system property
(of Java, not HORB's). I don't know how to set the property.
- HORB is sometimes slow.
-
That's because Java is an interpreter. Sun has announced they will
supply a native code converter. Someone said it would run Java programs
faster than C++@programs.
If you need speed, don't use ACL, use -O option of horbc, don't use
-v option of horb, disable loop check, disable hostname lookup, don't use
cast when you pass objects, don't use interface to pass objects.
- Foffile becomes unusable when the class changes.
-
When you change organization of variables of a class, a foffile saved
by an older class cannot be loaded in the new class.
- Object remains after connection close.
-
I think JDK's socket close has a bug. Make and call a method
like terminate() that releases connection from the server
side.
- horbc says "Foo_Proxy not found"
-
To resolve forward reference, use interface and generate proxy/skeleton
classes from the interface.