public void setFields(
     DaqUnitChannelDataFields fields, String[] fieldNames, java.util.Map<String, String> __ctx)
     throws IceInternal.LocalExceptionWrapper {
   IceInternal.Outgoing __og =
       __handler.getOutgoing("setFields", Ice.OperationMode.Idempotent, __ctx);
   try {
     try {
       IceInternal.BasicStream __os = __og.os();
       fields.__write(__os);
       FieldNameListHelper.write(__os, fieldNames);
     } catch (Ice.LocalException __ex) {
       __og.abort(__ex);
     }
     boolean __ok = __og.invoke();
     if (!__og.is().isEmpty()) {
       try {
         if (!__ok) {
           try {
             __og.throwUserException();
           } catch (Ice.UserException __ex) {
             throw new Ice.UnknownUserException(__ex.ice_name());
           }
         }
         __og.is().skipEmptyEncaps();
       } catch (Ice.LocalException __ex) {
         throw new IceInternal.LocalExceptionWrapper(__ex, false);
       }
     }
   } finally {
     __handler.reclaimOutgoing(__og);
   }
 }