1 java.util.Vector agentArgs= null; 2 int numberOfObjects= 4; 3 if ( agent.length > 0 ) { // is array greater than one 4 agentArgs= new java.util.Vector(numberOfObjects); 5 try { // read from stream 6 java.io.ObjectInputStream input= 7 new java.io.ObjectInputStream( 8 new java.io.ByteArrayInputStream(agent)); 9 while( true ){ // read till end of stream 10 agentArgs.addElement(input.readObject()); 11 } 12 } 13 catch(java.io.EOFException eofe){ 14 //Ok, stream full read 15 } 16 catch(java.lang.Exception e){//Error during input.readOject() 17 e.printStackTrace(); 18 throw new CfMAF.ArgumentInvalid(); 19 } 20 }Die zu lesenden Objekte sollen zur Weiterverarbeitung in einen Vektor namens agentArgs gespeichert werden (Zeile 1). Eine Instanz der Klasse java.io.ObjectInputStream wird erzeugt, indem es mit dem Bytearray agent instanziiert wird (Zeile 6-8). Dieser Stream input wird solange gelesen (Zeile 10) und in den Vektor agentArgs eingetragen, bis das Ende des Streams erreicht ist. Dann wird die Ausnahmebehandlung java.io.EOFException eingeleitet und im zugehörigen catch-Block abgefangen (Zeile 13). Sollte ein unerwarteter Fehler beim Lesen dieses Parameters auftreten, so wird die Exception auf der Standardausgabe angezeigt (Zeile 17) und die Abarbeitung dieser Methode beendet, indem die Ausnahmebehandlung CfMAF.ArgumentInvalid() angestoßen wird.
Das Laden der Agenten-Klasse wird mit der Klasse java.rmi.server.RMIClassloader vorgenommen. Dazu muß aus dem übergebenen Package-Namen und dem Namen des Agenten die zu ladende Klasse zusammengesetzt werden. Mit Hilfe des Parameter code_base, welches eine URL in Stringformat sein muß, wird die Klasse und die zugehörige Tie-Klasse geladen. Nun werden der Reihe nach folgende Schritte durchgeführt: