JB,
I have not, but ShellTable in 4.4.9 is the same as 4.4.3. Line 190 is the source of the illegal access warning. 


Passing a non-null CharSet to table.print() avoids the encoding calculation and warning 
Paul Spencer

On Jan 19, 2026, at 10:00 AM, Jean-Baptiste Onofré <[email protected]> wrote:


Hi Paul

Did you try with Karaf 4.4.9 ?

Regards
JB

Le ven. 16 janv. 2026 à 16:10, Paul Spencer <[email protected]> a écrit :
To recreated:
1. In session #1, Start Karaf using the command bin/karaf
2. In session #2, Start Karaf using the command bin/client
3. In session #2, execute the command writing the table, bugdata:display in this case.
4. In session #1, The warning will be displayed only once.

Additional behavior notes:
- `table.print(System.out)` does not generate the warning
- `table.print(session.getConsole())` will generate the warning on first use.

Paul Spencer


> On Jan 16, 2026, at 9:48 AM, Paul Spencer <[email protected]> wrote:
>
> Karaf: 4.4.3
> Java Virtual Machine:  OpenJDK 64-Bit Server VM version 11.0.2+9
>
> I am seeing the following error when using ShellTable.print() to shell's session console.
>
> WARNING: An illegal reflective access operation has occurred
> WARNING: Illegal reflective access by org.apache.karaf.shell.support.table.ShellTable (jar:bundle://e299aef6-746a-44e6-b810-da872d8d9244_44.0:0/!/) to field java.io.PrintStream.charOut
> WARNING: Please consider reporting this to the maintainers of org.apache.karaf.shell.support.table.ShellTable
> WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
> WARNING: All illegal access operations will be denied in a future release
>
> The default for --illegal-access changes to deny in Java 16 and the functionality is remove in Java 17.
> https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html#extra-options-for-java
>
> The offending code appears in getEncoding() for shell/core/src/main/java/org/apache/karaf/shell/support/table/ShellTable.java
> Since the Should I create an issue in GitHub?
>
> ### Example Code
> import org.apache.karaf.shell.api.console.Session;
> import org.apache.karaf.shell.support.table.ShellTable;
> @Service
> @Command(scope = "bugdata", name = "appt-display", description = "Display an appoiment schedule")
> public class MyCommand implements Action {
> @Reference
> private Session session;
>
> @Override
> public Object execute() throws Exception {
>   final var output = session.getConsole();
>   final var table = new ShellTable();
> ...
>   table.print(output);
> }
> }
>
>
> Paul Spencer


Reply via email to