Example usage for java.io ByteArrayInputStream available

List of usage examples for java.io ByteArrayInputStream available

Introduction

In this page you can find the example usage for java.io ByteArrayInputStream available.

Prototype

public synchronized int available() 

Source Link

Document

Returns the number of remaining bytes that can be read (or skipped over) from this input stream.

Usage

From source file:org.accada.epcis.repository.query.QuerySubscription.java

/**
 * Updates the subscription in the database. This is required in order to
 * correctly re-initialize the subscriptions, especially the
 * lastTimeExecuted field, after a context restart.
 * <p>//ww  w  .ja  v a 2  s  .  c o  m
 * TODO: This is a back-end method: move this method to the
 * QueryOperationsBackend and delegate to it (thus we would need a reference
 * to the QueryOperationsBackend in this class).
 * 
 * @param lastTimeExecuted
 *            The new lastTimeExecuted.
 */
private void updateSubscription(final GregorianCalendar lastTimeExecuted) {
    String jndiName = getProperties().getProperty("jndi.datasource.name", "java:comp/env/jdbc/EPCISDB");
    try {
        // open a database connection
        Context ctx = new InitialContext();
        DataSource db = (DataSource) ctx.lookup(jndiName);
        Connection dbconnection = db.getConnection();

        // update the subscription in the database
        String update = "UPDATE subscription SET lastexecuted=(?), params=(?)" + " WHERE subscriptionid=(?);";
        PreparedStatement stmt = dbconnection.prepareStatement(update);
        LOG.debug("SQL: " + update);
        Timestamp ts = new Timestamp(lastTimeExecuted.getTimeInMillis());
        String time = ts.toString();
        stmt.setString(1, time);
        LOG.debug("       query param 1: " + time);
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        ObjectOutput out = new ObjectOutputStream(outStream);
        out.writeObject(queryParams);
        ByteArrayInputStream inStream = new ByteArrayInputStream(outStream.toByteArray());
        stmt.setBinaryStream(2, inStream, inStream.available());
        LOG.debug("       query param 2: [" + inStream.available() + " bytes]");
        stmt.setString(3, subscriptionID);
        LOG.debug("       query param 3: " + subscriptionID);
        stmt.executeUpdate();

        // close the database connection
        dbconnection.close();
    } catch (SQLException e) {
        String msg = "An SQL error occurred while updating the subscriptions in the database.";
        LOG.error(msg, e);
    } catch (IOException e) {
        String msg = "Unable to update the subscription in the database: " + e.getMessage();
        LOG.error(msg, e);
    } catch (NamingException e) {
        String msg = "Unable to find JNDI data source with name " + jndiName;
        LOG.error(msg, e);
    }
}

From source file:org.jets3t.service.model.S3Object.java

/**
 * Create an object representing text data. The object is initialized with the given
 * key, the given string as its data content (encoded as UTF-8), a content type of 
 * <code>text/plain; charset=utf-8</code>, and a content length matching the 
 * string's length./* www .j  a va  2s  .co  m*/
 * The given string's MD5 hash value is also calculated and provided to S3, so the service
 * can verify that no data are corrupted in transit.
 * 
 * @param bucket
 * the bucket the object belongs to, or will be placed in.
 * @param key
 * the key name for the object.
 * @param dataString
 * the text data the object will contain. Text data will be encoded as UTF-8. 
 * This string cannot be null.
 * 
 * @throws IOException 
 * @throws NoSuchAlgorithmException when this JRE doesn't support the MD5 hash algorithm 
 */
public S3Object(S3Bucket bucket, String key, String dataString) throws NoSuchAlgorithmException, IOException {
    this(bucket, key);
    ByteArrayInputStream bais = new ByteArrayInputStream(dataString.getBytes(Constants.DEFAULT_ENCODING));
    setDataInputStream(bais);
    setContentLength(bais.available());
    setContentType("text/plain; charset=utf-8");
    setMd5Hash(ServiceUtils.computeMD5Hash(dataString.getBytes(Constants.DEFAULT_ENCODING)));
}

From source file:org.jets3t.service.model.StorageObject.java

/**
 * Create an object representing binary data. The object is initialized with the given
 * key, the bytes as its data content, a content type of
 * <code>application/octet-stream</code>, and a content length matching the
 * byte array's length./* ww w . j a v a 2s. c o m*/
 * The MD5 hash value of the byte data is also calculated and provided to the target
 * service, so the service can verify that no data are corrupted in transit.
 *
 * @param key
 * the key name for the object.
 * @param data
 * the byte data the object will contain, cannot be null.
 *
 * @throws IOException
 * @throws NoSuchAlgorithmException when this JRE doesn't support the MD5 hash algorithm
 */
public StorageObject(String key, byte[] data) throws NoSuchAlgorithmException, IOException {
    this(key);
    ByteArrayInputStream bais = new ByteArrayInputStream(data);
    setDataInputStream(bais);
    setContentLength(bais.available());
    setContentType(Mimetypes.MIMETYPE_OCTET_STREAM);
    setMd5Hash(ServiceUtils.computeMD5Hash(data));
}

From source file:org.jopenray.util.PacketAnalyser.java

public static void decode(PrintStream out, byte[] udpData) throws IOException {
    boolean dump = false;
    ByteArrayInputStream bIn = new ByteArrayInputStream(udpData);
    int r = readInt16(bIn);
    if (r == 1) {
        out.println("===================================================================================");
    }/* w w  w  .  j a v a  2s.  c o m*/
    out.print("Seq number:" + r);
    int flag = readInt16(bIn);
    out.print(" Flag:" + flag);
    int type = readInt16(bIn);
    out.print(" Type:" + type);
    int dir = readInt16(bIn);
    out.println(" Dir:" + dir + " dataSize:" + udpData.length);
    if (dir == 0) {
        // Server -> Sunray
        int a = readInt16(bIn);
        int b = readInt16(bIn);
        int c = readInt16(bIn);
        int d = readInt16(bIn);
        out.println("Server -> Sunray:" + a + "," + b + "," + c + "," + d);

        while (bIn.available() > 0) {
            String opCodeHeader = "";
            int opcode = bIn.read();
            opCodeHeader += "[ Opcode: " + opcode;
            int f = bIn.read();
            opCodeHeader += " Flag" + f;
            int oseq = readInt16(bIn);
            opCodeHeader += " OpcodeSeq:" + oseq;
            int x = readInt16(bIn);
            int y = readInt16(bIn);

            int w = readInt16(bIn);
            int h = readInt16(bIn);

            opCodeHeader += " x,y: " + x + "," + y + " w:" + w + " h:" + h + " ]";
            if (opcode != 0xB1) {
                return;
            }
            switch (opcode) {
            case 0x03:
                out.println("0x03 Strange opcode " + opCodeHeader);
                break;
            case 0xA1:
                int ap1 = bIn.read();
                int ap2 = bIn.read();
                int ap3 = bIn.read();
                int ap4 = bIn.read();
                out.println("0xA1:" + ap1 + "," + ap2 + "," + ap3 + "," + ap4 + opCodeHeader);
                break;
            case 0xA2:
                // out.println("FillRect");
                int a2p1 = bIn.read();
                int a2p2 = bIn.read();
                int a2p3 = bIn.read();
                int a2p4 = bIn.read();
                out.println("FillRect: Color:" + a2p1 + "," + a2p2 + "," + a2p3 + "," + a2p4 + opCodeHeader);
                break;
            case 0xA3: {

                int a3p1 = bIn.read();
                int a3p2 = bIn.read();
                int a3p3 = bIn.read();
                int a3p4 = bIn.read();
                int nbBytesPerRow = round(w, 8) / 8;
                int nbBytes = round(nbBytesPerRow * h, 4);
                byte[] unkuonw = new byte[nbBytes];
                try {
                    int lRead = bIn.read(unkuonw);
                    out.println("FillRectBitmap: Color:" + a3p1 + "," + a3p2 + "," + a3p3 + "," + a3p4
                            + " | bytes/row:" + nbBytesPerRow + "l:" + nbBytes + " lRead:" + lRead
                            + opCodeHeader);

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                break;
            }
            case 0xA4:
                int xsrc = readInt16(bIn);
                int ysrc = readInt16(bIn);
                out.println("CopyRect from : " + xsrc + "," + ysrc + opCodeHeader);

                break;
            case 0xA5: {
                // out.println("SetRectBitmap");
                // err.println("SetRectBitmap not yet implemented");
                try {
                    Color c1 = readColor(bIn);
                    Color c2 = readColor(bIn);
                    int nbBytesPerRow = round(w, 8) / 8;
                    int nbBytes = round(nbBytesPerRow * h, 4);
                    byte[] unkuonw = new byte[nbBytes];

                    int lRead = bIn.read(unkuonw);

                    out.println("SetRectBitmap: " + w + "x" + h + " at " + x + "," + y + " Color:" + c1 + " / "
                            + c2 + " | bytes/row:" + nbBytesPerRow + " l:" + nbBytes + " lRead:" + lRead
                            + opCodeHeader);
                    if (nbBytes > 1024) {
                        out.println("! data too long:" + nbBytes);
                    } else {
                        HexDump.dump(unkuonw, 0, System.err, 0);
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    dump = true;
                }

                break;
            }
            case 0xA6: {

                out.println("SetRect:" + opCodeHeader);
                int nbBytesPerRow = round(w * 3, 4);
                int nbBytes = round(nbBytesPerRow * h, 4);
                // int nbBytes=w*h;
                if (nbBytes > 1000000) {
                    System.out.println("Bad length:" + nbBytes);
                } else {
                    byte[] colors = new byte[nbBytes];

                    int lRead = bIn.read(colors);
                    if (lRead != nbBytes) {
                        System.out.println("Bad length:" + nbBytes + " != " + lRead);
                    }
                    // colors contains colors (r,g,b)
                }
                break;
            }
            case 0xA8: {
                int xbound = readInt16(bIn);
                int ybound = readInt16(bIn);
                int wbound = readInt16(bIn);
                int hbound = readInt16(bIn);
                out.println("SetMouseBound to: " + xbound + "," + ybound + " w:" + wbound + " h:" + hbound + " "
                        + opCodeHeader + opCodeHeader);

                break;
            }
            case 0xA9: {

                Color c1 = readColor(bIn);
                Color c2 = readColor(bIn);
                out.println("SetMousePointer pos:" + x + "," + y + " size:" + w + "x" + h + " Color:" + c1
                        + " , " + c2 + opCodeHeader);
                int l = (w * h) / 8;
                byte[] b1 = new byte[l];
                bIn.read(b1);
                out.println("Bitmap");
                // printBits(w, h, b1);

                byte[] b2 = new byte[l];
                bIn.read(b2);
                out.println("Mask");
                // printBits(w, h, b2);
                break;
            }
            case 0xAA:
                int aap1 = bIn.read();
                int aap2 = bIn.read();
                int aap3 = bIn.read();
                int aap4 = bIn.read();
                out.println("SetMousePosition: " + aap1 + "," + aap2 + "," + aap3 + "," + aap4 + opCodeHeader);
                break;
            case 0xAB:
                int ab1 = readInt16(bIn);
                int ab2 = readInt16(bIn);
                out.println("SetKeyLock: " + ab1 + " " + ab2 + opCodeHeader);

                break;
            case 0xAC:

                int ac1 = readInt16(bIn);
                int ac2 = readInt16(bIn);
                int ac3 = readInt16(bIn);
                int ac4 = readInt16(bIn);
                out.println(
                        "0xAC : " + ac1 + " , " + ac2 + "," + ac3 + " , " + ac4 + opCodeHeader + opCodeHeader);
                break;
            case 0xAD:
                out.println("0xAD" + opCodeHeader);

                int l = readInt16(bIn);
                // l = (l & 0xfffc) + 2;

                out.println("l: " + l);
                out.println("(l & 0xfffc) + 2 :" + (l & 0xfffc) + 2);
                byte[] unkuonwn = new byte[l];
                dump = true;
                try {
                    int lRead = bIn.read(unkuonwn);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                break;
            case 0xAF: {

                int p1 = bIn.read();
                int p2 = bIn.read();
                int p3 = bIn.read();
                int p4 = bIn.read();
                for (int i = 0; i < 8; i++) {
                    bIn.read();
                }
                if (p1 != 255 && p2 != 255 && p3 != 255 && p4 != 255) {
                    out.println("PAD:" + p1 + "," + p2 + "," + p3 + "," + p4 + opCodeHeader);
                } else {
                    out.println("PAD " + opCodeHeader);
                }
                break;
            }
            case 0xB1:

                out.println("AUDIO:" + r + "|" + flag + "|" + type + "|" + dir + " l:" + udpData.length + " "
                        + opCodeHeader);
                outTest.print("AUDIO:" + r + "|" + flag + "|" + type + "|" + dir + " " + opCodeHeader);
                /*
                 * int xbound = readInt16(bIn); int ybound = readInt16(bIn);
                 * int wbound = readInt16(bIn); int hbound = readInt16(bIn);
                 * out.println(" to: " + xbound + "," + ybound + " w:" +
                 * wbound + " h:" + hbound + " " + opCodeHeader +
                 * opCodeHeader); dump=true;
                 */

                int v1 = 0;
                int v2 = 0;
                int totalv1et2 = 0;
                int bigTotal = 0;
                while (bIn.available() >= 0) {
                    int b1 = bIn.read();
                    int b2 = bIn.read();
                    if (b1 == -1 && b2 == -1) {
                        outTest.print(totalv1et2 + " : big total: " + bigTotal);
                        break;
                    }
                    soundOut.write(b2);
                    soundOut.write(b1);

                    if (b1 == 0x7F && b2 == 0xFF) {
                        v1++;
                        bigTotal++;
                        totalv1et2++;
                        if (v2 > 0)
                            out.println("v2=" + v2);
                        v2 = 0;
                    } else if (b1 == 0x80 && b2 == 0x01) {
                        v2++;
                        totalv1et2++;
                        bigTotal++;
                        if (v1 > 0)
                            out.println("v1=" + v1);
                        v1 = 0;
                    } else {
                        if (v2 > 0)
                            out.println("v2=" + v2);
                        if (v1 > 0)
                            out.println("v1=" + v1);
                        out.println("Unknwon:" + b1 + " et " + b2 + "[" + (b1 * 256 + b2) + "] total v1+v2:"
                                + totalv1et2);
                        if (totalv1et2 > 0)
                            outTest.print(totalv1et2 + ",");
                        v1 = 0;
                        v2 = 0;
                        totalv1et2 = 0;
                    }
                    /*
                     * bIn.read(); bIn.read(); for (int j = 0; j < 8; j++) {
                     * for (int i = 0; i < 12; i++) {
                     * 
                     * int aaa1 = bIn.read(); int aaa2 = bIn.read(); if (i %
                     * 2 == 0) { soundOut.write(aaa2); soundOut.write(aaa1);
                     * } } }
                     */

                }
                outTest.println();

                break;
            case 0xD1:
                out.println("0xD1 " + opCodeHeader + opCodeHeader);
                break;
            case 0xD8:
                out.println("0xD8 " + opCodeHeader + opCodeHeader);
                break;
            case 0xB0: {
                out.println("0xB0 " + opCodeHeader + opCodeHeader);
                int p1 = readInt16(bIn);

                int p2 = readInt16(bIn);
                int p3 = readInt16(bIn);
                int nb = readInt16(bIn);
                out.println(p1 + " ; " + p2 + " ; " + p3);
                for (int i = 0; i < nb; i++) {
                    int xx = readInt16(bIn);
                    int yy = readInt16(bIn);
                    int ww = readInt16(bIn);
                    int hh = readInt16(bIn);
                    out.println("[" + xx + "," + yy + " " + ww + "x" + hh + "]");
                }
                break;
            }
            case 0xB4: {
                // ??
                out.println("0xB4 " + opCodeHeader + opCodeHeader);

                for (int i = 0; i < 19; i++) {
                    int p1 = readInt16(bIn);
                    out.print(p1 + ",");
                }
                int end = readInt16(bIn);
                out.println(end);
                break;
            }
            case 0xB9: {
                // ??
                out.println("0xB9 " + opCodeHeader + opCodeHeader);
                break;
            }
            case 0xBF: {
                int le = readInt16(bIn);
                out.println("0xBF " + le + " bytes " + opCodeHeader);

                byte[] unknown = new byte[le];

                try {
                    int lRead = bIn.read(unknown);
                    if (lRead != le) {
                        out.println("Bad length:" + lRead + " / " + le);
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                break;
            }
            default:
                out.println("Unknown opcode:" + opcode + opCodeHeader);
                dump = true;
                break;
            }
        }
    } else if (dir == 2000) {

        // Sunray -> Server
        int a = readInt16(bIn);
        int b = readInt16(bIn);
        int c = readInt16(bIn);
        int d = readInt16(bIn);
        out.println("Sunray -> Server:" + a + "," + b + "," + c + "," + d);

        while (bIn.available() > 0) {
            int opcode = bIn.read();
            int hdat = readInt16(bIn);
            int idat = bIn.read();
            String opCodeHeader = "";

            opCodeHeader += "[ Opcode: " + opcode + " , " + hdat + " ," + idat + " ]";
            switch (opcode) {
            case 0:
                out.println("Empty (keep alive?)");
                break;
            case 0xc1:

                int jdat = readInt16(bIn);
                int shift = readInt16(bIn);
                // 6 octet
                int key1 = bIn.read();
                int key2 = bIn.read();
                int key3 = bIn.read();
                int key4 = bIn.read();
                int key5 = bIn.read();
                int key6 = bIn.read();

                //
                int mdat = readInt16(bIn);
                out.println("Keyboard " + opCodeHeader + " " + jdat + " shift:" + shift + " keys:(" + key1 + ","
                        + key2 + "," + key3 + "," + key4 + "," + key5 + "," + key6 + ") " + mdat);
                break;
            case 0xc2:
                int buttons = readInt16(bIn);
                int mouseX = readInt16(bIn);
                int mouseY = readInt16(bIn);
                int c2 = readInt16(bIn);
                out.println("Mouse" + opCodeHeader + " buttons:" + buttons + " (" + mouseX + "," + mouseY + ")"
                        + c2);
                break;
            case 0xc4:
                int c41 = readInt32(bIn);
                int c42 = readInt32(bIn);
                int c43 = readInt32(bIn);

                out.println("NACK " + c41 + "," + c42 + "," + c43);

                break;
            case 0xc5:
                int c51 = bIn.read();
                int c52 = bIn.read();
                int c53 = bIn.read();
                int c54 = bIn.read();

                out.println("0xC5 " + opCodeHeader + " " + c51 + "," + c52 + "," + c53 + "," + c54);
                break;
            case 0xc6:
                int dataLength = readInt16(bIn);
                int stringLength = bIn.read();
                byte[] string = new byte[stringLength];

                try {
                    int rL = bIn.read(string);
                    out.println(dataLength + " , " + stringLength + " readLength" + rL);
                    out.println("Firmware: " + new String(string));
                    // dump = true;
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                break;
            case 0xc7: {
                int x1 = readInt16(bIn);
                int y1 = readInt16(bIn);
                int w1 = readInt16(bIn);
                int h1 = readInt16(bIn);
                int x2 = readInt16(bIn);
                int y2 = readInt16(bIn);
                int w2 = readInt16(bIn);
                int h2 = readInt16(bIn);
                int x3 = readInt16(bIn);
                int y3 = readInt16(bIn);
                int w3 = readInt16(bIn);
                int h3 = readInt16(bIn);
                out.println("Rect: " + opCodeHeader + " [" + x1 + "," + y1 + "," + w1 + "," + h1 + "][" + x2
                        + "," + y2 + "," + w2 + "," + h2 + "][" + x3 + "," + y3 + "," + w3 + "," + h3 + "]");

                break;

            }
            case 0xCA:
                int ca1 = readInt16(bIn);
                int ca2 = readInt16(bIn);
                int ca3 = readInt16(bIn);
                int ca4 = readInt16(bIn);
                int ca5 = readInt16(bIn);
                int ca6 = readInt16(bIn);

                out.println("0xCA " + opCodeHeader + " " + ca1 + "," + ca2 + "," + ca3 + "," + ca4 + "," + ca5
                        + "," + ca6);
                break;
            case 0xcb:
                int bc1 = bIn.read();
                int bc2 = readInt16(bIn);
                int bc3 = readInt16(bIn);
                int bc4 = readInt16(bIn);
                int bc5 = readInt16(bIn);
                int bc6 = readInt16(bIn);
                int bc7 = readInt16(bIn);
                int bc8 = readInt16(bIn);
                int bc9 = readInt16(bIn);
                int bc10 = readInt16(bIn);
                int bc11 = readInt16(bIn);
                out.println("0xCB " + opCodeHeader + " " + bc1 + "," + bc2 + "," + bc3 + "," + bc4 + "," + bc5
                        + "," + bc6 + "," + bc7 + "," + bc8 + "," + bc9 + "," + bc10 + "," + bc11);
                break;
            default:
                out.println("Unknown opcode: " + opCodeHeader);
                dump = true;
                break;
            }
        }
    } else {
        out.println("Unknown packet direction:" + dir);
        dump = true;
    }
    if (dump) {
        HexDump.dump(udpData, 0, System.err, 0);
    }
}

From source file:de.mycrobase.jcloudapp.Main.java

private void uploadStringFromClipboard(String s) {
    try {//from   w w w  .java2 s.c  om
        ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes("utf-8"));
        String filename = String.format("Snippet %s.txt", df.format(new Date()));

        setImageWorking();
        JSONObject drop = client
                .uploadFile(new CloudAppInputStream(bais, "text/plain", filename, bais.available()));
        String url = getDropUrl(drop);
        System.out.println("Upload complete, URL:\n" + url);
        setClipboard(url);
        icon.displayMessage("Upload finished", String.format("Item: %s", filename), TrayIcon.MessageType.INFO);
    } catch (IOException ex) {
        icon.displayMessage("Upload failed", ex.toString(), TrayIcon.MessageType.ERROR);
    } catch (CloudApiException ex) {
        icon.displayMessage("Upload failed", ex.toString(), TrayIcon.MessageType.ERROR);
    } finally {
        setImageNormal();
    }
}

From source file:org.jets3t.service.model.StorageObject.java

/**
 * Create an object representing text data. The object is initialized with the given
 * key, the given string as its data content (encoded as UTF-8), a content type of
 * <code>text/plain; charset=utf-8</code>, and a content length matching the
 * string's length.//  w  ww. j  a v  a 2 s.  c om
 * The given string's MD5 hash value is also calculated and provided to the target
 * service, so the service can verify that no data are corrupted in transit.
 * <p>
 * <b>NOTE:</b> The automatic calculation of the MD5 hash digest as performed by
 * this constructor could take some time for large strings, or for many small ones.
 *
 * @param key
 * the key name for the object.
 * @param dataString
 * the text data the object will contain. Text data will be encoded as UTF-8.
 * This string cannot be null.
 *
 * @throws IOException
 * @throws NoSuchAlgorithmException when this JRE doesn't support the MD5 hash algorithm
 */
public StorageObject(String key, String dataString) throws NoSuchAlgorithmException, IOException {
    this(key);
    ByteArrayInputStream bais = new ByteArrayInputStream(dataString.getBytes(Constants.DEFAULT_ENCODING));
    setDataInputStream(bais);
    setContentLength(bais.available());
    setContentType("text/plain; charset=utf-8");
    setMd5Hash(ServiceUtils.computeMD5Hash(dataString.getBytes(Constants.DEFAULT_ENCODING)));
}

From source file:net.sf.infrared.collector.impl.persistence.ApplicationStatisticsDaoImpl.java

private void insertTree(final String appName, final String hostName, final Tree tree) {
    byte[] byteArray = null;
    try {//www  .  j  av a  2s  . c  om
        ByteArrayOutputStream baos = serializeObject(tree);
        byteArray = baos.toByteArray();
    } catch (IOException e) {
        log.error("IOException : Unable to serialize the Aggregate Operation Tree Object");
    }
    final ByteArrayInputStream bais = new ByteArrayInputStream(byteArray);
    getJdbcTemplate().update(SQL_INSERT_TREE, new PreparedStatementSetter() {
        public void setValues(PreparedStatement ps) throws SQLException {
            ps.setString(1, appName);
            ps.setString(2, hostName);
            ps.setBinaryStream(3, bais, bais.available());
            ps.setTimestamp(4, new Timestamp(System.currentTimeMillis()));
        }
    });
}

From source file:fi.mikuz.boarder.gui.DropboxMenu.java

public void uploadFile(File localPath, String dropboxPath, final String baseInfo) {
    Log.v(SoundboardMenu.TAG, "Uploading " + dropboxPath);

    try {//from  ww  w . j  av a 2s . c om
        ByteArrayInputStream inputStream = new ByteArrayInputStream(
                IOUtils.toByteArray(new FileInputStream(localPath)));
        mApi.putFileOverwrite(dropboxPath, inputStream, inputStream.available(), new ProgressListener() {

            @Override
            public void onProgress(long bytes, long total) {
                mInfo = baseInfo + "\n";
                Log.v(TAG, "bytes " + bytes + " total " + total);
                mProgressValue = (int) (bytes * 100 / total);
                mHandler.post(mUpdateResults);
            }

        });
    } catch (FileNotFoundException e) {
        Log.e(TAG, "Unable to upload " + localPath, e);
    } catch (IOException e) {
        Log.e(TAG, "Unable to upload " + localPath, e);
    } catch (DropboxException e) {
        Log.e(TAG, "Unable to upload " + localPath, e);
    }
}

From source file:com.maverick.ssl.SSLHandshakeProtocol.java

void processMessage(byte[] fragment, int off, int len) throws SSLException {

    ByteArrayInputStream reader = new ByteArrayInputStream(fragment, off, len);

    // Update the handshake hashes
    updateHandshakeHashes(fragment);//w  ww  .  j av a  2 s. c  o  m

    while (reader.available() > 0 && !isComplete()) {

        int type = reader.read();

        int length = (reader.read() & 0xFF) << 16 | (reader.read() & 0xFF) << 8 | (reader.read() & 0xFF);

        // #ifdef DEBUG
        log.debug(MessageFormat.format(Messages.getString("SSLHandshakeProtocol.processingType"), //$NON-NLS-1$
                new Object[] { new Integer(type), new Long(length) }));
        // #endif

        byte[] msg = new byte[length];
        try {
            reader.read(msg);
        } catch (IOException ex) {
            throw new SSLException(SSLException.INTERNAL_ERROR,
                    ex.getMessage() == null ? ex.getClass().getName() : ex.getMessage());
        }

        switch (type) {
        case HELLO_REQUEST_MSG:

            // #ifdef DEBUG
            log.debug(Messages.getString("SSLHandshakeProtocol.receivedHELLO")); //$NON-NLS-1$
            // #endif
            /**
             * If we receive a hello request then a handshake must be
             * re-negotiated. But ignore it if were already performing a
             * handshake operation
             */
            if (currentHandshakeStep == HANDSHAKE_PENDING_OR_COMPLETE) {
                startHandshake();
            }
            break;

        case SERVER_HELLO_MSG:

            // #ifdef DEBUG
            log.debug(Messages.getString("SSLHandshakeProtocol.receivedServerHELLO")); //$NON-NLS-1$
            // #endif

            if (currentHandshakeStep != CLIENT_HELLO_MSG) {
                throw new SSLException(SSLException.PROTOCOL_VIOLATION,
                        MessageFormat.format(
                                Messages.getString("SSLHandshakeProtocol.receivedUnexpectedServerHello"), //$NON-NLS-1$
                                new Object[] { new Integer(currentHandshakeStep) }));
            }

            onServerHelloMsg(msg);
            break;

        case CERTIFICATE_MSG:

            // #ifdef DEBUG
            log.debug(Messages.getString("SSLHandshakeProtocol.receivedServerCertificate")); //$NON-NLS-1$
            // #endif

            if (currentHandshakeStep != SERVER_HELLO_MSG) {
                throw new SSLException(SSLException.PROTOCOL_VIOLATION,
                        MessageFormat.format(
                                Messages.getString("SSLHandshakeProtocol.unexpectedCertificateMessageReceived"), //$NON-NLS-1$
                                new Object[] { new Integer(currentHandshakeStep) }));
            }
            onCertificateMsg(msg);
            break;

        case KEY_EXCHANGE_MSG:

            // #ifdef DEBUG
            log.debug(Messages.getString("SSLHandshakeProtocol.receivedUnsupportedServerKEX")); //$NON-NLS-1$
            // #endif

            throw new SSLException(SSLException.UNSUPPORTED_OPERATION,
                    Messages.getString("SSLHandshakeProtocol.kexNotSupported")); //$NON-NLS-1$

        case CERTIFICATE_REQUEST_MSG:

            // #ifdef DEBUG
            log.debug(Messages.getString("SSLHandshakeProtocol.receivedUnsupportedClientCert")); //$NON-NLS-1$
            // #endif

            wantsClientAuth = true;
            break;

        case SERVER_HELLO_DONE_MSG:

            // #ifdef DEBUG
            log.debug(Messages.getString("SSLHandshakeProtocol.helloDone")); //$NON-NLS-1$
            // #endif

            if (currentHandshakeStep != CERTIFICATE_MSG) {
                throw new SSLException(SSLException.PROTOCOL_VIOLATION,
                        MessageFormat.format(
                                Messages.getString("SSLHandshakeProtocol.unexpectedServerHelloDone"), //$NON-NLS-1$
                                new Object[] { new Integer(currentHandshakeStep) }));
            }

            if (wantsClientAuth) {

                // #ifdef DEBUG
                log.debug(Messages.getString("SSLHandshakeProtocol.sendingNoCert")); //$NON-NLS-1$
                // #endif
                socket.sendMessage(SSLTransportImpl.ALERT_PROTOCOL, new byte[] {
                        (byte) SSLTransportImpl.WARNING_ALERT, (byte) SSLException.NO_CERTIFICATE });
            }
            onServerHelloDoneMsg();
            break;

        case FINISHED_MSG:

            // #ifdef DEBUG
            log.debug(Messages.getString("SSLHandshakeProtocol.receivedServerFinished")); //$NON-NLS-1$
            // #endif

            if (currentHandshakeStep != FINISHED_MSG) {
                throw new SSLException(SSLException.PROTOCOL_VIOLATION);
            }

            currentHandshakeStep = HANDSHAKE_PENDING_OR_COMPLETE;

            break;

        default:

        }
    }
}

From source file:com.maverick.ssl.SSLHandshakeProtocol.java

private void onCertificateMsg(byte[] msg) throws SSLException {

    ByteArrayInputStream in = new ByteArrayInputStream(msg);

    // Get the length of the certificate chain
    int length2 = (in.read() & 0xFF) << 16 | (in.read() & 0xFF) << 8 | (in.read() & 0xFF);

    try {//from w ww  .  j a  va  2s .c om

        boolean trusted = false;

        X509Certificate chainCert;
        while (in.available() > 0 && !trusted) {
            // The length of the next certificate (we dont need this as rthe
            // DERInputStream does the work
            int certlen = (in.read() & 0xFF) << 16 | (in.read() & 0xFF) << 8 | (in.read() & 0xFF);

            // Now read the certificate
            DERInputStream der = new DERInputStream(in);

            ASN1Sequence certificate = (ASN1Sequence) der.readObject();

            // Get the x509 certificate structure
            chainCert = new X509Certificate(X509CertificateStructure.getInstance(certificate));

            if (x509 == null)
                x509 = chainCert;

            // Verify if this part of the chain is trusted
            try {
                trusted = context.getTrustedCACerts().isTrustedCertificate(chainCert,
                        context.isInvalidCertificateAllowed(), context.isUntrustedCertificateAllowed());
            } catch (SSLException ex1) {
                // #ifdef DEBUG
                log.warn(Messages.getString("SSLHandshakeProtocol.failedToVerifyCertAgainstTruststore"), ex1); //$NON-NLS-1$
                // #endif
            }
        }

        if (!trusted)
            throw new SSLException(SSLException.BAD_CERTIFICATE,
                    Messages.getString("SSLHandshakeProtocol.certInvalidOrUntrusted")); //$NON-NLS-1$

    } catch (IOException ex) {
        throw new SSLException(SSLException.INTERNAL_ERROR, ex.getMessage());
    }

    // #ifdef DEBUG
    log.debug(Messages.getString("SSLHandshakeProtocol.x509Cert")); //$NON-NLS-1$

    log.debug(Messages.getString("SSLHandshakeProtocol.x509Cert.subject") + x509.getSubjectDN()); //$NON-NLS-1$

    log.debug(Messages.getString("SSLHandshakeProtocol.x509Cert.issuer") + x509.getIssuerDN()); //$NON-NLS-1$
    // #endif

    currentHandshakeStep = CERTIFICATE_MSG;

}