Index
Contents
Remote exceptions
- The GNU Classpath 20 bit Vendor Minor Code Id is 0x47430 ("GC").
- The Id provides namespace for 4096 possible exceptions. As this Id is only very recently received, some system exceptions still have VMCID 0x00000 ("experimental"). The exception minor code table is currently in preparation.
The UNKNOWN exception is accompanied by UnknownExceptionInfo service context, where the reason is written as a java Throwable in the form of the Value type.
Exception minor codes
The MARSHAL minor codes
Hex |
Dec |
Minor |
Name |
Case |
47430001 |
1195573249 |
1 |
Giop |
The message being received is not a GIOP message. It does not start from the expected magic sequence byte[] { 'G', 'I', 'O', 'P' }. |
47430002 |
1195573250 |
2 |
Header |
The unexpected IOException while reading or writing the GIOP message header or the subsequent request or response header |
47430003 |
1195573251 |
3 |
EOF |
The data stream ended before reading all expected values from it. This usually means that the CORBA message is corrupted, but may also indicate that the server expects the remote method being invoked to have more or different parameters |
47430005 |
1195573253 |
5 |
CDR |
The unexpected IOException while reading or writing the data via Commond Data Representation stream |
47430006 |
1195573254 |
6 |
Value |
The unexpected IOException while reading or writing the Value type. |
47430007 |
1195573255 |
7 |
Forwarding |
The unexpected IOException while handling request forwarding. |
47430008 |
1195573256 |
8 |
Encapsulation |
The unexpected IOException while handling data encapsulation, tagged components, tagged profiles, etc. |
47430009 |
1195573257 |
9 |
Any |
The unexpected IOException while inserting or extracting data to/from the Any, DynAny or DynamicAny. |
4743000a |
1195573258 |
10 |
The unexpected UserException in the context where it cannot be handled as such and must be converted to the SystemException. |
|
4743000b |
1195573259 |
11 |
Inappropriate |
While the operation could formally be applied to the target, the OMG standard states that it is actually not applicable. For example, some CORBA objects like POA are always local and should not be passed to or returned from the remote side. |
4743000c |
1195573260 |
12 |
Negative |
When reading data, it was discovered that size of the data structure like string, sequence or character is written as the negative number. |
4743000e |
1195573262 |
14 |
Graph |
Reference to non-existing node in the data grapth while reading the value types. |
4743000f |
1195573263 |
15 |
Boxed |
Unexpected exception was thrown from the IDL type helper while handling the object of this type as a boxed value. |
47430010 |
1195573264 |
16 |
Instantiation |
Unable to instantiate an value type object while reading it from the stream. |
47430011 |
1195573265 |
17 |
The header tag of the value type being read from the CDR stream contains an unexpected value outside 0x7fffff00 .. 0x7fffffff and also not null and not an indirection. |
|
47430012 |
1195573266 |
18 |
The header tag flags of the value type being read from the CDR stream make the invalid combination (for instance, 0x7fffff04). |
|
47430013 |
1195573267 |
19 |
The value type class, written on the wire, is not compatible with the expected class, passed as a parameter to the InputStream.read_value. |
|
47430014 |
1195573268 |
20 |
Offset |
Positive or otherwise invalid indirection offset when reading the data graph of the value type. |
47430015 |
1195573269 |
21 |
Chunks |
Errors while reading the chunked value type. |
47430016 |
1195573270 |
22 |
No means are provided to read or write this value type (not Streamable, not CustomMarshal, not Serializable, no factory, no helper. |
|
47430017 |
1195573271 |
23 |
Factory |
The value factory, required for the operation being invoked, is not registered with this ORB. |
47430018 |
1195573272 |
24 |
Unsupported object addressing method in GIOP request header. |
|
47430019 |
1195573273 |
25 |
IOR |
Invalid object reference (IOR). |
4743001a |
1195573274 |
26 |
Problems with converting between stubs, ties, interfaces and implementations. |
|
4743001b |
1195573275 |
27 |
Problems with reading or writing the fields of the value type object |
|
4743001c |
1195573276 |
28 |
The instance of the value type is not serializable |
The BAD_OPERATION minor codes
Hex |
Dec |
Minor |
Name |
Case |
47430000 |
1195573248 |
0 |
Method |
The remote side requested to invoke the method that is not available on that target (client and server probably disagree in the object definition). This code is set when the problem arised in the Classpath core; the idlj and rmic may generate the user code that sets 0x0 or other value. |
47430009 |
1195573257 |
9 |
Any |
Attempt to extract from the Any value of the different type that was stored into that Any. The same code is used to indicate this error for DynamicAny |
4743000a |
1195573258 |
10 |
Activation |
Failed to activate the inactive object due any reason. |
4743000b |
1195573259 |
11 |
Policy |
The policies, applying to ORB or POA prevent the requested operation. |
4743000c |
1195573260 |
12 |
Socket |
Socket related errors like failure to open socket on the expected port |
4743000e |
1195573262 |
14 |
Enumeration |
The passed value for enumeration is outside the valid range for that enumeration. |
4743000f |
1195573263 |
15 |
The passed policy code is outside the valid range of the possible policies for the given policy type. |
The NO_RESOURCES minor codes
Hex |
Dec |
Minor |
Name |
Case |
47430014 |
1195573268 |
20 |
Ports |
No more free ports available for the new objects. The port control, if turned on, prevents malicios client from knocking the server out by suddenly requiring to allocate a very large number of objects. |
47430015 |
1195573269 |
21 |
Threads |
Too many parallel calls (too many parallel threads). The thread control, if turned on, prevents malicios client from knocking the server out by suddenly submitting a very large number of requests. |
The DATA_CONVERSION minor codes
Hex |
Dec |
Minor |
Name |
Case |
47430016 |
1195573270 |
22 |
Missing_IOR |
The stringified object reference points redirectos to non existing or not accessible resource |
Specification documents
The CORBA core is implemented using the "Common Object Request Broker Architecture: Core Specification" Version 3.0.3 (formal/04-03-12).
The RMI over IIOP is implemented using the "Java to IDL Language Mapping Specification" Version 1.3 (formal/03-09-04.pdf).
Supported URL schemes
All defined in CORBA 3.0.3,formal/04-03-12 (IOR:, corbaloc:, corbaname:, file://, ftp:// and http://). The maximal number of redirections for file://, ftp:// and http:// is limited to 10 by default.
Charsets
- The native wide character charset is 0x10109 (UTF-16).
- The native narrow character char set is 0x10001 (ISO-8859-1).
- Classpath supports 0x30010 (EUC-JP), 0x4000a (EUC-KR), 0x10001 (ISO-8859-1), 0x10002 (ISO-8859-2), 0x10003 (ISO-8859-3), 0x10004 (ISO-8859-4), 0x10005 (ISO-8859-5), 0x10006 (ISO-8859-6), 0x10007 (ISO-8859-7), 0x10008 (ISO-8859-8), 0x10009 (ISO-8859-9), 0x10020 (US-ASCII), 0x10109 (UTF-16) and 0x5010001 (UTF-8).
- New charsets are automatically supported as soon as this support is implemented for Classpath in general.
Protocol details
- The recommended GIOP version is GIOP 1.2.
- The recommended class serialization format version is 1.
- The chunking of the value types is not required on the input. Under conditions of the typical runtime environment the implementation is normally never chunks values on the output.
- The messages being received and IOR's being parsed can be encoded as in Big, as in Little endian. Both encodings are accepted roughly at the same speed.
Socket usage rules
Ports
- Port settings are configureable. This section explains default behavior.
- POA's with the single thread policy take a single port for all they objects.
- POA's with the multiple thread policy take a single port per object.
- The first port to take is 1126. The subsequent ports are taken moving up from this value.
- If this strategy fails 20 times in a row, the ORB tries to allocate the random port in the interval 1024..4024, making up till 64 attempts.
- After disconnecting objects or destroying POA's, ORB reuses the freed ports first.
- If no configuration data about the naming service are provided, the ORB tries to find it at port 900 on the local host.
Time outs
- The time outs, described here, are configureable via properties. This section gives the default values.
- As in some cases reopening the socket may become is a costly operation, Classpath ORB tries reuses the opened socket. If once opened, the socket is kept alive for 7 seconds and can be reused for the subsequent request from the same client to the same server. For longer durations, the new socked is reopened.
- If the corresponding part has transmitted the message header, it should start sending the message body in 20 seconds.
- Any pause while sending the message body should not last longer than 60 seconds.
Index