### Eclipse Workspace Patch 1.0
#P goldencode-fwd
diff --git src/com/goldencode/p2j/oo/lang/AppError.java src/com/goldencode/p2j/oo/lang/AppError.java
index 0c4f367..725aa56 100644
--- src/com/goldencode/p2j/oo/lang/AppError.java
+++ src/com/goldencode/p2j/oo/lang/AppError.java
@@ -72,7 +72,6 @@
import static com.goldencode.p2j.util.BlockManager.*;
import static com.goldencode.p2j.report.ReportConstants.*;
-import com.goldencode.p2j.NumberedException;
import com.goldencode.p2j.util.*;
import com.goldencode.p2j.util.InternalEntry.Type;
@@ -146,9 +145,7 @@
integer num = TypeFactory.initInput(_num);
internalProcedure(this, "__lang_AppError_constructor__", new Block((Body) () ->
{
- __lang_ProError_constructor__();
-
- addMessage(msg, num);
+ __lang_ProError_constructor__(msg, num);
}));
}
@@ -262,9 +259,6 @@
@LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_PARTIAL)
public void addMessage(character msg, integer num)
{
- // TODO: validate the index or message?
-
- int inum = num.isUnknown() ? 0 : num.intValue();
- errors.add(new NumberedException(msg.toStringMessage(), inum));
+ super.addMessage(msg, num);
}
}
diff --git src/com/goldencode/p2j/oo/lang/ProError.java src/com/goldencode/p2j/oo/lang/ProError.java
index ac158c7..6ec0172 100644
--- src/com/goldencode/p2j/oo/lang/ProError.java
+++ src/com/goldencode/p2j/oo/lang/ProError.java
@@ -145,6 +145,33 @@
__lang_BaseObject_constructor__();
}));
}
+
+ /**
+ * Explicit method associated with a legacy constructor for the
+ * Progress.Lang.ProError
class.
+ *
+ * @param _msg
+ * The message.
+ * @param _num
+ * The message number.
+ */
+ @LegacySignature(type = Type.CONSTRUCTOR, parameters =
+ {
+ @LegacyParameter(name = "msg", type = "CHARACTER", mode = "INPUT"),
+ @LegacyParameter(name = "num", type = "INTEGER", mode = "INPUT"),
+ })
+ @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
+ protected void __lang_ProError_constructor__(character _msg, integer _num)
+ {
+ character msg = TypeFactory.initInput(_msg);
+ integer num = TypeFactory.initInput(_num);
+ internalProcedure(this, "__lang_ProError_constructor__", new Block((Body) () ->
+ {
+ __lang_ProError_constructor__();
+
+ addMessage(msg, num);
+ }));
+ }
/**
* Get the number of messages.
@@ -272,4 +299,12 @@
return true;
}
+
+ protected void addMessage(character msg, integer num)
+ {
+ // TODO: validate the index or message?
+
+ int inum = num.isUnknown() ? 0 : num.intValue();
+ errors.add(new NumberedException(msg.toStringMessage(), inum));
+ }
}
diff --git src/com/goldencode/p2j/oo/lang/SysError.java src/com/goldencode/p2j/oo/lang/SysError.java
index 5406429..9e5157d 100644
--- src/com/goldencode/p2j/oo/lang/SysError.java
+++ src/com/goldencode/p2j/oo/lang/SysError.java
@@ -68,7 +68,6 @@
import static com.goldencode.p2j.util.BlockManager.externalProcedure;
import static com.goldencode.p2j.report.ReportConstants.*;
import static com.goldencode.p2j.util.BlockManager.internalProcedure;
-import static com.goldencode.p2j.report.ReportConstants.*;
import com.goldencode.p2j.util.*;
import com.goldencode.p2j.util.InternalEntry.Type;
@@ -77,7 +76,7 @@
* Implementation of the Progress.Lang.SysError builtin class.
*/
@LegacyResource(resource = "Progress.Lang.SysError")
-@LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_BASIC)
+@LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
public class SysError
extends ProError
{
@@ -96,7 +95,7 @@
* Progress.Lang.SysError
class.
*/
@LegacySignature(type = Type.CONSTRUCTOR)
- @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_BASIC)
+ @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
public void __lang_SysError_constructor__()
{
internalProcedure(this, "__lang_SysError_constructor__", new Block((Body) () ->
@@ -104,4 +103,51 @@
__lang_ProError_constructor__();
}));
}
+
+ /**
+ * Explicit method associated with a legacy constructor for the
+ * Progress.Lang.SysError
class.
+ *
+ * @param _msg
+ * The message.
+ * @param _num
+ * The message number.
+ */
+ @LegacySignature(type = Type.CONSTRUCTOR, parameters =
+ {
+ @LegacyParameter(name = "msg", type = "CHARACTER", mode = "INPUT"),
+ @LegacyParameter(name = "num", type = "INTEGER", mode = "INPUT"),
+ })
+ @LegacyResourceSupport(supportLvl = CVT_LVL_FULL|RT_LVL_FULL)
+ public void __lang_SysError_constructor__(character _msg, integer _num)
+ {
+ character msg = TypeFactory.initInput(_msg);
+ integer num = TypeFactory.initInput(_num);
+ internalProcedure(this, "__lang_SysError_constructor__", new Block((Body) () ->
+ {
+ __lang_ProError_constructor__(msg, num);
+ }));
+ }
+
+ /**
+ * Create a new SysError instance and return it as a legacy object.
+ *
+ * @param retVal
+ * The return value.
+ */
+ public static object newInstance(character msg, integer num)
+ {
+ return ObjectOps.newInstance(SysError.class, "II", msg, num);
+ }
+
+ /**
+ * Create a new SysError instance and return it as a legacy object.
+ *
+ * @param retVal
+ * The return value.
+ */
+ public static object newInstance(String msg, int num)
+ {
+ return ObjectOps.newInstance(SysError.class, "II", msg, num);
+ }
}
diff --git src/com/goldencode/p2j/util/BlockManager.java src/com/goldencode/p2j/util/BlockManager.java
index 5bf383d..6fb8b28 100644
--- src/com/goldencode/p2j/util/BlockManager.java
+++ src/com/goldencode/p2j/util/BlockManager.java
@@ -6759,10 +6759,12 @@
WorkArea wa = work.get();
- character retVal = ((AppError) error.ref()).getReturnValue();
- if (!retVal.isUnknown() && !retVal.toStringMessage().isEmpty())
- {
- wa.cfops.setReturnValue(retVal);
+ if (error.ref() instanceof AppError) {
+ character retVal = ((AppError) error.ref()).getReturnValue();
+ if (!retVal.isUnknown() && !retVal.toStringMessage().isEmpty())
+ {
+ wa.cfops.setReturnValue(retVal);
+ }
}
LegacyErrorException lex = new LegacyErrorException(error, true);
diff --git src/com/goldencode/p2j/util/ErrorManager.java src/com/goldencode/p2j/util/ErrorManager.java
index 92439e0..0fcea5d 100644
--- src/com/goldencode/p2j/util/ErrorManager.java
+++ src/com/goldencode/p2j/util/ErrorManager.java
@@ -619,11 +619,11 @@
srv.setPending(true);
LegacyError err = lex.getErrorRef();
- if (!(err instanceof AppError && ((AppError) err).isFromReturn()))
+ if (!(err instanceof AppError) || !((AppError) err).isFromReturn())
{
- AppError appErr = (AppError) err;
- int errnum = appErr.getMessageNum(new integer(1)).intValue();
- String errmsg = appErr.getMessage(new integer(1)).toStringMessage();
+ ProError proErr = (ProError) err;
+ int errnum = proErr.getMessageNum(new integer(1)).intValue();
+ String errmsg = proErr.getMessage(new integer(1)).toStringMessage();
wa.pendingErrorStatus.errorList.add(new ErrorEntry(errnum, errmsg));
addRaisedCondition(new int[] { errnum });
}
@@ -1447,7 +1447,8 @@
{
// display the error message (because of pause processing, an
// endkey, error... even stop condition can be generated here)
- displayError(errmsg);
+ // displayError(errmsg);
+ BlockManager.returnError(SysError.newInstance(text, num));
}
catch (ConditionException err)