| Summary: | No name in the "Property or method not found: $(ARG1)" error message | ||
|---|---|---|---|
| Product: | LibreOffice | Reporter: | Mike Kaganski <mikekaganski> |
| Component: | BASIC | Assignee: | Andreas Heinisch <andreas.heinisch> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | medium | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | target:7.5.0 | ||
| Crash report or crash signature: | Regression By: | ||
Repro with Version: 7.5.0.0.alpha0+ / LibreOffice Community Build ID: 21a31eefab1401d288dbb8220f3df3365be9efaf CPU threads: 16; OS: Linux 5.15; UI render: default; VCL: kf5 (cairo+xcb) Locale: pt-BR (pt_BR.UTF-8); UI: en-US Calc: threaded Indeed the first error message makes no sense. The message is defined in [1] but I don't know why it shows the second error message. [1] https://opengrok.libreoffice.org/xref/core/basic/inc/basic.hrc?r=840b4eb2&mo=7414&fi=100#100 Andreas Heinisch committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/7e2a8a9869e362ae181ad92f50ea287e9abf85bb tdf#150139 - Add a concrete name to the error message It will be available in 7.5.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback. |
Run this BASIC code: Sub MeaninglessErrorMessage x = CreateUnoListener("Impl_", "com.sun.star.io.XInputStream") x.available() End Sub This will produce two run-time error messages; the last one is not relevant here, but the first one is (literally): > BASIC runtime error. > Property or method not found: $(ARG1). It doesn't tell the user which method is not found; in fact, that should be "Impl_available". The error originates inside BasicAllListener_Impl::firing_impl, in a call to StarBASIC::Call. The real problem is when user passes a created listener (actually, a generic UNO interface implementation) to some other object, so the interface's methods are called indirectly, and there's no way for the user to know which method is attempted.