[
https://issues.apache.org/jira/browse/KARAF-5362?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jean-Baptiste Onofré updated KARAF-5362:
----------------------------------------
Component/s: karaf-documentation
> NPE creating session with a null "in" parameter from a SessionFactory
> ---------------------------------------------------------------------
>
> Key: KARAF-5362
> URL: https://issues.apache.org/jira/browse/KARAF-5362
> Project: Karaf
> Issue Type: Bug
> Components: karaf-documentation, karaf-shell
> Affects Versions: 4.1.2
> Reporter: Emily Berk
> Assignee: Jean-Baptiste Onofré
> Priority: Trivial
>
> The javadoc for {{SessionFactory#create(InputStream, PrintStream,
> PrintStream)}} says
> {code:java}
> @param in the input stream, can be <code>null</code> if the session is only
> used to execute a command using {@link Session#execute(CharSequence)}
> {code}
> When I try
> {code:java}
> package org.apache.karaf.shell.impl.console;
> import static org.easymock.EasyMock.createMock;
> import java.io.PrintStream;
> import java.io.UnsupportedEncodingException;
> import org.apache.felix.service.threadio.ThreadIO;
> import org.apache.karaf.shell.api.console.SessionFactory;
> import org.junit.Test;
> public class SessionFactoryImplTest {
>
> @Test
> public void createWithNullInputStream() throws
> UnsupportedEncodingException {
> final SessionFactory sessionFactory = new
> SessionFactoryImpl(createMock(ThreadIO.class));
> sessionFactory.create(null, createMock(PrintStream.class),
> createMock(PrintStream.class));
> }
> }
> {code}
> I get
> {code}
> java.lang.NullPointerException: "in" is null!
> at java.nio.channels.Channels.checkNotNull(Channels.java:67)
> at java.nio.channels.Channels.newChannel(Channels.java:347)
> at
> org.apache.felix.gogo.runtime.CommandSessionImpl.<init>(CommandSessionImpl.java:108)
> at
> org.apache.felix.gogo.runtime.CommandProcessorImpl.createSession(CommandProcessorImpl.java:82)
> at
> org.apache.felix.gogo.runtime.CommandProcessorImpl.createSession(CommandProcessorImpl.java:38)
> at
> org.apache.karaf.shell.impl.console.HeadlessSessionImpl.<init>(HeadlessSessionImpl.java:67)
> at
> org.apache.karaf.shell.impl.console.SessionFactoryImpl.create(SessionFactoryImpl.java:155)
> at
> org.apache.karaf.shell.impl.console.SessionFactoryImpl.create(SessionFactoryImpl.java:146)
> at
> org.apache.karaf.shell.impl.console.SessionFactoryImplTest.createWithNullInputStream(SessionFactoryImplTest.java:41)
> {code}
> A work-around is to pass a non-null {{InputStream}} that should never be
> called if the {{Session}} is only used to execute a command using
> {{Session#execute(CharSequence)}}.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)