Search in sources :

Example 46 with IOError

use of java.io.IOError in project elasticsearch by elastic.

the class ElasticsearchUncaughtExceptionHandlerTests method testIsFatalCause.

public void testIsFatalCause() {
    assertFatal(new MergePolicy.MergeException(new OutOfMemoryError(), null));
    assertFatal(new OutOfMemoryError());
    assertFatal(new StackOverflowError());
    assertFatal(new InternalError());
    assertFatal(new UnknownError());
    assertFatal(new IOError(new IOException()));
    assertNonFatal(new RuntimeException());
    assertNonFatal(new UncheckedIOException(new IOException()));
}
Also used : IOError(java.io.IOError) MergePolicy(org.apache.lucene.index.MergePolicy) UncheckedIOException(java.io.UncheckedIOException) IOException(java.io.IOException) UncheckedIOException(java.io.UncheckedIOException)

Example 47 with IOError

use of java.io.IOError in project cassandra by apache.

the class UnfilteredRowIteratorSerializer method deserialize.

public UnfilteredRowIterator deserialize(DataInputPlus in, int version, TableMetadata metadata, SerializationHelper.Flag flag, Header header) throws IOException {
    if (header.isEmpty)
        return EmptyIterators.unfilteredRow(metadata, header.key, header.isReversed);
    final SerializationHelper helper = new SerializationHelper(metadata, version, flag);
    final SerializationHeader sHeader = header.sHeader;
    return new AbstractUnfilteredRowIterator(metadata, header.key, header.partitionDeletion, sHeader.columns(), header.staticRow, header.isReversed, sHeader.stats()) {

        private final Row.Builder builder = BTreeRow.sortedBuilder();

        protected Unfiltered computeNext() {
            try {
                Unfiltered unfiltered = UnfilteredSerializer.serializer.deserialize(in, sHeader, helper, builder);
                return unfiltered == null ? endOfData() : unfiltered;
            } catch (IOException e) {
                throw new IOError(e);
            }
        }
    };
}
Also used : IOError(java.io.IOError) IOException(java.io.IOException)

Example 48 with IOError

use of java.io.IOError in project bazel by bazelbuild.

the class HeaderClassLoader method findClass.

@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
    String filename = rewriter.unprefix(name.replace('.', '/') + ".class");
    JarFile jarfile = indexedJars.getJarFile(filename);
    if (jarfile == null) {
        throw new ClassNotFoundException();
    }
    ZipEntry entry = jarfile.getEntry(filename);
    byte[] bytecode;
    try (InputStream content = jarfile.getInputStream(entry)) {
        ClassReader reader = rewriter.reader(content);
        // Have ASM compute maxs so we don't need to figure out how many formal parameters there are
        ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS);
        reader.accept(new CodeStubber(writer), 0);
        bytecode = writer.toByteArray();
    } catch (IOException e) {
        throw new IOError(e);
    }
    return defineClass(name, bytecode, 0, bytecode.length);
}
Also used : IOError(java.io.IOError) InputStream(java.io.InputStream) ZipEntry(java.util.zip.ZipEntry) ClassReader(org.objectweb.asm.ClassReader) IOException(java.io.IOException) JarFile(java.util.jar.JarFile) ClassWriter(org.objectweb.asm.ClassWriter)

Example 49 with IOError

use of java.io.IOError in project karaf by apache.

the class ClientMojo method execute.

protected void execute(String cmd) throws MojoExecutionException {
    SshClient client = null;
    try {
        final Console console = System.console();
        client = SshClient.setUpDefaultClient();
        setupAgent(user, keyFile, client);
        client.setUserInteraction(new UserInteraction() {

            @Override
            public void welcome(ClientSession s, String banner, String lang) {
                console.printf(banner);
            }

            @Override
            public String[] interactive(ClientSession s, String name, String instruction, String lang, String[] prompt, boolean[] echo) {
                String[] answers = new String[prompt.length];
                try {
                    for (int i = 0; i < prompt.length; i++) {
                        if (console != null) {
                            if (echo[i]) {
                                answers[i] = console.readLine(prompt[i] + " ");
                            } else {
                                answers[i] = new String(console.readPassword(prompt[i] + " "));
                            }
                        }
                    }
                } catch (IOError e) {
                }
                return answers;
            }

            @Override
            public boolean isInteractionAllowed(ClientSession session) {
                return true;
            }

            @Override
            public void serverVersionInfo(ClientSession session, List<String> lines) {
            }

            @Override
            public String getUpdatedPassword(ClientSession session, String prompt, String lang) {
                return null;
            }
        });
        client.start();
        if (console != null) {
            console.printf("Logging in as %s\n", user);
        }
        ClientSession session = connect(client);
        if (password != null) {
            session.addPasswordIdentity(password);
        }
        session.auth().verify();
        final ClientChannel channel = session.createChannel("exec", cmd.concat(NEW_LINE));
        channel.setIn(new ByteArrayInputStream(new byte[0]));
        final ByteArrayOutputStream sout = new ByteArrayOutputStream();
        final ByteArrayOutputStream serr = new ByteArrayOutputStream();
        channel.setOut(AnsiConsole.wrapOutputStream(sout));
        channel.setErr(AnsiConsole.wrapOutputStream(serr));
        channel.open();
        channel.waitFor(EnumSet.of(ClientChannelEvent.CLOSED), 0);
        sout.writeTo(System.out);
        serr.writeTo(System.err);
        // Expects issue KARAF-2623 is fixed
        final boolean isError = (channel.getExitStatus() != null && channel.getExitStatus().intValue() != 0);
        if (isError) {
            final String errorMarker = Ansi.ansi().fg(Color.RED).toString();
            final int fromIndex = sout.toString().indexOf(errorMarker) + errorMarker.length();
            final int toIndex = sout.toString().lastIndexOf(Ansi.ansi().fg(Color.DEFAULT).toString());
            throw new MojoExecutionException(NEW_LINE + sout.toString().substring(fromIndex, toIndex));
        }
    } catch (MojoExecutionException e) {
        throw e;
    } catch (Throwable t) {
        throw new MojoExecutionException(t, t.getMessage(), t.toString());
    } finally {
        try {
            client.stop();
        } catch (Throwable t) {
            throw new MojoExecutionException(t, t.getMessage(), t.toString());
        }
    }
}
Also used : SshClient(org.apache.sshd.client.SshClient) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ClientChannel(org.apache.sshd.client.channel.ClientChannel) IOError(java.io.IOError) ByteArrayInputStream(java.io.ByteArrayInputStream) ClientSession(org.apache.sshd.client.session.ClientSession) Console(java.io.Console) AnsiConsole(org.fusesource.jansi.AnsiConsole) UserInteraction(org.apache.sshd.client.auth.keyboard.UserInteraction)

Example 50 with IOError

use of java.io.IOError in project tesb-studio-se by Talend.

the class RuntimeClient method connect.

public void connect(String[] args) throws Exception {
    ClientConfig config = new ClientConfig(args);
    SimpleLogger.setLevel(config.getLevel());
    if (config.getFile() != null) {
        StringBuilder sb = new StringBuilder();
        sb.setLength(0);
        try (Reader reader = new BufferedReader(new InputStreamReader(new FileInputStream(config.getFile())))) {
            for (int c = reader.read(); c >= 0; c = reader.read()) {
                sb.append((char) c);
            }
        }
        config.setCommand(sb.toString());
    } else if (config.isBatch()) {
        StringBuilder sb = new StringBuilder();
        sb.setLength(0);
        Reader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int c = reader.read(); c >= 0; c = reader.read()) {
            sb.append((char) c);
        }
        config.setCommand(sb.toString());
    }
    SshClient client = ClientBuilder.builder().build();
    // setupAgent(config.getUser(), config.getKeyFile(), client);
    // client.getProperties().put(FactoryManager.IDLE_TIMEOUT, String.valueOf(config.getIdleTimeout()));
    final Console console = System.console();
    if (console != null) {
        client.setUserInteraction(new UserInteraction() {

            @Override
            public void welcome(ClientSession s, String banner, String lang) {
                System.err.println(banner);
            }

            @Override
            public String[] interactive(ClientSession s, String name, String instruction, String lang, String[] prompt, boolean[] echo) {
                String[] answers = new String[prompt.length];
                try {
                    for (int i = 0; i < prompt.length; i++) {
                        if (echo[i]) {
                            answers[i] = console.readLine(prompt[i] + " ");
                        } else {
                            answers[i] = new String(console.readPassword(prompt[i] + " "));
                        }
                        if (answers[i] == null) {
                            return null;
                        }
                    }
                    return answers;
                } catch (IOError e) {
                    return null;
                }
            }

            @Override
            public boolean isInteractionAllowed(ClientSession session) {
                return true;
            }

            @Override
            public void serverVersionInfo(ClientSession session, List<String> lines) {
            }

            @Override
            public String getUpdatedPassword(ClientSession session, String prompt, String lang) {
                return null;
            }
        });
    }
    client.start();
    ClientSession session = connectWithRetries(client, config);
    if (config.getPassword() != null) {
        session.addPasswordIdentity(config.getPassword());
    }
    session.auth().verify();
    int exitStatus = 0;
    Terminal terminal = TerminalBuilder.terminal();
    Attributes attributes = terminal.enterRawMode();
    IOConsoleOutputStream outputStream = RuntimeConsoleUtil.getOutputStream();
    try {
        ClientChannel channel;
        if (config.getCommand().length() > 0) {
            channel = session.createChannel("exec", config.getCommand() + "\n");
            channel.setIn(new ByteArrayInputStream(new byte[0]));
        } else {
            ChannelShell shell = session.createShellChannel();
            channel = shell;
            channel.setIn(new NoCloseInputStream(inputStream));
            Map<PtyMode, Integer> modes = new HashMap<>();
            // Control chars
            modes.put(PtyMode.VINTR, attributes.getControlChar(ControlChar.VINTR));
            modes.put(PtyMode.VQUIT, attributes.getControlChar(ControlChar.VQUIT));
            modes.put(PtyMode.VERASE, attributes.getControlChar(ControlChar.VERASE));
            modes.put(PtyMode.VKILL, attributes.getControlChar(ControlChar.VKILL));
            modes.put(PtyMode.VEOF, attributes.getControlChar(ControlChar.VEOF));
            modes.put(PtyMode.VEOL, attributes.getControlChar(ControlChar.VEOL));
            modes.put(PtyMode.VEOL2, attributes.getControlChar(ControlChar.VEOL2));
            modes.put(PtyMode.VSTART, attributes.getControlChar(ControlChar.VSTART));
            modes.put(PtyMode.VSTOP, attributes.getControlChar(ControlChar.VSTOP));
            modes.put(PtyMode.VSUSP, attributes.getControlChar(ControlChar.VSUSP));
            modes.put(PtyMode.VDSUSP, attributes.getControlChar(ControlChar.VDSUSP));
            modes.put(PtyMode.VREPRINT, attributes.getControlChar(ControlChar.VREPRINT));
            modes.put(PtyMode.VWERASE, attributes.getControlChar(ControlChar.VWERASE));
            modes.put(PtyMode.VLNEXT, attributes.getControlChar(ControlChar.VLNEXT));
            modes.put(PtyMode.VSTATUS, attributes.getControlChar(ControlChar.VSTATUS));
            modes.put(PtyMode.VDISCARD, attributes.getControlChar(ControlChar.VDISCARD));
            // Input flags
            modes.put(PtyMode.IGNPAR, getFlag(attributes, InputFlag.IGNPAR));
            modes.put(PtyMode.PARMRK, getFlag(attributes, InputFlag.PARMRK));
            modes.put(PtyMode.INPCK, getFlag(attributes, InputFlag.INPCK));
            modes.put(PtyMode.ISTRIP, getFlag(attributes, InputFlag.ISTRIP));
            modes.put(PtyMode.INLCR, getFlag(attributes, InputFlag.INLCR));
            modes.put(PtyMode.IGNCR, getFlag(attributes, InputFlag.IGNCR));
            modes.put(PtyMode.ICRNL, getFlag(attributes, InputFlag.ICRNL));
            modes.put(PtyMode.IXON, getFlag(attributes, InputFlag.IXON));
            modes.put(PtyMode.IXANY, getFlag(attributes, InputFlag.IXANY));
            modes.put(PtyMode.IXOFF, getFlag(attributes, InputFlag.IXOFF));
            // Local flags
            modes.put(PtyMode.ISIG, getFlag(attributes, LocalFlag.ISIG));
            modes.put(PtyMode.ICANON, getFlag(attributes, LocalFlag.ICANON));
            modes.put(PtyMode.ECHO, getFlag(attributes, LocalFlag.ECHO));
            modes.put(PtyMode.ECHOE, getFlag(attributes, LocalFlag.ECHOE));
            modes.put(PtyMode.ECHOK, getFlag(attributes, LocalFlag.ECHOK));
            modes.put(PtyMode.ECHONL, getFlag(attributes, LocalFlag.ECHONL));
            modes.put(PtyMode.NOFLSH, getFlag(attributes, LocalFlag.NOFLSH));
            modes.put(PtyMode.TOSTOP, getFlag(attributes, LocalFlag.TOSTOP));
            modes.put(PtyMode.IEXTEN, getFlag(attributes, LocalFlag.IEXTEN));
            // Output flags
            modes.put(PtyMode.OPOST, getFlag(attributes, OutputFlag.OPOST));
            modes.put(PtyMode.ONLCR, getFlag(attributes, OutputFlag.ONLCR));
            modes.put(PtyMode.OCRNL, getFlag(attributes, OutputFlag.OCRNL));
            modes.put(PtyMode.ONOCR, getFlag(attributes, OutputFlag.ONOCR));
            modes.put(PtyMode.ONLRET, getFlag(attributes, OutputFlag.ONLRET));
            shell.setPtyModes(modes);
            shell.setPtyColumns(terminal.getWidth());
            shell.setPtyLines(terminal.getHeight());
            shell.setAgentForwarding(true);
            String ctype = System.getenv("LC_CTYPE");
            if (ctype == null) {
                ctype = Locale.getDefault().toString() + "." + System.getProperty("input.encoding", Charset.defaultCharset().name());
            }
            shell.setEnv("LC_CTYPE", ctype);
        }
        channel.setOut(outputStream);
        channel.setErr(outputStream);
        channel.open().verify();
        if (channel instanceof PtyCapableChannelSession) {
            registerSignalHandler(terminal, (PtyCapableChannelSession) channel);
        }
        connected = true;
        channel.waitFor(EnumSet.of(ClientChannelEvent.CLOSED), 0);
        if (channel.getExitStatus() != null) {
            exitStatus = channel.getExitStatus();
        }
        channel.close();
    } finally {
        terminal.setAttributes(attributes);
        client.stop();
        client.close();
        connected = false;
        if (!outputStream.isClosed()) {
            outputStream.close();
        }
    }
}
Also used : SshClient(org.apache.sshd.client.SshClient) IOConsoleOutputStream(org.eclipse.ui.console.IOConsoleOutputStream) HashMap(java.util.HashMap) Attributes(org.jline.terminal.Attributes) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) BufferedReader(java.io.BufferedReader) ChannelShell(org.apache.sshd.client.channel.ChannelShell) ClientSession(org.apache.sshd.client.session.ClientSession) Console(java.io.Console) ClientConfig(org.apache.karaf.client.ClientConfig) PtyCapableChannelSession(org.apache.sshd.client.channel.PtyCapableChannelSession) InputStreamReader(java.io.InputStreamReader) PtyMode(org.apache.sshd.common.channel.PtyMode) Terminal(org.jline.terminal.Terminal) FileInputStream(java.io.FileInputStream) ClientChannel(org.apache.sshd.client.channel.ClientChannel) NoCloseInputStream(com.sun.xml.internal.ws.util.NoCloseInputStream) IOError(java.io.IOError) ByteArrayInputStream(java.io.ByteArrayInputStream) BufferedReader(java.io.BufferedReader) UserInteraction(org.apache.sshd.client.auth.keyboard.UserInteraction)

Aggregations

IOError (java.io.IOError)78 IOException (java.io.IOException)58 File (java.io.File)11 ArrayList (java.util.ArrayList)8 Path (java.nio.file.Path)5 Status (ch.qos.logback.core.status.Status)4 BufferedReader (java.io.BufferedReader)4 ByteArrayInputStream (java.io.ByteArrayInputStream)4 Console (java.io.Console)4 DataInputStream (java.io.DataInputStream)4 IPartitioner (org.apache.cassandra.dht.IPartitioner)4 FastByteArrayInputStream (org.apache.cassandra.io.util.FastByteArrayInputStream)4 Test (org.junit.Test)4 ByteArrayOutputStream (java.io.ByteArrayOutputStream)3 InputStream (java.io.InputStream)3 ByteBuffer (java.nio.ByteBuffer)3 AtomicReference (java.util.concurrent.atomic.AtomicReference)3 QueryPath (org.apache.cassandra.db.filter.QueryPath)3 CorruptSSTableException (org.apache.cassandra.io.sstable.CorruptSSTableException)3 SSTableReader (org.apache.cassandra.io.sstable.format.SSTableReader)3