=== modified file 'rules/include/common-progress.rules'
--- old/rules/include/common-progress.rules	2023-03-27 09:55:57 +0000
+++ new/rules/include/common-progress.rules	2023-05-03 14:35:40 +0000
@@ -493,6 +493,7 @@
 **                           not produce a buffer reference.
 ** 240 HC  20230223          Implemented POST-MESSAGE and OPEN-HTML-STRING methods for HTML-
 **                           BROWSER widget.
+**     ME  20230503          Support 'poly' method return type (mapped to Object).
 */
  -->
  
@@ -6710,6 +6711,9 @@
          <rule>ttype == prog.oo_meth_void
             <action>cls = "void"</action>
          </rule>
+         <rule>ttype == prog.oo_meth_poly
+            <action>cls = "Object"</action>
+         </rule>
          <rule>cls == "" 
             <action>
                errmsg = sprintf("Unrecognized return type %s",

=== modified file 'src/com/goldencode/p2j/oo/core/LegacyString.java'
--- old/src/com/goldencode/p2j/oo/core/LegacyString.java	2022-10-05 08:54:36 +0000
+++ new/src/com/goldencode/p2j/oo/core/LegacyString.java	2023-05-03 14:12:04 +0000
@@ -19,6 +19,7 @@
 **     ME  20220402 Use internal's longchar hashCode instead of that of the actual string (case sensitive, trim).
 **     CA  20220923 Variable definitions (including associated with parameters) must be done always outside of 
 **                  the BlockManager API
+**     ME  20230503 Fix setter annotation for encoding, join method name update as per conversion (#6410).
 */
 
 /*
@@ -137,7 +138,7 @@
       }));
    }
 
-   @LegacySignature(type = Type.SETTER, name = "Logger", parameters = {
+   @LegacySignature(type = Type.SETTER, name = "Encoding", parameters = {
             @LegacyParameter(name = "pcEncoding", type = "CHARACTER", mode = "INPUT") })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL | RT_LVL_FULL)
    @Override
@@ -482,7 +483,7 @@
             @LegacyParameter(name = "p1", type = "OBJECT", extent = -1, qualified = "openedge.core.string", mode = "INPUT"),
             @LegacyParameter(name = "p2", type = "CHARACTER", mode = "INPUT") })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL | RT_LVL_STUB)
-   public static object<? extends com.goldencode.p2j.oo.core.LegacyString> join_1(
+   public static object<? extends com.goldencode.p2j.oo.core.LegacyString> join(
             final object<? extends com.goldencode.p2j.oo.core.LegacyString>[] _p1,
             final character _p2)
    {

=== modified file 'src/com/goldencode/p2j/oo/core/system/ApplicationError.java'
--- old/src/com/goldencode/p2j/oo/core/system/ApplicationError.java	2022-05-13 06:58:53 +0000
+++ new/src/com/goldencode/p2j/oo/core/system/ApplicationError.java	2023-05-03 14:08:50 +0000
@@ -16,6 +16,7 @@
 **     RFB 20221223 Minor javadoc repair
 **     CA  20220513 Renamed _BaseObject_.clone() to legacyClone(), as it can be overriden by sub-classes and
 **                  the access mode may collide with the Java's Object.clone().
+**     ME  20230503 Use the getter for security (made private #6410).
 */
 
 /*
@@ -245,7 +246,7 @@
       return function(ApplicationError.class, this, "Clone", object.class, new Block((Body) () ->
       {
          err.assign(ObjectOps.newInstance(getClass(), "I", innerError));
-         err.ref().setSeverity(severity);
+         err.ref().setSeverity(getSeverity());
          err.ref().setReturnValue(getReturnValue());
          
          for (int i = 0; i < getNumMessages().intValue(); i++)

=== modified file 'src/com/goldencode/p2j/oo/core/system/ArgumentError.java'
--- old/src/com/goldencode/p2j/oo/core/system/ArgumentError.java	2023-05-02 06:55:42 +0000
+++ new/src/com/goldencode/p2j/oo/core/system/ArgumentError.java	2023-05-02 10:43:41 +0000
@@ -6,6 +6,7 @@
  **
 ** -#- -I- --Date-- ---------------------------------------Description----------------------------------------
 ** 001 CA  20230430 First version.
+**     ME  20230502 Fix ctors as per 4GL skeleton.
 */
 
 /*
@@ -87,28 +88,43 @@
       }));
    }
 
-   @LegacySignature(type = Type.CONSTRUCTOR)
+   @LegacySignature(type = Type.CONSTRUCTOR, parameters = 
+   {
+      @LegacyParameter(name = "pcArgs1", type = "CHARACTER", mode = "INPUT"),
+      @LegacyParameter(name = "pcArgs2", type = "CHARACTER", mode = "INPUT")
+   })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL | RT_LVL_FULL)
-   public void __core_system_ArgumentError_constructor__()
+   public void __convert_openedge_core_system_argumentError_constructor__(final character _pcArgs1, final character _pcArgs2)
    {
-      internalProcedure(ApplicationError.class, this, "__core_system_ArgumentError_constructor__", 
-      new Block((Body) () -> 
+      character pcArgs1 = TypeFactory.initInput(_pcArgs1);
+      character pcArgs2 = TypeFactory.initInput(_pcArgs2);
+      
+      internalProcedure(ArgumentError.class, this, "__convert_openedge_core_system_argumentError_constructor__", new Block((Body) () -> 
       {
          __core_system_ApplicationError_constructor__();
+         addMessage(pcArgs1, new integer(1));
+         addMessage(pcArgs2, new integer(2));
       }));
    }
 
-   @LegacySignature(type = Type.CONSTRUCTOR, parameters = {
-            @LegacyParameter(name = "p1", type = "OBJECT", qualified = "progress.lang.error", mode = "INPUT") })
+   @LegacySignature(type = Type.CONSTRUCTOR, parameters = 
+   {
+      @LegacyParameter(name = "poInnerError", type = "OBJECT", qualified = "progress.lang.error", mode = "INPUT"),
+      @LegacyParameter(name = "pcArgs1", type = "CHARACTER", mode = "INPUT"),
+      @LegacyParameter(name = "pcArgs2", type = "CHARACTER", mode = "INPUT")
+   })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL | RT_LVL_FULL)
-   public void __core_system_ArgumentError_constructor__(
-            final object<? extends com.goldencode.p2j.oo.lang.LegacyError> _p1)
+   public void __convert_openedge_core_system_argumentError_constructor__(final object<? extends com.goldencode.p2j.oo.lang.LegacyError> _poInnerError, final character _pcArgs1, final character _pcArgs2)
    {
-      object<? extends com.goldencode.p2j.oo.lang.LegacyError> p1 = TypeFactory.initInput(_p1);
-      internalProcedure(ApplicationError.class, this, "__core_system_ArgumentError_constructor__", 
-      new Block((Body) () -> 
+      object<? extends com.goldencode.p2j.oo.lang.LegacyError> poInnerError = TypeFactory.initInput(_poInnerError);
+      character pcArgs1 = TypeFactory.initInput(_pcArgs1);
+      character pcArgs2 = TypeFactory.initInput(_pcArgs2);
+      
+      internalProcedure(ArgumentError.class, this, "__convert_openedge_core_system_argumentError_constructor__", new Block((Body) () -> 
       {
-         __core_system_ApplicationError_constructor__(p1);
+         __core_system_ApplicationError_constructor__(poInnerError);
+         addMessage(pcArgs1, new integer(1));
+         addMessage(pcArgs2, new integer(2));
       }));
    }
 }

=== modified file 'src/com/goldencode/p2j/oo/json/objectmodel/JsonArray.java'
--- old/src/com/goldencode/p2j/oo/json/objectmodel/JsonArray.java	2023-02-15 10:20:50 +0000
+++ new/src/com/goldencode/p2j/oo/json/objectmodel/JsonArray.java	2023-05-03 14:15:45 +0000
@@ -26,6 +26,7 @@
 **     SVL 20230108 Improved performance by replacing some "for-each" loops with indexed "for" loops.
 **     CA  20230116 Avoid using handle.unwrap, handle.getReference or other BDT usage from within FWD runtime.
 ** 010 CA  20230215 Sanitized the LegacySignature parameters, so their type match their Java method definition.
+**     ME  20230503 Reconvert skeleton and update ctor/method signatures (#6410).
 */
 
 /*
@@ -430,23 +431,20 @@
       }));
    }
    
-/**
-   TODO: overloaded c'tors!
    @LegacySignature(type = Type.CONSTRUCTOR, parameters = 
    {
       @LegacyParameter(name = "val", type = "OBJECT", extent = -1, qualified = "progress.json.objectmodel.jsonarray", mode = "INPUT")
    })
-   public void __json_objectmodel_JsonArray_constructor__(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonArray>[] _val)
+   public void __json_objectmodel_JsonArray_1_constructor__(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonArray>[] _val)
    {
       object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonArray>[] val = TypeFactory.initInput(_val);
       
-      internalProcedure(this, "__json_objectmodel_JsonArray_constructor__", new Block((Body) () -> 
+      internalProcedure(this, "__json_objectmodel_JsonArray_1_constructor__", new Block((Body) () -> 
       {
          __json_objectmodel_JsonConstruct_constructor__();
          addElementsCtorImpl(val);
       }));
    }
-*/
 
    /**
     * Destructor for this class.  Cleanup/delete any created resources.
@@ -485,12 +483,12 @@
 
    @LegacySignature(type = Type.SETTER, name = "Length", parameters = 
    {
-      @LegacyParameter(name = "var", type = "INT64", mode = "INPUT")
+      @LegacyParameter(name = "var", type = "INTEGER", mode = "INPUT")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
-   public void setLength(final int64 _var)
+   public void setLength(final integer _var)
    {
-      int64 var = TypeFactory.initInput(_var);
+      integer var = TypeFactory.initInput(_var);
       
       internalProcedure(this, "Length", new Block((Body) () -> 
       {
@@ -750,18 +748,6 @@
 
    @LegacySignature(returns = "INTEGER", type = Type.METHOD, name = "Add", parameters = 
    {
-      @LegacyParameter(name = "val", type = "CLOB", mode = "INPUT")
-   })
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
-   public integer add(clob _val)
-   {
-      clob val = TypeFactory.initInput(_val);
-      
-      return function(this, "Add", integer.class, new Block((Body) () -> addElementImpl(val)));
-   }
-
-   @LegacySignature(returns = "INTEGER", type = Type.METHOD, name = "Add", parameters = 
-   {
       @LegacyParameter(name = "val", type = "BLOB", mode = "INPUT")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
@@ -777,7 +763,7 @@
       @LegacyParameter(name = "val", type = "OBJECT", qualified = "progress.json.objectmodel.jsonarray", mode = "INPUT")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
-   public integer add_1(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonArray> _val)
+   public integer add(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonArray> _val)
    {
       object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonArray> val = TypeFactory.initInput(_val);
       
@@ -792,7 +778,7 @@
       @LegacyParameter(name = "val", type = "OBJECT", qualified = "progress.json.objectmodel.jsonobject", mode = "INPUT")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
-   public integer add_2(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonObject> _val)
+   public integer add_1(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonObject> _val)
    {
       object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonObject> val = TypeFactory.initInput(_val);
       
@@ -1032,7 +1018,7 @@
       @LegacyParameter(name = "val", type = "OBJECT", extent = -1, qualified = "progress.json.objectmodel.jsonarray", mode = "INPUT")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
-   public integer add_3(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonArray>[] _val)
+   public integer add(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonArray>[] _val)
    {
       object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonArray>[] val = TypeFactory.initInput(_val);
       
@@ -1047,7 +1033,7 @@
       @LegacyParameter(name = "val", type = "OBJECT", extent = -1, qualified = "progress.json.objectmodel.jsonobject", mode = "INPUT")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
-   public integer add_4(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonObject>[] _val)
+   public integer add_1(final object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonObject>[] _val)
    {
       object<? extends com.goldencode.p2j.oo.json.objectmodel.JsonObject>[] val = TypeFactory.initInput(_val);
       
@@ -1107,6 +1093,23 @@
          addElementImpl(idx, val);
       }));
    }
+   
+   @LegacySignature(returns = "INTEGER", type = Type.METHOD, name = "Add", parameters = 
+   {
+      @LegacyParameter(name = "idx", type = "INTEGER", mode = "INPUT"),
+      @LegacyParameter(name = "val", type = "COMHANDLE", mode = "INPUT", extent = -1)
+   })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
+   public integer add(final integer _idx, final comhandle[] _val)
+   {
+      integer idx = TypeFactory.initInput(_idx);
+      comhandle[] val = TypeFactory.initInput(_val);
+      
+      return function(this, "Add", integer.class, new Block((Body) () ->
+      {
+         addElementsImpl(idx, val);
+      }));
+   }
 
    @LegacySignature(returns = "INTEGER", type = Type.METHOD, name = "Add", parameters = 
    {

=== modified file 'src/com/goldencode/p2j/oo/lang/LegacyClass.java'
--- old/src/com/goldencode/p2j/oo/lang/LegacyClass.java	2022-08-28 08:11:25 +0000
+++ new/src/com/goldencode/p2j/oo/lang/LegacyClass.java	2023-05-03 14:19:47 +0000
@@ -30,6 +30,7 @@
 **                  parameter.
 **     CA  20220526 Added default legacy constructor method.
 **     CA  20220828 Implemented 'getInterfaces()' method.
+**     ME  20230503 Reconvert skeleton and update method signatures, invoke returns Object (extent) (#6410).
 */
 
 /*
@@ -183,17 +184,17 @@
     * @param    propName
     *           The property name.
     * @param    idx
-    *           The index.
+    *           The index (any-value only for .NET indexed objects).
     * 
     * @return   See above.
     */
    @LegacySignature(type = Type.METHOD, name = "GetPropertyValue", returns = "BDT", parameters = 
    {
       @LegacyParameter(name = "propName", type = "CHARACTER", mode = "INPUT"),
-      @LegacyParameter(name = "idx", type = "BDT", mode = "INPUT")
+      @LegacyParameter(name = "idx", type = "INTEGER", mode = "INPUT")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_PARTIAL|RT_LVL_STUB)
-   public Object getPropertyValue(character propName, Object idx)
+   public Object getPropertyValue(character propName, integer idx)
    {
       // TODO:
       return new unknown();
@@ -230,7 +231,7 @@
     * @param    propName
     *           The property name.
     * @param    idx
-    *           The index.
+    *           The index (any-value only for .NET indexed objects).
     * 
     * @return   See above.
     */
@@ -238,12 +239,12 @@
    {
       @LegacyParameter(name = "instance", type = "OBJECT", qualified = "Progress.Lang.Object", mode = "INPUT"),
       @LegacyParameter(name = "propName", type = "CHARACTER", mode = "INPUT"),
-      @LegacyParameter(name = "idx", type = "BDT", mode = "INPUT")
+      @LegacyParameter(name = "idx", type = "INTEGER", mode = "INPUT")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_PARTIAL|RT_LVL_STUB)
    public Object getPropertyValue(object<? extends _BaseObject_> instance, 
                                   character propName, 
-                                  Object idx)
+                                  integer idx)
    {
       // TODO:
       return new unknown();
@@ -370,7 +371,7 @@
     *           When called for a class that is not a subclass of {@code LegacyEnum} or {@code FlagsEnum}.
     */
    @LegacySignature(returns = "CHARACTER", type = Type.METHOD, name = "GetEnumValues")
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public character getEnumValues()
    {
       if (!isValidEnum())
@@ -400,7 +401,7 @@
    {
       @LegacyParameter(name = "name", type = "CHARACTER", mode = "INPUT")
    })
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public int64 getEnumValue(character name)
    {
       if (!isValidEnum())
@@ -430,7 +431,7 @@
    {
       @LegacyParameter(name = "name", type = "CHARACTER", mode = "INPUT")
    })
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public int64 getEnumValue(String name)
    {
       return getEnumValue(new character(name));
@@ -458,7 +459,7 @@
    {
       @LegacyParameter(name = "value", type = "INT64", mode = "INPUT")
    })
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public character getEnumName(int64 value)
    {
       if (!isValidEnum())
@@ -489,9 +490,9 @@
     */
    @LegacySignature(returns = "CHARACTER", type = Type.METHOD, name = "GetEnumName", parameters = 
    {
-      @LegacyParameter(name = "value", type = "INTEGER", mode = "INPUT")
+      @LegacyParameter(name = "value", type = "INT64", mode = "INPUT")
    })
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public character getEnumName(long value)
    {
       return getEnumName(new int64(value));
@@ -770,7 +771,7 @@
       @LegacyParameter(name = "method", type = "CHARACTER", mode = "INPUT")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
-   public BaseDataType invoke(character method)
+   public Object invoke(character method)
    {
       return ObjectOps.invoke(typeName, method);
    }
@@ -843,14 +844,14 @@
       @LegacyParameter(name = "parms",  type = "OBJECT", mode = "INPUT", qualified = "Progress.Lang.ParameterList")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_BASIC)
-   public BaseDataType invoke(character method, object<? extends ParameterList> parms)
+   public Object invoke(character method, object<? extends ParameterList> parms)
    {
       ParameterList opl = parms.ref();
       // TODO: validate params?
       String modes = opl.getModes();
       Object[] args = opl.getArgs();
       
-      BaseDataType[] retVal = new BaseDataType[1];
+      Object[] retVal = new Object[1];
       Runnable task = () -> retVal[0] = ObjectOps.invoke(typeName, method, modes, args);
       
       invokeImpl(opl, modes, args, task);
@@ -874,7 +875,7 @@
       @LegacyParameter(name = "method", type = "CHARACTER", mode = "INPUT"),
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
-   public BaseDataType invoke(object<? extends _BaseObject_> ref, character method)
+   public Object invoke(object<? extends _BaseObject_> ref, character method)
    {
       return ObjectOps.invoke(ref, method);
    }
@@ -898,7 +899,7 @@
       @LegacyParameter(name = "parms",  type = "OBJECT"   , mode = "INPUT", qualified = "Progress.Lang.ParameterList")
    })
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_BASIC)
-   public BaseDataType invoke(object<? extends _BaseObject_>    ref, 
+   public Object invoke(object<? extends _BaseObject_>    ref, 
                         character                       method, 
                         object<? extends ParameterList> parms)
    {
@@ -907,7 +908,7 @@
       String modes = opl.getModes();
       Object[] args = opl.getArgs();
       
-      BaseDataType[] retVal = new BaseDataType[1];
+      Object[] retVal = new Object[1];
       Runnable task = () -> retVal[0] = ObjectOps.invoke(ref, method, modes, args);
       
       invokeImpl(opl, modes, args, task);
@@ -1088,6 +1089,7 @@
    {
       @LegacyParameter(name = "parms", type = "OBJECT", qualified = "progress.lang.parameterlist", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends LegacyConstructor> getConstructor(final object<? extends com.goldencode.p2j.oo.lang.ParameterList> _parms)
    {
       object<? extends com.goldencode.p2j.oo.lang.ParameterList> parms = TypeFactory.initInput(_parms);
@@ -1100,6 +1102,7 @@
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT"),
       @LegacyParameter(name = "parms", type = "OBJECT", qualified = "progress.lang.parameterlist", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends LegacyConstructor> getConstructor(final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags, final object<? extends com.goldencode.p2j.oo.lang.ParameterList> _parms)
    {
       object<? extends com.goldencode.p2j.oo.reflect.Flags> flags = TypeFactory.initInput(_flags);
@@ -1109,6 +1112,7 @@
    }
 
    @LegacySignature(returns = "OBJECT", type = Type.METHOD, name = "GetConstructors", extent = -1, qualified = "progress.reflect.constructor")
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends LegacyConstructor>[] getConstructors()
    {
       return extentFunction(LegacyClass.class, this, "GetConstructors", object.class, new Block());
@@ -1118,6 +1122,7 @@
    {
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends LegacyConstructor>[] getConstructors(final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags)
    {
       object<? extends com.goldencode.p2j.oo.reflect.Flags> flags = TypeFactory.initInput(_flags);
@@ -1129,6 +1134,7 @@
    {
       @LegacyParameter(name = "name", type = "CHARACTER", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Event> getEvent(final character _name)
    {
       character name = TypeFactory.initInput(_name);
@@ -1141,6 +1147,7 @@
       @LegacyParameter(name = "name", type = "CHARACTER", mode = "INPUT"),
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Event> getEvent(final character _name, final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags)
    {
       character name = TypeFactory.initInput(_name);
@@ -1150,6 +1157,7 @@
    }
 
    @LegacySignature(returns = "OBJECT", type = Type.METHOD, name = "GetEvents", extent = -1, qualified = "progress.reflect.event")
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Event>[] getEvents()
    {
       return extentFunction(LegacyClass.class, this, "GetEvents", object.class, new Block());
@@ -1159,6 +1167,7 @@
    {
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Event>[] getEvents(final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags)
    {
       object<? extends com.goldencode.p2j.oo.reflect.Flags> flags = TypeFactory.initInput(_flags);
@@ -1174,6 +1183,7 @@
     * @return    The array of {@link LegacyClass} instances for each interface of this class.
     */
    @LegacySignature(returns = "OBJECT", type = Type.METHOD, name = "GetInterfaces", extent = -1, qualified = "progress.lang.class")
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public object<? extends LegacyClass>[] getInterfaces()
    {
       object<? extends LegacyClass>[] res[] = new object[][]
@@ -1217,6 +1227,7 @@
       @LegacyParameter(name = "method-name", type = "CHARACTER", mode = "INPUT"),
       @LegacyParameter(name = "parms", type = "OBJECT", qualified = "progress.lang.parameterlist", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends Legacy4GLMethod> getMethod(final character _methodName, final object<? extends com.goldencode.p2j.oo.lang.ParameterList> _parms)
    {
       UnimplementedFeature.missing("Progress.Lang.Class:getMethod(character, progress.lang.parameterlist)");
@@ -1233,6 +1244,7 @@
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT"),
       @LegacyParameter(name = "parms", type = "OBJECT", qualified = "progress.lang.parameterlist", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends Legacy4GLMethod> getMethod(final character _methodName, final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags, final object<? extends com.goldencode.p2j.oo.lang.ParameterList> _parms)
    {
       UnimplementedFeature.missing("Progress.Lang.Class:getMethod(character, progress.reflect.flags, progress.lang.parameterlist)");
@@ -1245,6 +1257,7 @@
    }
 
    @LegacySignature(returns = "OBJECT", type = Type.METHOD, name = "GetMethods", extent = -1, qualified = "progress.reflect.method")
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends Legacy4GLMethod>[] getMethods()
    {
       UnimplementedFeature.missing("Progress.Lang.Class:getMethods()");
@@ -1256,6 +1269,7 @@
    {
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends Legacy4GLMethod>[] getMethods(final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags)
    {
       UnimplementedFeature.missing("Progress.Lang.Class:getMethods(progress.reflect.flags)");
@@ -1266,8 +1280,11 @@
    }
 
    @LegacySignature(returns = "OBJECT", type = Type.METHOD, name = "GetProperties", extent = -1, qualified = "progress.reflect.property")
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Property>[] getProperties()
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:getProperties()");
+      
       return extentFunction(LegacyClass.class, this, "GetProperties", object.class, new Block());
    }
 
@@ -1275,8 +1292,11 @@
    {
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Property>[] getProperties(final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:getProperties(progress.reflect.flags)");
+      
       object<? extends com.goldencode.p2j.oo.reflect.Flags> flags = TypeFactory.initInput(_flags);
       
       return extentFunction(LegacyClass.class, this, "GetProperties", object.class, new Block());
@@ -1286,8 +1306,11 @@
    {
       @LegacyParameter(name = "name", type = "CHARACTER", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Property> getProperty(final character _name)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:getProperty(character)");
+      
       character name = TypeFactory.initInput(_name);
       
       return function(LegacyClass.class, this, "GetProperty", object.class, new Block());
@@ -1298,8 +1321,11 @@
       @LegacyParameter(name = "name", type = "CHARACTER", mode = "INPUT"),
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Property> getProperty(final character _name, final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:getProperty(character, progress.reflect.flags)");
+
       character name = TypeFactory.initInput(_name);
       object<? extends com.goldencode.p2j.oo.reflect.Flags> flags = TypeFactory.initInput(_flags);
       
@@ -1307,8 +1333,11 @@
    }
 
    @LegacySignature(returns = "OBJECT", type = Type.METHOD, name = "GetVariables", extent = -1, qualified = "progress.reflect.variable")
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Variable>[] getVariables()
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:getVariables()");
+      
       return extentFunction(LegacyClass.class, this, "GetVariables", object.class, new Block());
    }
 
@@ -1316,8 +1345,11 @@
    {
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Variable>[] getVariables(final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:getVariables(progress.reflect.flags)");
+
       object<? extends com.goldencode.p2j.oo.reflect.Flags> flags = TypeFactory.initInput(_flags);
       
       return extentFunction(LegacyClass.class, this, "GetVariables", object.class, new Block());
@@ -1327,8 +1359,11 @@
    {
       @LegacyParameter(name = "name", type = "CHARACTER", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Variable> getVariable(final character _name)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:getVariable(character)");
+      
       character name = TypeFactory.initInput(_name);
       
       return function(LegacyClass.class, this, "GetVariable", object.class, new Block());
@@ -1339,8 +1374,11 @@
       @LegacyParameter(name = "name", type = "CHARACTER", mode = "INPUT"),
       @LegacyParameter(name = "flags", type = "OBJECT", qualified = "progress.reflect.flags", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends com.goldencode.p2j.oo.reflect.Variable> getVariable(final character _name, final object<? extends com.goldencode.p2j.oo.reflect.Flags> _flags)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:getVariable(character,progress.reflect.flags)");
+      
       character name = TypeFactory.initInput(_name);
       object<? extends com.goldencode.p2j.oo.reflect.Flags> flags = TypeFactory.initInput(_flags);
       
@@ -1352,8 +1390,11 @@
       @LegacyParameter(name = "pname", type = "CHARACTER", mode = "INPUT"),
       @LegacyParameter(name = "value", type = "BDT", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public void setPropertyValue(final character _pname, final Object _value)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:setPropertyValue(character,bdt)");
+      
       character pname = TypeFactory.initInput(_pname);
       
       internalProcedure(LegacyClass.class, this, "SetPropertyValue", new Block());
@@ -1361,12 +1402,16 @@
 
    @LegacySignature(type = Type.METHOD, name = "SetPropertyValue", parameters = {
             @LegacyParameter(name = "pname", type = "CHARACTER", mode = "INPUT"),
-            @LegacyParameter(name = "index", type = "BDT", mode = "INPUT"),
+            @LegacyParameter(name = "index", type = "INTEGER", mode = "INPUT"),
             @LegacyParameter(name = "value", type = "BDT", mode = "INPUT") })
-   public void setPropertyValue(final character _pname, final Object _index,
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   public void setPropertyValue(final character _pname, final integer _index,
             final Object _value)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:setPropertyValue(character,integer,bdt)");
+      
       character pname = TypeFactory.initInput(_pname);
+      integer index = TypeFactory.initInput(_index);
 
       internalProcedure(LegacyClass.class, this, "SetPropertyValue", new Block());
    }
@@ -1377,8 +1422,11 @@
       @LegacyParameter(name = "pname", type = "CHARACTER", mode = "INPUT"),
       @LegacyParameter(name = "value", type = "BDT", mode = "INPUT")
    })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public void setPropertyValue(final object<? extends com.goldencode.p2j.oo.lang._BaseObject_> _objRef, final character _pname, final Object _value)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:setPropertyValue(progress.lang.object,character,bdt)");
+      
       object<? extends com.goldencode.p2j.oo.lang._BaseObject_> objRef = TypeFactory.initInput(_objRef);
       character pname = TypeFactory.initInput(_pname);
       
@@ -1388,17 +1436,21 @@
    @LegacySignature(type = Type.METHOD, name = "SetPropertyValue", parameters = {
             @LegacyParameter(name = "obj-ref", type = "OBJECT", qualified = "progress.lang.object", mode = "INPUT"),
             @LegacyParameter(name = "pname", type = "CHARACTER", mode = "INPUT"),
-            @LegacyParameter(name = "index", type = "BDT", mode = "INPUT"),
+            @LegacyParameter(name = "index", type = "INTEGER", mode = "INPUT"),
             @LegacyParameter(name = "value", type = "BDT", mode = "INPUT") })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public void setPropertyValue(
             final object<? extends com.goldencode.p2j.oo.lang._BaseObject_> _objRef,
-            final character _pname, final Object _index,
+            final character _pname, final integer _index,
             final Object _value)
    {
+      UnimplementedFeature.missing("Progress.Lang.Class:setPropertyValue(progress.lang.object,character,integer,bdt)");
+      
       object<? extends com.goldencode.p2j.oo.lang._BaseObject_> objRef = TypeFactory
                .initInput(_objRef);
       character pname = TypeFactory.initInput(_pname);
-
+      integer index = TypeFactory.initInput(_index);
+      
       internalProcedure(LegacyClass.class, this, "SetPropertyValue", new Block());
    }
 }

=== modified file 'src/com/goldencode/p2j/oo/lang/ParameterList.java'
--- old/src/com/goldencode/p2j/oo/lang/ParameterList.java	2022-05-26 17:40:26 +0000
+++ new/src/com/goldencode/p2j/oo/lang/ParameterList.java	2023-05-03 14:21:29 +0000
@@ -15,6 +15,7 @@
 ** 008 CA  20210221 Fixed 'qualified', 'extent' and 'returns' annotations at the legacy signature.
 ** 009 ME  20210507 Improve parameter validation (call syntax uses '-' as separator instead space).
 ** 010 GES 20220511 Match changes in CallMode and ParameterOption.
+**     ME  20230503 Reconvert skeleton and getSignatureList and new setParameter method. (#6410).
 */
 
 /*
@@ -206,6 +207,38 @@
       return new logical(true);
    }
    
+   
+   @LegacySignature(type = Type.METHOD, name = "SetParameter", returns = "LOGICAL", parameters = 
+   {
+      @LegacyParameter(name = "pos", type = "INTEGER", mode = "INPUT"),
+      @LegacyParameter(name = "val", type = "OBJECT", mode = "INPUT")
+   })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   public logical setParameter(final integer pos, final Object val)
+   {
+      return function(ParameterList.class, this, "SetParameter", logical.class, new Block((Body) () -> {
+         
+         if (pos.isUnknown() || pos.intValue() < 0 || pos.intValue() > this.getNumParameters().intValue())
+         {
+            String msg = "SetParameter position must be 1 based and less than or equal to " + this.getNumParameters().intValue() + ".";
+            ErrorManager.recordOrThrowError(15293, msg, false);
+         }
+         
+         CallParameter param = parameters[pos.intValue() - 1];
+         
+         param = Call.createParameter(param.dataType, param.mode, val, false, true);
+         
+         if (param == null)
+         {
+            returnNormal(new logical(false));
+         }
+         
+         parameters[pos.intValue() - 1] = param;
+         
+         returnNormal(new logical(true));
+      }));
+   }
+   
    /**
     * Implementation of the SET-PARAMETER method.
     * 
@@ -352,4 +385,13 @@
    {
       return parameters;
    }
+   
+   @LegacySignature(type = Type.GETTER, name = "SignatureList", returns = "CHARACTER")
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   public character getSignatureList()
+   {
+      return new character();
+   }
+
+   
 }

=== modified file 'src/com/goldencode/p2j/oo/lang/ProError.java'
--- old/src/com/goldencode/p2j/oo/lang/ProError.java	2022-12-21 16:12:44 +0000
+++ new/src/com/goldencode/p2j/oo/lang/ProError.java	2023-05-03 14:07:42 +0000
@@ -18,6 +18,7 @@
 **                  signature.
 **     CA  20220208 Implemented the callstack property.
 **     VVT 20221221 Serialization support added (see #4658).
+**     ME  20230503 Make severity private (#6410). 
 */
 
 /*
@@ -90,13 +91,14 @@
  */
 @LegacyResource(resource = "Progress.Lang.ProError")
 @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_BASIC)
+@LegacySerializable
 public class ProError
 extends BaseObject
 implements LegacyError,
            Externalizable
 {
    /** The severity property. */
-   protected integer severity = new integer(0);
+   private integer severity = new integer(0);
    
    /** The recorded errors. */
    protected List<NumberedException> errors = new ArrayList<>();

=== modified file 'src/com/goldencode/p2j/oo/net/http/CookieJar.java'
--- old/src/com/goldencode/p2j/oo/net/http/CookieJar.java	2022-03-07 07:56:55 +0000
+++ new/src/com/goldencode/p2j/oo/net/http/CookieJar.java	2023-05-03 14:24:38 +0000
@@ -14,7 +14,8 @@
 **                  signature.
 **     CA  20210609 Updated INPUT/INPUT-OUTPUT parameters to the new approach, where they are explicitly 
 **                  initialized at the method's execution, and not at the caller's arguments.
-**     ME  20211012 Increment/decrement object references on add/remove. 
+**     ME  20211012 Increment/decrement object references on add/remove.
+**     ME  20230503 Update method references for JsonArray (updated as part of #6410). 
 */
 
 /*
@@ -571,7 +572,7 @@
 
       persistentCookies.get().stream()
                .filter(c -> c.cookie._isValid() && !_isExpired(c.cookie.ref()))
-               .forEach(c -> jsonArr.ref().add_2(_serializeCookie(c)));
+               .forEach(c -> jsonArr.ref().add_1(_serializeCookie(c)));
 
       jsonObj.ref().add(new character(TAG_COOKIES), jsonArr);
 

=== modified file 'src/com/goldencode/p2j/oo/net/http/Credentials.java'
--- old/src/com/goldencode/p2j/oo/net/http/Credentials.java	2021-02-21 16:25:50 +0000
+++ new/src/com/goldencode/p2j/oo/net/http/Credentials.java	2023-05-03 14:26:01 +0000
@@ -9,6 +9,7 @@
 *
 ** 002 CA  20210221 Fixed 'qualified', 'extent' and 'returns' annotations at the legacy
 **                  signature.
+**     ME  20230503 Update legacy support annotations.
 */
 
 /*
@@ -81,7 +82,7 @@
  * in OpenEdge/Net/HTTP/Credentials.cls).
  */
 @LegacyResource(resource = "OpenEdge.Net.HTTP.Credentials")
-@LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+@LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
 public class Credentials
 extends BaseObject
 {
@@ -180,7 +181,7 @@
     * @return 'domain' attribute value.
     */
    @LegacySignature(returns = "CHARACTER", type = Type.GETTER, name = "Domain")
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public character getDomain()
    {
       return function(this, "Domain", character.class, new Block((Body) () -> 
@@ -215,7 +216,7 @@
     * @return 'password' attribute value.
     */
    @LegacySignature(returns = "CHARACTER", type = Type.GETTER, name = "Password")
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public character getPassword()
    {
       return function(this, "Password", character.class, new Block((Body) () -> 
@@ -250,7 +251,7 @@
     * @return 'userName' attribute value.
     */
    @LegacySignature(returns = "CHARACTER", type = Type.GETTER, name = "UserName")
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public character getUserName()
    {
       return function(this, "UserName", character.class, new Block((Body) () -> 

=== modified file 'src/com/goldencode/p2j/oo/net/http/filter/payload/JsonEntityWriter.java'
--- old/src/com/goldencode/p2j/oo/net/http/filter/payload/JsonEntityWriter.java	2022-10-24 17:54:45 +0000
+++ new/src/com/goldencode/p2j/oo/net/http/filter/payload/JsonEntityWriter.java	2023-05-03 14:23:34 +0000
@@ -15,6 +15,7 @@
 **                  be tracked.
 **                  All TypeFactory.object variable definitions must be done outside of the top-level block.
 **     CA  20221024 write(ByteBucket) must interpret the bytes as 'utf-8' source codepage.
+**     ME  20230503 Update method references for JsonArray (updated as part of #6410).
 */
 
 /*
@@ -500,13 +501,13 @@
          {
             if (ObjectOps.typeOf(this.entity, JsonArray.class).booleanValue())
             {
-               ObjectOps.cast(this.entity, JsonArray.class).ref().add_2(jsonErr);
+               ObjectOps.cast(this.entity, JsonArray.class).ref().add_1(jsonErr);
             }
             else if (ObjectOps.typeOf(this.entity, JsonObject.class).booleanValue())
             {
                jsonArr.assign(ObjectOps.newInstance(JsonArray.class));
-               jsonArr.ref().add_2(ObjectOps.cast(this.entity, JsonObject.class));
-               jsonArr.ref().add_2(jsonErr);
+               jsonArr.ref().add_1(ObjectOps.cast(this.entity, JsonObject.class));
+               jsonArr.ref().add_1(jsonErr);
                
                this.entity.assign(jsonArr);
             }
@@ -604,7 +605,7 @@
            }
            else 
            {
-              ObjectOps.cast(this.entity, JsonArray.class).ref().add_2(oRet);
+              ObjectOps.cast(this.entity, JsonArray.class).ref().add_1(oRet);
            }
          }
          else if (ObjectOps.typeOf(this.entity, JsonObject.class).booleanValue())

=== modified file 'src/com/goldencode/p2j/oo/net/serverconnection/ClientSocket.java'
--- old/src/com/goldencode/p2j/oo/net/serverconnection/ClientSocket.java	2022-05-13 12:42:39 +0000
+++ new/src/com/goldencode/p2j/oo/net/serverconnection/ClientSocket.java	2023-05-03 14:28:07 +0000
@@ -16,6 +16,7 @@
 **     ME  20210426 Fixed properties initial values (class not implemented, http client used instead).
 **     OM  20210917 Code maintenance.
 **     CA  20220513 Fixed legacy signature for 'writeData'.
+**     ME  20230503 Reconvert skeleton, remove setter for connected, set connect params on ctor (#6410).
 */
 
 /*
@@ -222,21 +223,6 @@
       }));
    }
 
-   @LegacySignature(type = Type.SETTER, name = "Connected", parameters = 
-   {
-      @LegacyParameter(name = "var", type = "LOGICAL", mode = "INPUT")
-   })
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
-   public void setConnected(final logical _var)
-   {
-      logical var = TypeFactory.initInput(_var);
-      
-      internalProcedure(ClientSocket.class, this, "Connected", new Block((Body) () -> 
-      {
-         connected.assign(var);
-      }));
-   }
-
    @LegacySignature(returns = "OBJECT", qualified = "OpenEdge.Core.ServerConnection.IConnectionParameters", type = Type.GETTER, name = "ConnectionParameters")
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_STUB)
    public object<? extends IconnectionParameters> getConnectionParameters()
@@ -610,6 +596,7 @@
       internalProcedure(ClientSocket.class, this, "__net_serverconnection_ClientSocket_constructor__", new Block((Body) () -> 
       {
          __lang_BaseObject_constructor__();
+         connectionParameters.assign(p1);
       }));
    }
 

=== modified file 'src/com/goldencode/p2j/oo/net/serverconnection/ClientSocketConnectionParameters.java'
--- old/src/com/goldencode/p2j/oo/net/serverconnection/ClientSocketConnectionParameters.java	2021-06-09 14:35:48 +0000
+++ new/src/com/goldencode/p2j/oo/net/serverconnection/ClientSocketConnectionParameters.java	2023-05-03 14:29:52 +0000
@@ -16,6 +16,7 @@
 **                  signature.
 ** 005 ME  20210322 Implement missing functionality (OE12.2).
 **     CA  20210609 Set the EXTENT for legacy properties or variables.
+**     ME  20230503 Reconvert skeleton, add new setter methods for extent properties (#6410).
 */
 
 /*
@@ -214,6 +215,22 @@
          sslCiphers = (character[]) assignMulti(sslCiphers, var);
       }));
    }
+      
+   @LegacySignature(type = Type.SETTER, name = "SslCiphers", parameters = 
+   {
+      @LegacyParameter(name = "var", type = "CHARACTER", mode = "INPUT")
+   })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
+   public void setAllSslCiphers(final character _var)
+   {
+      character var = TypeFactory.initInput(_var);
+      
+      internalProcedure(ClientSocketConnectionParameters.class, this, "SslCiphers", new Block((Body) () -> 
+      {
+         assignMulti(sslCiphers, var);
+      }));
+   }
+
 
    @LegacySignature(returns = "INTEGER", type = Type.LENGTH, name = "SslCiphers")
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
@@ -298,6 +315,21 @@
       }));
    }
 
+   @LegacySignature(type = Type.SETTER, name = "SslProtocols", parameters = 
+   {
+      @LegacyParameter(name = "var", type = "CHARACTER", mode = "INPUT")
+   })
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
+   public void setAllSslProtocols(final character _var)
+   {
+      character var = TypeFactory.initInput(_var);
+      
+      internalProcedure(ClientSocketConnectionParameters.class, this, "SslProtocols", new Block((Body) () -> 
+      {
+         assignMulti(sslProtocols, var);
+      }));
+   }
+   
    @LegacySignature(returns = "INTEGER", type = Type.LENGTH, name = "SslProtocols")
    @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
    public integer lengthOfSslProtocols()
@@ -539,7 +571,7 @@
    {
       @LegacyParameter(name = "p1", type = "CHARACTER", mode = "INPUT")
    })
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_PARTIAL)
    public character getConnectionString(final character _p1)
    {
       return getConnectionString();
@@ -549,7 +581,7 @@
    {
       @LegacyParameter(name = "p1", type = "OBJECT", qualified = "openedge.core.serverconnection.formatmaskenum", mode = "INPUT")
    })
-   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
+   @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_PARTIAL)
    public character getConnectionString(final object<? extends FormatMaskEnum> _p1)
    {
       return getConnectionString();

=== modified file 'src/com/goldencode/p2j/persist/serial/JsonExport.java'
--- old/src/com/goldencode/p2j/persist/serial/JsonExport.java	2023-03-30 19:11:40 +0000
+++ new/src/com/goldencode/p2j/persist/serial/JsonExport.java	2023-05-03 16:45:23 +0000
@@ -35,6 +35,7 @@
 **     CA  20230116 Avoid using handle.unwrap, handle.getReference or other BDT usage from within FWD runtime.
 ** 009 IAS 20230303 Fixed <code>decimal</code> serialization
 **         20230315 Added support for the DATA-REALATION:FOREIGN-KEY-HIDDEN attribute.
+**     ME  20230503 Update method references for JsonArray (updated as part of #6410).
 */
 
 /*
@@ -502,7 +503,7 @@
       }
       else if (json instanceof JsonArray)
       {
-         ((JsonArray) json).setLength(new int64(0));
+         ((JsonArray) json).setLength(new integer(0));
       }
       else
       {
@@ -562,7 +563,7 @@
                return;
             }
             
-            root.ref().add_2(node);
+            root.ref().add_1(node);
          });
          
          JsonObject json = (JsonObject) (((ObjectVar<?>) ufo).ref());
@@ -596,7 +597,7 @@
                return;
             }
             
-            json.add_2(node);
+            json.add_1(node);
          });
       }
       
@@ -733,7 +734,7 @@
          case "raw": dest.add((raw) datum); break;
          case "recid": dest.add((recid) datum); break;
          case "rowid": dest.add((rowid) datum); break;
-         case "object": dest.add_2((object) datum); break;
+         case "object": dest.add_1((object) datum); break;
          case "blob": dest.add((blob) datum); break;
          case "clob": dest.add((clob) datum); break;
       }
@@ -800,7 +801,7 @@
                   return;
                }
                
-               ttRoot.ref().add_2(node);
+               ttRoot.ref().add_1(node);
             });
             
             dsRoot.ref().add(after.getSerializeName(), ttRoot);
@@ -1557,7 +1558,7 @@
          iLoop.assign(i + 1);
          
          oError.assign(ObjectOps.newInstance(JsonObject.class));
-         oErrorList.ref().add_2(oError);
+         oErrorList.ref().add_1(oError);
          oError.ref().add(new character("_errorMsg"), poError.ref().getMessage(iLoop));
          oError.ref().add(new character("_errorNum"), poError.ref().getMessageNum(iLoop));
       }

