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