Bug Bytes

I've run into a problem. I just recently acquired a hand me down desk top. It's older but it works just fine and normally runs iTunes without an issue. Somehow this computer has contracted a virus that makes it so that no executable files can be run. My iPod is synched to this computer, so not being able to run iTunes causes a bit of difficulty. Is there any easy way of transferring my music from my comp to another while I'm nuking this one or will I have to just re-rip all my discs and all that?

Apple doesn’t routinely monitor the discussions.
Send Apple feedback. They won't answer, but at least will know there is a problem. If enough people send feedback, it may get the problem solved sooner.
Feedback
Or you can use your Apple ID to register with this site and go the Apple BugReporter. Supposedly you will get an answer if you submit feedback.
Feedback via Apple Developer

Similar Messages

  • Test Code Highlighting

    import javax.mail.*;
    import javax.mail.internet.*;
    import java.util.*;
      * A simple email sender class.
    public class MailTool
        * MAIN method to send a message given on the command line.
      public static void main(String args[])
        try
          String smtpServer=args[0];
          String to=args[1];
          String from=args[2];
          String subject=args[3];
          String body=args[4];
          send(smtpServer, to, from, subject, body);
        catch (Exception ex)
          System.out.println("Usage: java com.lotontech.mail.SimpleSender"
           +" smtpServer toAddress fromAddress subjectText bodyText");
        System.exit(0);
        * "send" method to send the message.
        public static void send(String smtpServer, String to, String from, String subject, String body) {
            try {
              Properties props = System.getProperties();
          // -- Attaching to default Session, or we could start a new one --
          // -- Could use Session.getTransport() and Transport.connect()
          // , but assume we're using SMTP --
          props.put("mail.smtp.host", smtpServer);
          Session session = Session.getDefaultInstance(props, null);
          // -- Create a new message --
          Message msg = new MimeMessage(session);
          // -- Set the FROM and TO fields --
          msg.setFrom(new InternetAddress(from));
          msg.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse(to, false));
          // -- We could include CC recipients too --
          // if (cc != null)
          // msg.setRecipients(Message.RecipientType.CC
          // ,InternetAddress.parse(cc, false));
          // -- Set the subject and body text --
          msg.setSubject(subject);
          msg.setText(body);
          // -- Set some other header information --
          msg.setHeader("X-Mailer", "LOTONtechEmail");
          msg.setSentDate(new Date());
          // -- Send the message --
          Transport.send(msg);
          System.out.println("Message sent OK.");
        catch (Exception ex)
          ex.printStackTrace();
    }

    import java.util.*;
    import java.security.*;
    * A class that provides easy Blowfish encryption.
    * @author Markus Hahn <[email protected]>
    public class Blowfish {
        private BlowfishCBC m_bfish;
        private static Random m_rndGen = new Random();
         * Creates a new Blowfish object using the specified key (oversized
         * password will be cut).
         * @param password the password (treated as a real unicode array)
        public Blowfish(String password)
            // hash down the password to a 160bit key
            MessageDigest digest = null;
            try {
                digest = MessageDigest.getInstance("SHA1");
                digest.update(password.getBytes());
            catch (Exception e) {
                e.printStackTrace();
            // setup the encryptor (use a dummy IV)
            m_bfish = new BlowfishCBC(digest.digest(), 0);
            digest.reset();
         * encrypts a string (treated in UNICODE) using the
         * standard Java random generator, which isn't that
         * great for creating IVs
         * @param sPlainText string to encrypt
         * @return encrypted string in binhex format
        public String encryptString(String sPlainText)
            // get the IV
            long lCBCIV;
            synchronized (m_rndGen)
                lCBCIV = m_rndGen.nextLong();
            // map the call;
            return encStr(sPlainText, lCBCIV);
         * encrypts a string (treated in UNICODE)
         * @param sPlainText string to encrypt
         * @param rndGen random generator (usually a java.security.SecureRandom instance)
         * @return encrypted string in binhex format
        private String encryptString(String sPlainText,
                                    Random rndGen)
            // get the IV
            long lCBCIV = rndGen.nextLong();
            // map the call;
            return encStr(sPlainText, lCBCIV);
        // internal routine for string encryption
        private String encStr(String sPlainText,
                              long lNewCBCIV)
            // allocate the buffer (align to the next 8 byte border plus padding)
            int nStrLen = sPlainText.length();
            byte[] buf = new byte [((nStrLen << 1) & 0xfffffff8) + 8];
            // copy all bytes of the string into the buffer (use network byte order)
            int nI;
            int nPos = 0;
            for (nI = 0; nI < nStrLen; nI++)
                char cActChar = sPlainText.charAt(nI);
                buf[nPos++] = (byte) ((cActChar >> 8) & 0x0ff);
                buf[nPos++] = (byte) (cActChar & 0x0ff) ;
            // pad the rest with the PKCS5 scheme
            byte bPadVal = (byte)(buf.length - (nStrLen << 1));
            while (nPos < buf.length)
                buf[nPos++] = bPadVal;
            // create the encryptor
            m_bfish.setCBCIV(lNewCBCIV);
            // encrypt the buffer
            m_bfish.encrypt(buf);
            // return the binhex string
            byte[] newCBCIV = new byte[BlowfishCBC.BLOCKSIZE];
            longToByteArray(lNewCBCIV,
                    newCBCIV,
                    0);
            return bytesToBinHex(newCBCIV, 0, BlowfishCBC.BLOCKSIZE) +
                    bytesToBinHex(buf, 0, buf.length);
         * decrypts a hexbin string (handling is case sensitive)
         * @param sCipherText hexbin string to decrypt
         * @return decrypted string (null equals an error)
        public String decryptString(String sCipherText)
            // get the number of estimated bytes in the string (cut off broken blocks)
            int nLen = (sCipherText.length() >> 1) & ~7;
            // does the given stuff make sense (at least the CBC IV)?
            if (nLen < BlowfishECB.BLOCKSIZE)
                return null;
            // get the CBC IV
            byte[] cbciv = new byte[BlowfishCBC.BLOCKSIZE];
            int nNumOfBytes = binHexToBytes(sCipherText,
                    cbciv,
                    0,
                    0,
                    BlowfishCBC.BLOCKSIZE);
            if (nNumOfBytes < BlowfishCBC.BLOCKSIZE)
                return null;
            // (got it)
            m_bfish.setCBCIV(cbciv);
            // something left to decrypt?
            nLen -= BlowfishCBC.BLOCKSIZE;
            if (nLen == 0)
                return "";
            // get all data bytes now
            byte[] buf = new byte[nLen];
            nNumOfBytes = binHexToBytes(sCipherText,
                    buf,
                    BlowfishCBC.BLOCKSIZE * 2,
                    0,
                    nLen);
            // we cannot accept broken binhex sequences due to padding
            // and decryption
            if (nNumOfBytes < nLen)
                return null;
            // decrypt the buffer
            m_bfish.decrypt(buf);
            // get the last padding byte
            int nPadByte = (int)buf[buf.length - 1] & 0x0ff;
            // ( try to get all information if the padding doesn't seem to be correct)
            if ((nPadByte > 8) || (nPadByte < 0))
                nPadByte = 0;
            // calculate the real size of this message
            nNumOfBytes -= nPadByte;
            if (nNumOfBytes < 0)
                return "";
            // success
            return byteArrayToUNCString(buf, 0, nNumOfBytes);
         * destroys (clears) the encryption engine,
         * after that the instance is not valid anymore
        public void destroy()
            m_bfish.cleanUp();
         * implementation of the Blowfish encryption algorithm in ECB mode
         * @author Markus Hahn <[email protected]>
         * @version Feburary 14, 2001
        private static class BlowfishECB
            /** maximum possible key length */
            public final static int MAXKEYLENGTH = 56;
            /** block size of this cipher (in bytes) */
            public final static int BLOCKSIZE = 8;
            // size of the single boxes
            final static int PBOX_ENTRIES = 18;
            final static int SBOX_ENTRIES = 256;
            // the boxes
            int[] m_pbox;
            int[] m_sbox1;
            int[] m_sbox2;
            int[] m_sbox3;
            int[] m_sbox4;
             * default constructor
             * @param bfkey key material, up to MAXKEYLENGTH bytes
            public BlowfishECB(byte[] bfkey)
                // create the boxes
                int nI;
                m_pbox = new int[PBOX_ENTRIES];
                for (nI = 0; nI < PBOX_ENTRIES; nI++)
                    m_pbox[nI] = pbox_init[nI];
                m_sbox1 = new int[SBOX_ENTRIES];
                m_sbox2 = new int[SBOX_ENTRIES];
                m_sbox3 = new int[SBOX_ENTRIES];
                m_sbox4 = new int[SBOX_ENTRIES];
                for (nI = 0; nI < SBOX_ENTRIES; nI++)
                    m_sbox1[nI] = sbox_init_1[nI];
                    m_sbox2[nI] = sbox_init_2[nI];
                    m_sbox3[nI] = sbox_init_3[nI];
                    m_sbox4[nI] = sbox_init_4[nI];
                // xor the key over the p-boxes
                int nLen = bfkey.length;
                if (nLen == 0) return; // such a setup is also valid (zero key "encryption" is possible)
                int nKeyPos = 0;
                int nBuild = 0;
                int nJ;
                for (nI = 0; nI < PBOX_ENTRIES; nI++)
                    for (nJ = 0; nJ < 4; nJ++)
                        nBuild = (nBuild << 8) | (((int) bfkey[nKeyPos]) & 0x0ff);
                        if (++nKeyPos == nLen)
                            nKeyPos = 0;
                    m_pbox[nI] ^= nBuild;
                // encrypt all boxes with the all zero string
                long lZero = 0;
                // (same as above)
                for (nI = 0; nI < PBOX_ENTRIES; nI += 2)
                    lZero = encryptBlock(lZero);
                    m_pbox[nI] = (int) (lZero >>> 32);
                    m_pbox[nI+1] = (int) (lZero & 0x0ffffffffL);
                for (nI = 0; nI < SBOX_ENTRIES; nI += 2)
                    lZero = encryptBlock(lZero);
                    m_sbox1[nI] = (int) (lZero >>> 32);
                    m_sbox1[nI+1] = (int) (lZero & 0x0ffffffffL);
                for (nI = 0; nI < SBOX_ENTRIES; nI += 2)
                    lZero = encryptBlock(lZero);
                    m_sbox2[nI] = (int) (lZero >>> 32);
                    m_sbox2[nI+1] = (int) (lZero & 0x0ffffffffL);
                for (nI = 0; nI < SBOX_ENTRIES; nI += 2)
                    lZero = encryptBlock(lZero);
                    m_sbox3[nI] = (int) (lZero >>> 32);
                    m_sbox3[nI+1] = (int) (lZero & 0x0ffffffffL);
                for (nI = 0; nI < SBOX_ENTRIES; nI += 2)
                    lZero = encryptBlock(lZero);
                    m_sbox4[nI] = (int) (lZero >>> 32);
                    m_sbox4[nI+1] = (int) (lZero & 0x0ffffffffL);
             * to clear data in the boxes before an instance is freed
            public void cleanUp()
                int nI;
                for (nI = 0; nI < PBOX_ENTRIES; nI++)
                    m_pbox[nI] = 0;
                for (nI = 0; nI < SBOX_ENTRIES; nI++)
                    m_sbox1[nI] = m_sbox2[nI] = m_sbox3[nI] = m_sbox4[nI] = 0;
             * selftest routine, to check e.g. for a valid class file transmission
             * @return true: selftest passed / false: selftest failed
            public static boolean selfTest()
                // test vector #1 (checking for the "signed bug")
                byte[] testKey1 = { (byte) 0x1c, (byte) 0x58, (byte) 0x7f, (byte) 0x1c,
                                    (byte) 0x13, (byte) 0x92, (byte) 0x4f, (byte) 0xef };
                int[] tv_p1 = { 0x30553228, 0x6d6f295a };
                int[] tv_c1 = { 0x55cb3774, 0xd13ef201 };
                int[] tv_t1 = new int[2];
                // test vector #2 (offical vector by Bruce Schneier)
                String sTestKey2 = "Who is John Galt?";
                byte[] testKey2 = sTestKey2.getBytes();
                int[] tv_p2 = { 0xfedcba98, 0x76543210 };
                int[] tv_c2 = { 0xcc91732b, 0x8022f684 };
                int[] tv_t2 = new int[2];
                // start the tests, check for a proper decryption, too
                BlowfishECB testbf1 = new BlowfishECB(testKey1);
                testbf1.encrypt(tv_p1, tv_t1);
                if ((tv_t1[0] != tv_c1[0]) ||
                        (tv_t1[1] != tv_c1[1]))
                    return false;
                testbf1.decrypt(tv_t1);
                if ((tv_t1[0] != tv_p1[0]) ||
                        (tv_t1[1] != tv_p1[1]))
                    return false;
                BlowfishECB testbf2 = new BlowfishECB(testKey2);
                testbf2.encrypt(tv_p2, tv_t2);
                if ((tv_t2[0] != tv_c2[0]) ||
                        (tv_t2[1] != tv_c2[1]))
                    return false;
                testbf2.decrypt(tv_t2);
                if ((tv_t2[0] != tv_p2[0]) ||
                        (tv_t2[1] != tv_p2[1]))
                    return false;
                // all tests passed
                return true;
            // internal routine to encrypt a 64bit block
            protected long encryptBlock(long lPlainBlock)
                // split the block in two 32 bit halves
                int nHi = longHi32(lPlainBlock);
                int nLo = longLo32(lPlainBlock);
                // encrypt the block, gain more speed by unrooling the loop
                // (we avoid swapping by using nHi and nLo alternating at
                // odd an even loop nubers) and using local references
                int[] sbox1 = m_sbox1;
                int[] sbox2 = m_sbox2;
                int[] sbox3 = m_sbox3;
                int[] sbox4 = m_sbox4;
                int[] pbox = m_pbox;
                nHi ^= pbox[0];
                nLo ^= (((sbox1[nHi >>> 24] + sbox2[(nHi >>> 16) & 0x0ff]) ^ sbox3[(nHi >>> 8) & 0x0ff]) + sbox4[nHi & 0x0ff]) ^ pbox[1];
                nHi ^= (((sbox1[nLo >>> 24] + sbox2[(nLo >>> 16) & 0x0ff]) ^ sbox3[(nLo >>> 8) & 0x0ff]) + sbox4[nLo & 0x0ff]) ^ pbox[2];
                nLo ^= (((sbox1[nHi >>> 24] + sbox2[(nHi >>> 16) & 0x0ff]) ^ sbox3[(nHi >>> 8) & 0x0ff]) + sbox4[nHi & 0x0ff]) ^ pbox[3];
                nHi ^= (((sbox1[nLo >>> 24] + sbox2[(nLo >>> 16) & 0x0ff]) ^ sbox3[(nLo >>> 8) & 0x0ff]) + sbox4[nLo & 0x0ff]) ^ pbox[4];
                nLo ^= (((sbox1[nHi >>> 24] + sbox2[(nHi >>> 16) & 0x0ff]) ^ sbox3[(nHi >>> 8) & 0x0ff]) + sbox4[nHi & 0x0ff]) ^ pbox[5];
                nHi ^= (((sbox1[nLo >>> 24] + sbox2[(nLo >>> 16) & 0x0ff]) ^ sbox3[(nLo >>> 8) & 0x0ff]) + sbox4[nLo & 0x0ff]) ^ pbox[6];
                nLo ^= (((sbox1[nHi >>> 24] + sbox2[(nHi >>> 16) & 0x0ff]) ^ sbox3[(nHi >>> 8) & 0x0ff]) + sbox4[nHi & 0x0ff]) ^ pbox[7];
                nHi ^= (((sbox1[nLo >>> 24] + sbox2[(nLo >>> 16) & 0x0ff]) ^ sbox3[(nLo >>> 8) & 0x0ff]) + sbox4[nLo & 0x0ff]) ^ pbox[8];
                nLo ^= (((sbox1[nHi >>> 24] + sbox2[(nHi >>> 16) & 0x0ff]) ^ sbox3[(nHi >>> 8) & 0x0ff]) + sbox4[nHi & 0x0ff]) ^ pbox[9];
                nHi ^= (((sbox1[nLo >>> 24] + sbox2[(nLo >>> 16) & 0x0ff]) ^ sbox3[(nLo >>> 8) & 0x0ff]) + sbox4[nLo & 0x0ff]) ^ pbox[10];
                nLo ^= (((sbox1[nHi >>> 24] + sbox2[(nHi >>> 16) & 0x0ff]) ^ sbox3[(nHi >>> 8) & 0x0ff]) + sbox4[nHi & 0x0ff]) ^ pbox[11];
                nHi ^= (((sbox1[nLo >>> 24] + sbox2[(nLo >>> 16) & 0x0ff]) ^ sbox3[(nLo >>> 8) & 0x0ff]) + sbox4[nLo & 0x0ff]) ^ pbox[12];
                nLo ^= (((sbox1[nHi >>> 24] + sbox2[(nHi >>> 16) & 0x0ff]) ^ sbox3[(nHi >>> 8) & 0x0ff]) + sbox4[nHi & 0x0ff]) ^ pbox[13];
                nHi ^= (((sbox1[nLo >>> 24] + sbox2[(nLo >>> 16) & 0x0ff]) ^ sbox3[(nLo >>> 8) & 0x0ff]) + sbox4[nLo & 0x0ff]) ^ pbox[14];
                nLo ^= (((sbox1[nHi >>> 24] + sbox2[(nHi >>> 16) & 0x0ff]) ^ sbox3[(nHi >>> 8) & 0x0ff]) + sbox4[nHi & 0x0ff]) ^ pbox[15];
                nHi ^= (((sbox1[nLo >>> 24] + sbox2[(nLo >>> 16) & 0x0ff]) ^ sbox3[(nLo >>> 8) & 0x0ff]) + sbox4[nLo & 0x0ff]) ^ pbox[16];
                // finalize, cross and return the reassembled block
                return makeLong(nHi, nLo ^ pbox[17]);
            // internal routine to decrypt a 64bit block
            protected long decryptBlock(long lCipherBlock)
                // (same as above)
                int nHi = longHi32(lCipherBlock);
                int nLo = longLo32(lCipherBlock);
                //int[] sbox1 = m_sbox1;
                //int[] sbox2 = m_sbox2;
                //int[] sbox3 = m_sbox3;
                //int[] sbox4 = m_sbox4;
                //int[] pbox = m_pbox;
                nHi ^= m_pbox[17];
                nLo ^= (((m_sbox1[nHi >>> 24] + m_sbox2[(nHi >>> 16) & 0x0ff]) ^ m_sbox3[(nHi >>> 8) & 0x0ff]) + m_sbox4[nHi & 0x0ff]) ^ m_pbox[16];
                nHi ^= (((m_sbox1[nLo >>> 24] + m_sbox2[(nLo >>> 16) & 0x0ff]) ^ m_sbox3[(nLo >>> 8) & 0x0ff]) + m_sbox4[nLo & 0x0ff]) ^ m_pbox[15];
                nLo ^= (((m_sbox1[nHi >>> 24] + m_sbox2[(nHi >>> 16) & 0x0ff]) ^ m_sbox3[(nHi >>> 8) & 0x0ff]) + m_sbox4[nHi & 0x0ff]) ^ m_pbox[14];
                nHi ^= (((m_sbox1[nLo >>> 24] + m_sbox2[(nLo >>> 16) & 0x0ff]) ^ m_sbox3[(nLo >>> 8) & 0x0ff]) + m_sbox4[nLo & 0x0ff]) ^ m_pbox[13];
                nLo ^= (((m_sbox1[nHi >>> 24] + m_sbox2[(nHi >>> 16) & 0x0ff]) ^ m_sbox3[(nHi >>> 8) & 0x0ff]) + m_sbox4[nHi & 0x0ff]) ^ m_pbox[12];
                nHi ^= (((m_sbox1[nLo >>> 24] + m_sbox2[(nLo >>> 16) & 0x0ff]) ^ m_sbox3[(nLo >>> 8) & 0x0ff]) + m_sbox4[nLo & 0x0ff]) ^ m_pbox[11];
                nLo ^= (((m_sbox1[nHi >>> 24] + m_sbox2[(nHi >>> 16) & 0x0ff]) ^ m_sbox3[(nHi >>> 8) & 0x0ff]) + m_sbox4[nHi & 0x0ff]) ^ m_pbox[10];
                nHi ^= (((m_sbox1[nLo >>> 24] + m_sbox2[(nLo >>> 16) & 0x0ff]) ^ m_sbox3[(nLo >>> 8) & 0x0ff]) + m_sbox4[nLo & 0x0ff]) ^ m_pbox[9];
                nLo ^= (((m_sbox1[nHi >>> 24] + m_sbox2[(nHi >>> 16) & 0x0ff]) ^ m_sbox3[(nHi >>> 8) & 0x0ff]) + m_sbox4[nHi & 0x0ff]) ^ m_pbox[8];
                nHi ^= (((m_sbox1[nLo >>> 24] + m_sbox2[(nLo >>> 16) & 0x0ff]) ^ m_sbox3[(nLo >>> 8) & 0x0ff]) + m_sbox4[nLo & 0x0ff]) ^ m_pbox[7];
                nLo ^= (((m_sbox1[nHi >>> 24] + m_sbox2[(nHi >>> 16) & 0x0ff]) ^ m_sbox3[(nHi >>> 8) & 0x0ff]) + m_sbox4[nHi & 0x0ff]) ^ m_pbox[6];
                nHi ^= (((m_sbox1[nLo >>> 24] + m_sbox2[(nLo >>> 16) & 0x0ff]) ^ m_sbox3[(nLo >>> 8) & 0x0ff]) + m_sbox4[nLo & 0x0ff]) ^ m_pbox[5];
                nLo ^= (((m_sbox1[nHi >>> 24] + m_sbox2[(nHi >>> 16) & 0x0ff]) ^ m_sbox3[(nHi >>> 8) & 0x0ff]) + m_sbox4[nHi & 0x0ff]) ^ m_pbox[4];
                nHi ^= (((m_sbox1[nLo >>> 24] + m_sbox2[(nLo >>> 16) & 0x0ff]) ^ m_sbox3[(nLo >>> 8) & 0x0ff]) + m_sbox4[nLo & 0x0ff]) ^ m_pbox[3];
                nLo ^= (((m_sbox1[nHi >>> 24] + m_sbox2[(nHi >>> 16) & 0x0ff]) ^ m_sbox3[(nHi >>> 8) & 0x0ff]) + m_sbox4[nHi & 0x0ff]) ^ m_pbox[2];
                nHi ^= (((m_sbox1[nLo >>> 24] + m_sbox2[(nLo >>> 16) & 0x0ff]) ^ m_sbox3[(nLo >>> 8) & 0x0ff]) + m_sbox4[nLo & 0x0ff]) ^ m_pbox[1];
                return makeLong(nHi, nLo ^ m_pbox[0]);
             * encrypts a byte buffer (should be aligned to an 8 byte border)
             * to another buffer (of the same size or bigger)
             * @param inbuffer buffer with plaintext data
             * @param outbuffer buffer to get the ciphertext data
            public void encrypt(byte[] inbuffer,
                                byte[] outbuffer)
                int nLen = inbuffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=8)
                    // encrypt a temporary 64bit block
                    lTemp = byteArrayToLong(inbuffer, nI);
                    lTemp = encryptBlock(lTemp);
                    longToByteArray(lTemp, outbuffer, nI);
             * encrypts a byte buffer (should be aligned to an 8 byte border) to itself
             * @param buffer buffer to encrypt
            public void encrypt(byte[] buffer)
                int nLen = buffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=8)
                    // encrypt a temporary 64bit block
                    lTemp = byteArrayToLong(buffer, nI);
                    lTemp = encryptBlock(lTemp);
                    longToByteArray(lTemp, buffer, nI);
             * encrypts an integer buffer (should be aligned to an
             * two integer border) to another int buffer (of the
             * same size or bigger)
             * @param inBuffer buffer with plaintext data
             * @param outBuffer buffer to get the ciphertext data
            public void encrypt(int[] inBuffer,
                                int[] outBuffer)
                int nLen = inBuffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=2)
                    // encrypt a temporary 64bit block
                    lTemp = intArrayToLong(inBuffer, nI);
                    lTemp = encryptBlock(lTemp);
                    longToIntArray(lTemp, outBuffer, nI);
             * encrypts an int buffer (should be aligned to a
             * two integer border)
             * @param buffer buffer to encrypt
            public void encrypt(int[] buffer)
                int nLen = buffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=2)
                    // encrypt a temporary 64bit block
                    lTemp = intArrayToLong(buffer, nI);
                    lTemp = encryptBlock(lTemp);
                    longToIntArray(lTemp, buffer, nI);
             * encrypts a long buffer to another long buffer (of the same size or bigger)
             * @param inbuffer buffer with plaintext data
             * @param outbuffer buffer to get the ciphertext data
            public void encrypt(long[] inbuffer,
                                long[] outbuffer)
                int nLen = inbuffer.length;
                for (int nI = 0; nI < nLen; nI++)
                    outbuffer[nI] = encryptBlock(inbuffer[nI]);
             * encrypts a long buffer to itself
             * @param buffer buffer to encrypt
            public void encrypt(long[] buffer)
                int nLen = buffer.length;
                for (int nI = 0; nI < nLen; nI++)
                    buffer[nI] = encryptBlock(buffer[nI]);
             * decrypts a byte buffer (should be aligned to an 8 byte border)
             * to another byte buffer (of the same size or bigger)
             * @param inBuffer buffer with ciphertext data
             * @param outBuffer buffer to get the plaintext data
            public void decrypt(byte[] inBuffer,
                                byte[] outBuffer)
                int nLen = inBuffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=8)
                    // decrypt a temporary 64bit block
                    lTemp = byteArrayToLong(inBuffer, nI);
                    lTemp = decryptBlock(lTemp);
                    longToByteArray(lTemp, outBuffer, nI);
             * decrypts a byte buffer (should be aligned to an 8 byte border) to itself
             * @param buffer buffer to decrypt
            public void decrypt(byte[] buffer)
                int nLen = buffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=8)
                    // decrypt over a temporary 64bit block
                    lTemp = byteArrayToLong(buffer, nI);
                    lTemp = decryptBlock(lTemp);
                    longToByteArray(lTemp, buffer, nI);
             * decrypts an integer buffer (should be aligned to an
             * two integer border) to another int buffer (of the same size or bigger)
             * @param inbuffer buffer with ciphertext data
             * @param outbuffer buffer to get the plaintext data
            public void decrypt(int[] inbuffer,
                                int[] outbuffer)
                int nLen = inbuffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=2)
                    // decrypt a temporary 64bit block
                    lTemp = intArrayToLong(inbuffer, nI);
                    lTemp = decryptBlock(lTemp);
                    longToIntArray(lTemp, outbuffer, nI);
             * decrypts an int buffer (should be aligned to an
             * two integer border)
             * @param buffer buffer to decrypt
            public void decrypt(int[] buffer)
                int nLen = buffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=2)
                    // decrypt a temporary 64bit block
                    lTemp = intArrayToLong(buffer, nI);
                    lTemp = decryptBlock(lTemp);
                    longToIntArray(lTemp, buffer, nI);
             * decrypts a long buffer to another long buffer (of the same size or bigger)
             * @param inbuffer buffer with ciphertext data
             * @param outbuffer buffer to get the plaintext data
            public void decrypt(long[] inbuffer,
                                long[] outbuffer)
                int nLen = inbuffer.length;
                for (int nI = 0; nI < nLen; nI++)
                    outbuffer[nI] = decryptBlock(inbuffer[nI]);
             * decrypts a long buffer to itself
             * @param buffer buffer to decrypt
            public void decrypt(long[] buffer) {
                int nLen = buffer.length;
                for (int nI = 0; nI < nLen; nI++)
                    buffer[nI] = decryptBlock(buffer[nI]);
            // the boxes init. data,
            // FIXME: it might be better to create them at runtime to make the class
            //        file smaller, e.g. by calculating the hexdigits of pi (default)
            //        or just a fixed random sequence (out of the standard)
            final static int pbox_init[] = {
                0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0,
                0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
                0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b  };
            final static int sbox_init_1[] = {
                0xd1310ba6,   0x98dfb5ac,   0x2ffd72db,   0xd01adfb7,   0xb8e1afed,   0x6a267e96,
                0xba7c9045,   0xf12c7f99,   0x24a19947,   0xb3916cf7,   0x0801f2e2,   0x858efc16,
                0x636920d8,   0x71574e69,   0xa458fea3,   0xf4933d7e,   0x0d95748f,   0x728eb658,
                0x718bcd58,   0x82154aee,   0x7b54a41d,   0xc25a59b5,   0x9c30d539,   0x2af26013,
                0xc5d1b023,   0x286085f0,   0xca417918,   0xb8db38ef,   0x8e79dcb0,   0x603a180e,
                0x6c9e0e8b,   0xb01e8a3e,   0xd71577c1,   0xbd314b27,   0x78af2fda,   0x55605c60,
                0xe65525f3,   0xaa55ab94,   0x57489862,   0x63e81440,   0x55ca396a,   0x2aab10b6,
                0xb4cc5c34,   0x1141e8ce,   0xa15486af,   0x7c72e993,   0xb3ee1411,   0x636fbc2a,
                0x2ba9c55d,   0x741831f6,   0xce5c3e16,   0x9b87931e,   0xafd6ba33,   0x6c24cf5c,
                0x7a325381,   0x28958677,   0x3b8f4898,   0x6b4bb9af,   0xc4bfe81b,   0x66282193,
                0x61d809cc,   0xfb21a991,   0x487cac60,   0x5dec8032,   0xef845d5d,   0xe98575b1,
                0xdc262302,   0xeb651b88,   0x23893e81,   0xd396acc5,   0x0f6d6ff3,   0x83f44239,
                0x2e0b4482,   0xa4842004,   0x69c8f04a,   0x9e1f9b5e,   0x21c66842,   0xf6e96c9a,
                0x670c9c61,   0xabd388f0,   0x6a51a0d2,   0xd8542f68,   0x960fa728,   0xab5133a3,
                0x6eef0b6c,   0x137a3be4,   0xba3bf050,   0x7efb2a98,   0xa1f1651d,   0x39af0176,
                0x66ca593e,   0x82430e88,   0x8cee8619,   0x456f9fb4,   0x7d84a5c3,   0x3b8b5ebe,
                0xe06f75d8,   0x85c12073,   0x401a449f,   0x56c16aa6,   0x4ed3aa62,   0x363f7706,
                0x1bfedf72,   0x429b023d,   0x37d0d724,   0xd00a1248,   0xdb0fead3,   0x49f1c09b,
                0x075372c9,   0x80991b7b,   0x25d479d8,   0xf6e8def7,   0xe3fe501a,   0xb6794c3b,
                0x976ce0bd,   0x04c006ba,   0xc1a94fb6,   0x409f60c4,   0x5e5c9ec2,   0x196a2463,
                0x68fb6faf,   0x3e6c53b5,   0x1339b2eb,   0x3b52ec6f,   0x6dfc511f,   0x9b30952c,
                0xcc814544,   0xaf5ebd09,   0xbee3d004,   0xde334afd,   0x660f2807,   0x192e4bb3,
                0xc0cba857,   0x45c8740f,   0xd20b5f39,   0xb9d3fbdb,   0x5579c0bd,   0x1a60320a,
                0xd6a100c6,   0x402c7279,   0x679f25fe,   0xfb1fa3cc,   0x8ea5e9f8,   0xdb3222f8,
                0x3c7516df,   0xfd616b15,   0x2f501ec8,   0xad0552ab,   0x323db5fa,   0xfd238760,
                0x53317b48,   0x3e00df82,   0x9e5c57bb,   0xca6f8ca0,   0x1a87562e,   0xdf1769db,
                0xd542a8f6,   0x287effc3,   0xac6732c6,   0x8c4f5573,   0x695b27b0,   0xbbca58c8,
                0xe1ffa35d,   0xb8f011a0,   0x10fa3d98,   0xfd2183b8,   0x4afcb56c,   0x2dd1d35b,
                0x9a53e479,   0xb6f84565,   0xd28e49bc,   0x4bfb9790,   0xe1ddf2da,   0xa4cb7e33,
                0x62fb1341,   0xcee4c6e8,   0xef20cada,   0x36774c01,   0xd07e9efe,   0x2bf11fb4,
                0x95dbda4d,   0xae909198,   0xeaad8e71,   0x6b93d5a0,   0xd08ed1d0,   0xafc725e0,
                0x8e3c5b2f,   0x8e7594b7,   0x8ff6e2fb,   0xf2122b64,   0x8888b812,   0x900df01c,
                0x4fad5ea0,   0x688fc31c,   0xd1cff191,   0xb3a8c1ad,   0x2f2f2218,   0xbe0e1777,
                0xea752dfe,   0x8b021fa1,   0xe5a0cc0f,   0xb56f74e8,   0x18acf3d6,   0xce89e299,
                0xb4a84fe0,   0xfd13e0b7,   0x7cc43b81,   0xd2ada8d9,   0x165fa266,   0x80957705,
                0x93cc7314,   0x211a1477,   0xe6ad2065,   0x77b5fa86,   0xc75442f5,   0xfb9d35cf,
                0xebcdaf0c,   0x7b3e89a0,   0xd6411bd3,   0xae1e7e49,   0x00250e2d,   0x2071b35e,
                0x226800bb,   0x57b8e0af,   0x2464369b,   0xf009b91e,   0x5563911d,   0x59dfa6aa,
                0x78c14389,   0xd95a537f,   0x207d5ba2,   0x02e5b9c5,   0x83260376,   0x6295cfa9,
                0x11c81968,   0x4e734a41,   0xb3472dca,   0x7b14a94a,   0x1b510052,   0x9a532915,
                0xd60f573f,   0xbc9bc6e4,   0x2b60a476,   0x81e67400,   0x08ba6fb5,   0x571be91f,
                0xf296ec6b,   0x2a0dd915,   0xb6636521,   0xe7b9f9b6,   0xff34052e,   0xc5855664,
                0x53b02d5d,   0xa99f8fa1,   0x08ba4799,   0x6e85076a };
            final static int sbox_init_2[] = {
                0x4b7a70e9,   0xb5b32944,
                0xdb75092e,   0xc4192623,   0xad6ea6b0,   0x49a7df7d,   0x9cee60b8,   0x8fedb266,
                0xecaa8c71,   0x699a17ff,   0x5664526c,   0xc2b19ee1,   0x193602a5,   0x75094c29,
                0xa0591340,   0xe4183a3e,   0x3f54989a,   0x5b429d65,   0x6b8fe4d6,   0x99f73fd6,
                0xa1d29c07,   0xefe830f5,   0x4d2d38e6,   0xf0255dc1,   0x4cdd2086,   0x8470eb26,
                0x6382e9c6,   0x021ecc5e,   0x09686b3f,   0x3ebaefc9,   0x3c971814,   0x6b6a70a1,
                0x687f3584,   0x52a0e286,   0xb79c5305,   0xaa500737,   0x3e07841c,   0x7fdeae5c,
                0x8e7d44ec,   0x5716f2b8,   0xb03ada37,   0xf0500c0d,   0xf01c1f04,   0x0200b3ff,
                0xae0cf51a,   0x3cb574b2,   0x25837a58,   0xdc0921bd,   0xd19113f9,   0x7ca92ff6,
                0x94324773,   0x22f54701,   0x3ae5e581,   0x37c2dadc,   0xc8b57634,   0x9af3dda7,
                0xa9446146,   0x0fd0030e,   0xecc8c73e,   0xa4751e41,   0xe238cd99,   0x3bea0e2f,
                0x3280bba1,   0x183eb331,   0x4e548b38,   0x4f6db908,   0x6f420d03,   0xf60a04bf,
                0x2cb81290,   0x24977c79,   0x5679b072,   0xbcaf89af,   0xde9a771f,   0xd9930810,
                0xb38bae12,   0xdccf3f2e,   0x5512721f,   0x2e6b7124,   0x501adde6,   0x9f84cd87,
                0x7a584718,   0x7408da17,   0xbc9f9abc,   0xe94b7d8c,   0xec7aec3a,   0xdb851dfa,
                0x63094366,   0xc464c3d2,   0xef1c1847,   0x3215d908,   0xdd433b37,   0x24c2ba16,
                0x12a14d43,   0x2a65c451,   0x50940002,   0x133ae4dd,   0x71dff89e,   0x10314e55,
                0x81ac77d6,   0x5f11199b,   0x043556f1,   0xd7a3c76b,   0x3c11183b,   0x5924a509,
                0xf28fe6ed,   0x97f1fbfa,   0x9ebabf2c,   0x1e153c6e,   0x86e34570,   0xeae96fb1,
                0x860e5e0a,   0x5a3e2ab3,   0x771fe71c,   0x4e3d06fa,   0x2965dcb9,   0x99e71d0f,
                0x803e89d6,   0x5266c825,   0x2e4cc978,   0x9c10b36a,   0xc6150eba,   0x94e2ea78,
                0xa5fc3c53,   0x1e0a2df4,   0xf2f74ea7,   0x361d2b3d,   0x1939260f,   0x19c27960,
                0x5223a708,   0xf71312b6,   0xebadfe6e,   0xeac31f66,   0xe3bc4595,   0xa67bc883,
                0xb17f37d1,   0x018cff28,   0xc332ddef,   0xbe6c5aa5,   0x65582185,   0x68ab9802,
                0xeecea50f,   0xdb2f953b,   0x2aef7dad,   0x5b6e2f84,   0x1521b628,   0x29076170,
                0xecdd4775,   0x619f1510,   0x13cca830,   0xeb61bd96,   0x0334fe1e,   0xaa0363cf,
                0xb5735c90,   0x4c70a239,   0xd59e9e0b,   0xcbaade14,   0xeecc86bc,   0x60622ca7,
                0x9cab5cab,   0xb2f3846e,   0x648b1eaf,   0x19bdf0ca,   0xa02369b9,   0x655abb50,
                0x40685a32,   0x3c2ab4b3,   0x319ee9d5,   0xc021b8f7,   0x9b540b19,   0x875fa099,
                0x95f7997e,   0x623d7da8,   0xf837889a,   0x97e32d77,   0x11ed935f,   0x16681281,
                0x0e358829,   0xc7e61fd6,   0x96dedfa1,   0x7858ba99,   0x57f584a5,   0x1b227263,
                0x9b83c3ff,   0x1ac24696,   0xcdb30aeb,   0x532e3054,   0x8fd948e4,   0x6dbc3128,
                0x58ebf2ef,   0x34c6ffea,   0xfe28ed61,   0xee7c3c73,   0x5d4a14d9,   0xe864b7e3,
                0x42105d14,   0x203e13e0,   0x45eee2b6,   0xa3aaabea,   0xdb6c4f15,   0xfacb4fd0,
                0xc742f442,   0xef6abbb5,   0x654f3b1d,   0x41cd2105,   0xd81e799e,   0x86854dc7,
                0xe44b476a,   0x3d816250,   0xcf62a1f2,   0x5b8d2646,   0xfc8883a0,   0xc1c7b6a3,
                0x7f1524c3,   0x69cb7492,   0x47848a0b,   0x5692b285,   0x095bbf00,   0xad19489d,
                0x1462b174,   0x23820e00,   0x58428d2a,   0x0c55f5ea,   0x1dadf43e,   0x233f7061,
                0x3372f092,   0x8d937e41,   0xd65fecf1,   0x6c223bdb,   0x7cde3759,   0xcbee7460,
                0x4085f2a7,   0xce77326e,   0xa6078084,   0x19f8509e,   0xe8efd855,   0x61d99735,
                0xa969a7aa,   0xc50c06c2,   0x5a04abfc,   0x800bcadc,   0x9e447a2e,   0xc3453484,
                0xfdd56705,   0x0e1e9ec9,   0xdb73dbd3,   0x105588cd,   0x675fda79,   0xe3674340,
                0xc5c43465,   0x713e38d8,   0x3d28f89e,   0xf16dff20,   0x153e21e7,   0x8fb03d4a,
                0xe6e39f2b,   0xdb83adf7 };
            final static int sbox_init_3[] = {
                0xe93d5a68,   0x948140f7,   0xf64c261c,   0x94692934,
                0x411520f7,   0x7602d4f7,   0xbcf46b2e,   0xd4a20068,   0xd4082471,   0x3320f46a,
                0x43b7d4b7,   0x500061af,   0x1e39f62e,   0x97244546,   0x14214f74,   0xbf8b8840,
                0x4d95fc1d,   0x96b591af,   0x70f4ddd3,   0x66a02f45,   0xbfbc09ec,   0x03bd9785,
                0x7fac6dd0,   0x31cb8504,   0x96eb27b3,   0x55fd3941,   0xda2547e6,   0xabca0a9a,
                0x28507825,   0x530429f4,   0x0a2c86da,   0xe9b66dfb,   0x68dc1462,   0xd7486900,
                0x680ec0a4,   0x27a18dee,   0x4f3ffea2,   0xe887ad8c,   0xb58ce006,   0x7af4d6b6,
                0xaace1e7c,   0xd3375fec,   0xce78a399,   0x406b2a42,   0x20fe9e35,   0xd9f385b9,
                0xee39d7ab,   0x3b124e8b,   0x1dc9faf7,   0x4b6d1856,   0x26a36631,   0xeae397b2,
                0x3a6efa74,   0xdd5b4332,   0x6841e7f7,   0xca7820fb,   0xfb0af54e,   0xd8feb397,
                0x454056ac,   0xba489527,   0x55533a3a,   0x20838d87,   0xfe6ba9b7,   0xd096954b,
                0x55a867bc,   0xa1159a58,   0xcca92963,   0x99e1db33,   0xa62a4a56,   0x3f3125f9,
                0x5ef47e1c,   0x9029317c,   0xfdf8e802,   0x04272f70,   0x80bb155c,   0x05282ce3,
                0x95c11548,   0xe4c66d22,   0x48c1133f,   0xc70f86dc,   0x07f9c9ee,   0x41041f0f,
                0x404779a4,   0x5d886e17,   0x325f51eb,   0xd59bc0d1,   0xf2bcc18f,   0x41113564,
                0x257b7834,   0x602a9c60,   0xdff8e8a3,   0x1f636c1b,   0x0e12b4c2,   0x02e1329e,
                0xaf664fd1,   0xcad18115,   0x6b2395e0,   0x333e92e1,   0x3b240b62,   0xeebeb922,
                0x85b2a20e,   0xe6ba0d99,   0xde720c8c,   0x2da2f728,   0xd0127845,   0x95b794fd,
                0x647d0862,   0xe7ccf5f0,   0x5449a36f,   0x877d48fa,   0xc39dfd27,   0xf33e8d1e,
                0x0a476341,   0x992eff74,   0x3a6f6eab,   0xf4f8fd37,   0xa812dc60,   0xa1ebddf8,
                0x991be14c,   0xdb6e6b0d,   0xc67b5510,   0x6d672c37,   0x2765d43b,   0xdcd0e804,
                0xf1290dc7,   0xcc00ffa3,   0xb5390f92,   0x690fed0b,   0x667b9ffb,   0xcedb7d9c,
                0xa091cf0b,   0xd9155ea3,   0xbb132f88,   0x515bad24,   0x7b9479bf,   0x763bd6eb,
                0x37392eb3,   0xcc115979,   0x8026e297,   0xf42e312d,   0x6842ada7,   0xc66a2b3b,
                0x12754ccc,   0x782ef11c,   0x6a124237,   0xb79251e7,   0x06a1bbe6,   0x4bfb6350,
                0x1a6b1018,   0x11caedfa,   0x3d25bdd8,   0xe2e1c3c9,   0x44421659,   0x0a121386,
                0xd90cec6e,   0xd5abea2a,   0x64af674e,   0xda86a85f,   0xbebfe988,   0x64e4c3fe,
                0x9dbc8057,   0xf0f7c086,   0x60787bf8,   0x6003604d,   0xd1fd8346,   0xf6381fb0,
                0x7745ae04,   0xd736fccc,   0x83426b33,   0xf01eab71,   0xb0804187,   0x3c005e5f,
                0x77a057be,   0xbde8ae24,   0x55464299,   0xbf582e61,   0x4e58f48f,   0xf2ddfda2,
                0xf474ef38,   0x8789bdc2,   0x5366f9c3,   0xc8b38e74,   0xb475f255,   0x46fcd9b9,
                0x7aeb2661,   0x8b1ddf84,   0x846a0e79,   0x915f95e2,   0x466e598e,   0x20b45770,
                0x8cd55591,   0xc902de4c,   0xb90bace1,   0xbb8205d0,   0x11a86248,   0x7574a99e,
                0xb77f19b6,   0xe0a9dc09,   0x662d09a1,   0xc4324633,   0xe85a1f02,   0x09f0be8c,
                0x4a99a025,   0x1d6efe10,   0x1ab93d1d,   0x0ba5a4df,   0xa186f20f,   0x2868f169,
                0xdcb7da83,   0x573906fe,   0xa1e2ce9b,   0x4fcd7f52,   0x50115e01,   0xa70683fa,
                0xa002b5c4,   0x0de6d027,   0x9af88c27,   0x773f8641,   0xc3604c06,   0x61a806b5,
                0xf0177a28,   0xc0f586e0,   0x006058aa,   0x30dc7d62,   0x11e69ed7,   0x2338ea63,
                0x53c2dd94,   0xc2c21634,   0xbbcbee56,   0x90bcb6de,   0xebfc7da1,   0xce591d76,
                0x6f05e409,   0x4b7c0188,   0x39720a3d,   0x7c927c24,   0x86e3725f,   0x724d9db9,
                0x1ac15bb4,   0xd39eb8fc,   0xed545578,   0x08fca5b5,   0xd83d7cd3,   0x4dad0fc4,
                0x1e50ef5e,   0xb161e6f8,   0xa28514d9,   0x6c51133c,   0x6fd5c7e7,   0x56e14ec4,
                0x362abfce,   0xddc6c837,   0xd79a3234,   0x92638212,   0x670efa8e,   0x406000e0 };
            final static int sbox_init_4[] = {
                0x3a39ce37,   0xd3faf5cf,   0xabc27737,   0x5ac52d1b,   0x5cb0679e,   0x4fa33742,
                0xd3822740,   0x99bc9bbe,   0xd5118e9d,   0xbf0f7315,   0xd62d1c7e,   0xc700c47b,
                0xb78c1b6b,   0x21a19045,   0xb26eb1be,   0x6a366eb4,   0x5748ab2f,   0xbc946e79,
                0xc6a376d2,   0x6549c2c8,   0x530ff8ee,   0x468dde7d,   0xd5730a1d,   0x4cd04dc6,
                0x2939bbdb,   0xa9ba4650,   0xac9526e8,   0xbe5ee304,   0xa1fad5f0,   0x6a2d519a,
                0x63ef8ce2,   0x9a86ee22,   0xc089c2b8,   0x43242ef6,   0xa51e03aa,   0x9cf2d0a4,
                0x83c061ba,   0x9be96a4d,   0x8fe51550,   0xba645bd6,   0x2826a2f9,   0xa73a3ae1,
                0x4ba99586,   0xef5562e9,   0xc72fefd3,   0xf752f7da,   0x3f046f69,   0x77fa0a59,
                0x80e4a915,   0x87b08601,   0x9b09e6ad,   0x3b3ee593,   0xe990fd5a,   0x9e34d797,
                0x2cf0b7d9,   0x022b8b51,   0x96d5ac3a,   0x017da67d,   0xd1cf3ed6,   0x7c7d2d28,
                0x1f9f25cf,   0xadf2b89b,   0x5ad6b472,   0x5a88f54c,   0xe029ac71,   0xe019a5e6,
                0x47b0acfd,   0xed93fa9b,   0xe8d3c48d,   0x283b57cc,   0xf8d56629,   0x79132e28,
                0x785f0191,   0xed756055,   0xf7960e44,   0xe3d35e8c,   0x15056dd4,   0x88f46dba,
                0x03a16125,   0x0564f0bd,   0xc3eb9e15,   0x3c9057a2,   0x97271aec,   0xa93a072a,
                0x1b3f6d9b,   0x1e6321f5,   0xf59c66fb,   0x26dcf319,   0x7533d928,   0xb155fdf5,
                0x03563482,   0x8aba3cbb,   0x28517711,   0xc20ad9f8,   0xabcc5167,   0xccad925f,
                0x4de81751,   0x3830dc8e,   0x379d5862,   0x9320f991,   0xea7a90c2,   0xfb3e7bce,
                0x5121ce64,   0x774fbe32,   0xa8b6e37e,   0xc3293d46,   0x48de5369,   0x6413e680,
                0xa2ae0810,   0xdd6db224,   0x69852dfd,   0x09072166,   0xb39a460a,   0x6445c0dd,
                0x586cdecf,   0x1c20c8ae,   0x5bbef7dd,   0x1b588d40,   0xccd2017f,   0x6bb4e3bb,
                0xdda26a7e,   0x3a59ff45,   0x3e350a44,   0xbcb4cdd5,   0x72eacea8,   0xfa6484bb,
                0x8d6612ae,   0xbf3c6f47,   0xd29be463,   0x542f5d9e,   0xaec2771b,   0xf64e6370,
                0x740e0d8d,   0xe75b1357,   0xf8721671,   0xaf537d5d,   0x4040cb08,   0x4eb4e2cc,
                0x34d2466a,   0x0115af84,   0xe1b00428,   0x95983a1d,   0x06b89fb4,   0xce6ea048,
                0x6f3f3b82,   0x3520ab82,   0x011a1d4b,   0x277227f8,   0x611560b1,   0xe7933fdc,
                0xbb3a792b,   0x344525bd,   0xa08839e1,   0x51ce794b,   0x2f32c9b7,   0xa01fbac9,
                0xe01cc87e,   0xbcc7d1f6,   0xcf0111c3,   0xa1e8aac7,   0x1a908749,   0xd44fbd9a,
                0xd0dadecb,   0xd50ada38,   0x0339c32a,   0xc6913667,   0x8df9317c,   0xe0b12b4f,
                0xf79e59b7,   0x43f5bb3a,   0xf2d519ff,   0x27d9459c,   0xbf97222c,   0x15e6fc2a,
                0x0f91fc71,   0x9b941525,   0xfae59361,   0xceb69ceb,   0xc2a86459,   0x12baa8d1,
                0xb6c1075e,   0xe3056a0c,   0x10d25065,   0xcb03a442,   0xe0ec6e0e,   0x1698db3b,
                0x4c98a0be,   0x3278e964,   0x9f1f9532,   0xe0d392df,   0xd3a0342b,   0x8971f21e,
                0x1b0a7441,   0x4ba3348c,   0xc5be7120,   0xc37632d8,   0xdf359f8d,   0x9b992f2e,
                0xe60b6f47,   0x0fe3f11d,   0xe54cda54,   0x1edad891,   0xce6279cf,   0xcd3e7e6f,
                0x1618b166,   0xfd2c1d05,   0x848fd2c5,   0xf6fb2299,   0xf523f357,   0xa6327623,
                0x93a83531,   0x56cccd02,   0xacf08162,   0x5a75ebb5,   0x6e163697,   0x88d273cc,
                0xde966292,   0x81b949d0,   0x4c50901b,   0x71c65614,   0xe6c6c7bd,   0x327a140a,
                0x45e1d006,   0xc3f27b9a,   0xc9aa53fd,   0x62a80f00,   0xbb25bfe2,   0x35bdd2f6,
                0x71126905,   0xb2040222,   0xb6cbcf7c,   0xcd769c2b,   0x53113ec0,   0x1640e3d3,
                0x38abbd60,   0x2547adf0,   0xba38209c,   0xf746ce76,   0x77afa1c5,   0x20756060,
                0x85cbfe4e,   0x8ae88dd8,   0x7aaaf9b0,   0x4cf9aa7e,   0x1948c25c,   0x02fb8a8c,
                0x01c36ae4,   0xd6ebe1f9,   0x90d4f869,   0xa65cdea0,   0x3f09252d,   0xc208e69f,
                0xb74e6132,   0xce77e25b,   0x578fdfe3,   0x3ac372e6 };
        private static class BlowfishCBC extends BlowfishECB {
            // here we hold the CBC IV
            long m_lCBCIV;
             * get the current CBC IV (for cipher resets)
             * @return current CBC IV
            public long getCBCIV()
                return m_lCBCIV;
             * get the current CBC IV (for cipher resets)
             * @param dest wher eto put current CBC IV in network byte ordered array
            public void getCBCIV(byte[] dest)
                longToByteArray(m_lCBCIV, dest, 0);
             * set the current CBC IV (for cipher resets)
             * @param lNewCBCIV the new CBC IV
            public void setCBCIV(long lNewCBCIV)
                m_lCBCIV = lNewCBCIV;
             * set the current CBC IV (for cipher resets)
             * @param newCBCIV the new CBC IV  in network byte ordered array
            public void setCBCIV(byte[] newCBCIV)
                m_lCBCIV = byteArrayToLong(newCBCIV, 0);
             * constructor, stores a zero CBC IV
             * @param bfkey key material, up to MAXKEYLENGTH bytes
            public BlowfishCBC(byte[] bfkey)
                super(bfkey);
                // store zero CBCB IV
                setCBCIV(0);
             * constructor
             * @param bfkey key material, up to MAXKEYLENGTH bytes
             * @param lInitCBCIV the CBC IV
            public BlowfishCBC(byte[] bfkey,
                               long lInitCBCIV)
                super(bfkey);
                // store the CBCB IV
                setCBCIV(lInitCBCIV);
             * constructor
             * @param bfkey key material, up to MAXKEYLENGTH bytes
             * @param initCBCIV the CBC IV (array with min. BLOCKSIZE bytes)
            public BlowfishCBC(byte[] bfkey,
                               byte[] initCBCIV)
                super(bfkey);
                // store the CBCB IV
                setCBCIV(initCBCIV);
             * cleans up all critical internals,
             * call this if you don't need an instance anymore
            public void cleanUp()
                m_lCBCIV = 0;
                super.cleanUp();
            // internal routine to encrypt a block in CBC mode
            private long encryptBlockCBC(long lPlainblock)
                // chain with the CBC IV
                lPlainblock ^= m_lCBCIV;
                // encrypt the block
                lPlainblock = super.encryptBlock(lPlainblock);
                // the encrypted block is the new CBC IV
                return (m_lCBCIV = lPlainblock);
            // internal routine to decrypt a block in CBC mode
            private long decryptBlockCBC(long lCipherblock)
                // save the current block
                long lTemp = lCipherblock;
                // decrypt the block
                lCipherblock = super.decryptBlock(lCipherblock);
                // dechain the block
                lCipherblock ^= m_lCBCIV;
                // set the new CBC IV
                m_lCBCIV = lTemp;
                // return the decrypted block
                return lCipherblock;
             * encrypts a byte buffer (should be aligned to an 8 byte border)
             * to another buffer (of the same size or bigger)
             * @param inbuffer buffer with plaintext data
             * @param outbuffer buffer to get the ciphertext data
            public void encrypt(byte[] inbuffer,
                                byte[] outbuffer)
                int nLen = inbuffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=8)
                    // encrypt a temporary 64bit block
                    lTemp = byteArrayToLong(inbuffer, nI);
                    lTemp = encryptBlockCBC(lTemp);
                    longToByteArray(lTemp, outbuffer, nI);
             * encrypts a byte buffer (should be aligned to an 8 byte border) to itself
             * @param buffer buffer to encrypt
            public void encrypt(byte[] buffer)
                int nLen = buffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=8)
                    // encrypt a temporary 64bit block
                    lTemp = byteArrayToLong(buffer, nI);
                    lTemp = encryptBlockCBC(lTemp);
                    longToByteArray(lTemp, buffer, nI);
             * encrypts an int buffer (should be aligned to an
             * two integer border) to another int buffer (of the same
             * size or bigger)
             * @param inBuffer buffer with plaintext data
             * @param outBuffer buffer to get the ciphertext data
            public void encrypt(int[] inBuffer,
                                int[] outBuffer)
                int nLen = inBuffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=2)
                    // encrypt a temporary 64bit block
                    lTemp = intArrayToLong(inBuffer, nI);
                    lTemp = encryptBlockCBC(lTemp);
                    longToIntArray(lTemp, outBuffer, nI);
             * encrypts an integer buffer (should be aligned to an
             * @param buffer buffer to encrypt
            public void encrypt(int[] buffer)
                int nLen = buffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=2)
                    // encrypt a temporary 64bit block
                    lTemp = intArrayToLong(buffer, nI);
                    lTemp = encryptBlockCBC(lTemp);
                    longToIntArray(lTemp, buffer, nI);
             * encrypts a long buffer to another long buffer (of the same size or bigger)
             * @param inbuffer buffer with plaintext data
             * @param outbuffer buffer to get the ciphertext data
            public void encrypt(long[] inbuffer,
                                long[] outbuffer)
                int nLen = inbuffer.length;
                for (int nI = 0; nI < nLen; nI++)
                    outbuffer[nI] = encryptBlockCBC(inbuffer[nI]);
             * encrypts a long buffer to itself
             * @param buffer buffer to encrypt
            public void encrypt(long[] buffer)
                int nLen = buffer.length;
                for (int nI = 0; nI < nLen; nI++)
                    buffer[nI] = encryptBlockCBC(buffer[nI]);
             * decrypts a byte buffer (should be aligned to an 8 byte border)
             * to another buffer (of the same size or bigger)
             * @param inBuffer buffer with ciphertext data
             * @param outBuffer buffer to get the plaintext data
            public void decrypt(byte[] inBuffer,
                                byte[] outBuffer)
                int nLen = inBuffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=8)
                    // decrypt a temporary 64bit block
                    lTemp = byteArrayToLong(inBuffer, nI);
                    lTemp = decryptBlockCBC(lTemp);
                    longToByteArray(lTemp, outBuffer, nI);
             * decrypts a byte buffer (should be aligned to an 8 byte border) to itself
             * @param buffer buffer to decrypt
            public void  decrypt(byte[] buffer)
                int nLen = buffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=8)
                    // decrypt over a temporary 64bit block
                    lTemp = byteArrayToLong(buffer, nI);
                    lTemp = decryptBlockCBC(lTemp);
                    longToByteArray(lTemp, buffer, nI);
             * decrypts an integer buffer (should be aligned to an
             * two integer border) to another int buffer (of the same size or bigger)
             * @param inbuffer buffer with ciphertext data
             * @param outbuffer buffer to get the plaintext data
            public void decrypt(int[] inbuffer,
                                int[] outbuffer)
                int nLen = inbuffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=2)
                    // decrypt a temporary 64bit block
                    lTemp = intArrayToLong(inbuffer, nI);
                    lTemp = decryptBlockCBC(lTemp);
                    longToIntArray(lTemp, outbuffer, nI);
             * decrypts an int buffer (should be aligned to a
             * two integer border)
             * @param buffer buffer to decrypt
            public void decrypt(int[] buffer)
                int nLen = buffer.length;
                long lTemp;
                for (int nI = 0; nI < nLen; nI +=2)
                    // decrypt a temporary 64bit block
                    lTemp = intArrayToLong(buffer, nI);
                    lTemp = decryptBlockCBC(lTemp);
                    longToIntArray(lTemp, buffer, nI);
             * decrypts a long buffer to another long buffer (of the same size or bigger)
             * @param inbuffer buffer with ciphertext data
             * @param outbuffer buffer to get the plaintext data
            public void decrypt(long[] inbuffer,
                                long[] outbuffer)
                int nLen = inbuffer.length;
                for (int nI = 0; nI < nLen; nI++)
                    outbuffer[nI] = decryptBlockCBC(inbuffer[nI]);
             * decrypts a long buffer to itself
             * @param buffer buffer to decrypt
            public void decrypt(long[] buffer)
                int nLen = buffer.length;
                for (int nI = 0; nI < nLen; nI++)
                    buffer[nI] = decryptBlockCBC(buffer[nI]);
         * gets bytes from an array into a long
         * @param buffer where to get the bytes
         * @param nStartIndex index from where to read the data
         * @return the 64bit integer
        private static long byteArrayToLong(byte[] buffer,
                                           int nStartIndex)
            return (((long)buffer[nStartIndex]) << 56) |
                    (((long)buffer[nStartIndex + 1] & 0x0ffL) << 48) |
                    (((long)buffer[nStartIndex + 2] & 0x0ffL) << 40) |
                    (((long)buffer[nStartIndex + 3] & 0x0ffL) << 32) |
         

  • NetBeans MobilityPack 5 BUG?? how can I send a byte array?

    I�ve created a WebApp and a Simple servlet with one public method.
    public byte[] getStr(byte[] b) {       
    String s = "A string";
    return s.getBytes();
    Then I've used "Mobile To Web App" wizard to generate stubs to that getStr method. And when I�ve tried to call that getStr method:
    byte[] aByte = "st".getBytes();
    byte[] b = client.getStr(aByte);
    I've got an error at Server in Utility.java in generated ReadArray method.
    * Reads an array from the given data source and returns it.
    *@param source The source from which the data is extracted.
    *@return The array from the data source
    *@exception IOException If an error occured while reading the data.
    public static Object readArray(DataInput in) throws IOException {
    short type = in.readShort();
    int length = in.readInt();
    if (length == -1) {
    return null;
    } else {
    switch (type) {
    case BYTE_TYPE: {
    byte[] data = new byte[length];
    in.readFully(data);
    return data;
    default: {
    throw new IllegalArgumentException("Unsupported return type (" + type + ")");
    At this line "in.readFully(data);" I�ve got an EOFException.
    The the aByte = "st".getBytes(); was 2bytes long and at the server "int length = in.readInt();" it was 363273. Why?
    All code was generated by NetBeans Mobility pack 5 it's not mine so its a bug?
    How can I fix this?

    I found that bug. I've described it here
    http://www.netbeans.org/issues/show_bug.cgi?id=74109
    There's a solution how to fix the generated code.

  • Bug: Temp files with 0-Byte size are not removed after PDF export

    Post Author: chaplin
    CA Forum: Exporting
    When exporting to PDF through the CR-API (CRPE) the temporary files epfHHHH.tmp and ctmHHHH.tmp in the windows temporary path (with HHHH = hexadecimal number with 4 digits) are not deleted when they are 0-Byte in size - even after closing the application which called the CRPE-API. When HHHH reaches its limit (hex FFFF = dec 65535) the Crystal Reports DLLs are not able to create more PDFs - the export aborts with an error and the PDFs are 0-Byte in size.
    This behaviour was tested/reproduced with Crystal Reports 8.5, but (as many other long-term bugs) might be also exist in later releases of Crystal Reports as well as on the other SDK interfaces.
    KBase Article ID:2009412, Track ID: ADAPT00011016 and Escalation ID: 1472 describes a solution for this problem and Business Objects says that using Crxf_pdf.dll, version 8.6.0.108, dated 04/25/2002 or later solves the problem. We are using a newer one from 2003 (version 8.6.2.429) and still see this problem. It seems that 0-Byte-Files are ommitted from the deletion.
    Does anybody know a workaround or solution for this bug?

    Wendell,
    This forum is for handling issues migrating from non-Oracle databases to Oracle databases.
    As this is an Oracle to Oracle issue using SQL*Developer export it would be better to open a new thread in the SQL*Developer forum -
    SQL Developer
    There will be more people there who can help with this problem.
    Regards,
    Mike
    Edited by: mkirtley on May 14, 2010 10:16 AM

  • External Table - possible bug related to record size and total bytes in fil

    I have an External Table defined with fixed record size, using Oracle 10.2.0.2.0 on HP/UX. At 279 byte records (1 or more fields, doesn't seem to matter), it can read almost 5M bytes in the file (17,421 records to be exact). At 280 byte records, it can not, but blows up with "partial record at end of file" - which is nonsense. It can read up to 3744 records, just below 1,048,320 bytes (1M bytes). 1 record over that, it blows up.
    Now, If I add READSIZE and set it to 1.5M, then it works. I found this extends further, for instance 280 recsize with READSIZE 1.5M will work for a while but blows up on 39M bytes in the file (I didn't bother figuring exactly where it stops working in this case). Increasing READSIZE to 5M works again, for 78M bytes in file. But change the definition to have 560 byte records and it blows up. Decrease the file size to 39M bytes and it still won't work with 560 byte records.
    Anyone have any explanation for this behavior? The docs say READSIZE is the read buffer, but only mentions that it is important to the largest record that can be processed - mine are only 280/560 bytes. My table definition is practically taken right out of the example in the docs for fixed length records (change the fields, sizes, names and it is identical - all clauses the same).
    We are going to be using these external tables a lot, and need them to be reliable, so increasing READSIZE to the largest value I can doesn't make me comfortable, since I can't be sure in production how large an input file may become.
    Should I report this as a bug to Oracle, or am I missing something?
    Thanks,
    Bob

    I have an External Table defined with fixed record size, using Oracle 10.2.0.2.0 on HP/UX. At 279 byte records (1 or more fields, doesn't seem to matter), it can read almost 5M bytes in the file (17,421 records to be exact). At 280 byte records, it can not, but blows up with "partial record at end of file" - which is nonsense. It can read up to 3744 records, just below 1,048,320 bytes (1M bytes). 1 record over that, it blows up.
    Now, If I add READSIZE and set it to 1.5M, then it works. I found this extends further, for instance 280 recsize with READSIZE 1.5M will work for a while but blows up on 39M bytes in the file (I didn't bother figuring exactly where it stops working in this case). Increasing READSIZE to 5M works again, for 78M bytes in file. But change the definition to have 560 byte records and it blows up. Decrease the file size to 39M bytes and it still won't work with 560 byte records.
    Anyone have any explanation for this behavior? The docs say READSIZE is the read buffer, but only mentions that it is important to the largest record that can be processed - mine are only 280/560 bytes. My table definition is practically taken right out of the example in the docs for fixed length records (change the fields, sizes, names and it is identical - all clauses the same).
    We are going to be using these external tables a lot, and need them to be reliable, so increasing READSIZE to the largest value I can doesn't make me comfortable, since I can't be sure in production how large an input file may become.
    Should I report this as a bug to Oracle, or am I missing something?
    Thanks,
    Bob

  • Bug: NULL bytes being written to file on SMB volumes

    This is a 100% reproducable bug.
    When writing to files that are on a Samba (SMB) volume, if you are overwriting a file and making it smaller than it previously was, then OSX is writing NULL bytes to the end fo the file, which produce all sorts of problems, especially for software developers.
    How to reproduce:
    Open Terminal, navigate to a SMB volume and do the following:
    # echo "test" > test.txt
    # more test.txt
    test
    # echo "test test test test" > test.txt
    # more test.txt
    test test test test
    # echo "test" > test.txt
    # more test.txt
    "test.txt" may be a binary file.  See it anyway?
    test
    ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
    This is 100% reproducable every time.  As you can see, when you overwrite a file with a larger version, the NULL bytes are not written to the file.  But when you overwrite with a smaller version, NULL bytes are written to the end of the file.
    This problem is especially a problem for developers.  I came across this bug because I had a git repository on an SMB share/volume.  Whenever I would try to commit changes to the repository, if the git commit log file was shorter than it was in the previous commit, then git threw the error:
    error: a NULL byte in commit log message not allowed.
    fatal: failed to write commit object
    You can see this issue being discussed and reported in several places:
    http://stackoverflow.com/questions/20696643/how-do-i-keep-nul-bytes-from-appeari ng-throughout-my-git-repository-and-commit-m
    http://stackoverflow.com/questions/19705825/error-a-nul-byte-in-commit-log-messa ge-not-allowed
    https://netbeans.org/bugzilla/show_bug.cgi?id=237766
    This bug was introduced in Mavericks.  Also, remounting the volume using cifs:// doesn't make a difference.
    Does anyone have any solutions for this problem?  Has this been reported to Apple?  Does Apple know about this problem?

    Apple doesn’t routinely monitor the discussions.
    Send Apple feedback. They won't answer, but at least will know there is a problem. If enough people send feedback, it may get the problem solved sooner.
    Feedback
    Or you can use your Apple ID to register with this site and go the Apple BugReporter. Supposedly you will get an answer if you submit feedback.
    Feedback via Apple Developer

  • [svn:osmf:] 11205: Fix bug FM-169: Trait support for data transfer sample doesn' t display bytes loaded and bytes total for SWF element

    Revision: 11205
    Author:   [email protected]
    Date:     2009-10-27 15:04:26 -0700 (Tue, 27 Oct 2009)
    Log Message:
    Fix bug FM-169: Trait support for data transfer sample doesn't display bytes loaded and bytes total for SWF element
    Ticket Links:
        http://bugs.adobe.com/jira/browse/FM-169
    Modified Paths:
        osmf/trunk/apps/samples/framework/PluginSample/src/PluginSample.mxml
        osmf/trunk/apps/samples/framework/PluginSample/src/org/osmf/model/Model.as

    The bug is known, and a patch has been submitted: https://bugs.freedesktop.org/show_bug.cgi?id=80151. There's been no update since friday, so I wonder what the current status is, or if it's up for review at all.
    Does anyone know how we can be notified when this patch hits the kernel?

  • If I am viewing a page with the words date or match, the words are hyperlinks to a dating website. This is not so if I view the same pages in IE and has not been picked up by Norton, Spybot or malware bytes etc. Is this a Firefox bug?

    If I am viewing a page with the words date or match, the words are hyperlinks to a dating website. This is not so if I view the same pages in IE and has not been picked up by Norton, Spybot or malware bytes etc. Is this a Firefox bug?

    You need to scan with all programs because each program detects different malware.<br />
    Make sure that you update each program to get the latest version of their databases before doing a scan.<br />
    * http://www.malwarebytes.org/mbam.php - Malwarebytes' Anti-Malware
    * http://www.superantispyware.com/ - SuperAntispyware
    * http://www.microsoft.com/windows/products/winfamily/defender/default.mspx - Windows Defender: Home Page
    * http://www.safer-networking.org/en/index.html - Spybot Search & Destroy
    * http://www.lavasoft.com/products/ad_aware_free.php - Ad-Aware Free
    See also:
    * "Spyware on Windows": http://kb.mozillazine.org/Popups_not_blocked

  • OracleDbType.Byte bug

    I believe i found a bug using OracleDbType.Byte command parameters.
    I am using ODP 10.2.0.2 (ADO.Net 2.0) with Oracle 10.2.0.1.
    The bug can be reproduced with this code :
    using (OracleConnection cnx = new OracleConnection(cnxString))
    string cmdText = "SELECT * FROM TABLE_TEST WHERE COL_NUM = :PARAM";
    OracleCommand cmd = new OracleCommand(cmdText, cnx);
    byte b = 204;
    cmd.Parameters.Add("PARAM", OracleDbType.Byte, b, ParameterDirection.Input);
    DataSet result = new DataSet();
    using (OracleDataAdapter da = new OracleDataAdapter(cmd))
    da.Fill(result);
    foreach(DataRow dr in result.Tables[0].Rows)
    Console.WriteLine(dr["COL_NUM"]);
    This code queries a table 'TABLE_TEST' with just one column 'COL_NUM' of type NUMBER.
    In this table, I added two rows : one with the value 204, one another with the value -52.
    The query should return the row containing 204, but it returns instead the row containing -52.
    I think somewhere the parameter is cast to a signed value.
    I can by-pass the bug by changing the OracleDbType (Int16, Int32...), but when the OracleDbType is inferred from the value, this is very annoying.

    I've been doing a bit of experimenting around this... sort of interesting...
    This code:
    namespace Miscellaneous {
      class Program {
        static unsafe void Main(string[] args) {
          byte b = 0;
          byte* pb = &b;
          *pb = 255;
          byte b2 = *pb;
    }Produces this IL:
    .method private hidebysig static void  Main(string[] args) cil managed
      .entrypoint
      // Code size       18 (0x12)
      .maxstack  2
      .locals init ([0] uint8 b,
               [1] uint8* pb,
               [2] uint8 b2)
      IL_0000:  nop
      IL_0001:  ldc.i4.0
      IL_0002:  stloc.0
      IL_0003:  ldloca.s   b
      IL_0005:  conv.u
      IL_0006:  stloc.1
      IL_0007:  ldloc.1
      IL_0008:  ldc.i4     0xff
      IL_000d:  stind.i1
      IL_000e:  ldloc.1
      IL_000f:  ldind.u1
      IL_0010:  stloc.2
      IL_0011:  ret
    } // end of method Program::MainSo, even though I am using byte and not sbyte the store IL shows "stind.i1" (i.e. signed); however, the load of that value does show "ldind.u1" (i.e. unsigned).
    Still, it does seem that at some point the value becomes signed...
    - Mark

  • Converting bytes to shorts using arrays and NIO buffers - is this a bug?

    I'm benchmarking the various methods for converting a sequence of bytes into shorts. I tried copying a byte array, a direct NIO buffer and a non-direct NIO buffer to a short array (using little-endian byte order). My results were a little confusing to me. As I understand it, direct buffers are basically native buffers - allocated by the OS instead of on the runtime's managed heap, hence their higher allocation cost and ability to perform quicker IO with channels that can use them directly. I also got the impression that non-direct buffers (which have a backing array) are basically just regular Java arrays wrapped in a ByteBuffer.
    I didn't expect a huge difference between the results of my three tests, though I thought the two NIO methods might perform a bit quicker if the virtual machine was smart enough to notice that little-endian is my system's native byte order (hence allowing the chunk of memory to simply be copied, rather than applying a bunch of shifts and ORs to the bytes). Conversion with the direct NIO buffer was indeed faster than my byte array method, however the non-direct NIO buffer performed over ten times slower than even my array method. I can see it maybe performing a millisecond or two slower than the array method, what with virtual function call overhead and a few if checks to see what byte order should be used and what not, but shouldn't that method basically be doing exactly the same thing as my array method? Why is it so horribly slow?
    Snippet:
    import java.nio.*;
    public class Program {
      public static final int LOOPS = 500;
      public static final int BUFFER_SIZE = 1024 * 1024;
      public static void copyByteArrayToShortArrayLE(byte[] buffer8, short[] buffer16) {
        for(int i = 0; i < buffer16.length; i += 2){
          buffer16[i >>> 1] = (short) ((buffer8[i] & 0xff) | ((buffer8[i + 1] & 0xff) << 8));
      public static void main(String[] args) {
        short[] shorts = new short[BUFFER_SIZE >>> 1];
        byte[] arrayBuffer = new byte[BUFFER_SIZE];
        ByteBuffer directBuffer = ByteBuffer.allocateDirect(BUFFER_SIZE).order(ByteOrder.LITTLE_ENDIAN);
        ByteBuffer nonDirectBuffer = ByteBuffer.allocate(BUFFER_SIZE).order(ByteOrder.LITTLE_ENDIAN);
        long start;
        start = System.currentTimeMillis();
        for(int i = 0; i < LOOPS; ++i) copyByteArrayToShortArrayLE(arrayBuffer, shorts);
        long timeArray = System.currentTimeMillis() - start;
        start = System.currentTimeMillis();
        for(int i = 0; i < LOOPS; ++i) directBuffer.asShortBuffer().get(shorts);
        long timeDirect = System.currentTimeMillis() - start;
        start = System.currentTimeMillis();
        for(int i = 0; i < LOOPS; ++i) nonDirectBuffer.asShortBuffer().get(shorts);
        long timeNonDirect = System.currentTimeMillis() - start;
        System.out.println("Array:      " + timeArray);
        System.out.println("Direct:     " + timeDirect);
        System.out.println("Non-direct: " + timeNonDirect);
    }Result:
    Array:      328
    Direct:     234
    Non-direct: 4860

    Using JDK1.6.0_18 on Ubuntu 9.1 I typically get
    Array: 396
    Direct: 550
    Non-direct: 789
    I think your tests are a little too short for accurate timings because they are likely to be significantly influenced by the JIT compilation.
    If I change to use a GIT warmup i.e.
    public static final int LOOPS = 500;
        public static final int WARMUP_LOOPS = 500;
        public static final int BUFFER_SIZE = 1024 * 1024;
        public static void copyByteArrayToShortArrayLE(byte[] buffer8, short[] buffer16)
            for (int i = 0; i < buffer16.length; i += 2)
                buffer16[i >>> 1] = (short) ((buffer8[i] & 0xff) | ((buffer8[i + 1] & 0xff) << 8));
        public static void main(String[] args)
            short[] shorts = new short[BUFFER_SIZE >>> 1];
            byte[] arrayBuffer = new byte[BUFFER_SIZE];
            ByteBuffer directBuffer = ByteBuffer.allocateDirect(BUFFER_SIZE).order(ByteOrder.LITTLE_ENDIAN);
            ByteBuffer nonDirectBuffer = ByteBuffer.allocate(BUFFER_SIZE).order(ByteOrder.LITTLE_ENDIAN);
            long start = 0;
            for (int i = -WARMUP_LOOPS; i < LOOPS; ++i)
                if (i == 0)
                    start = System.currentTimeMillis();
                copyByteArrayToShortArrayLE(arrayBuffer, shorts);
            long timeArray = System.currentTimeMillis() - start;
            for (int i = -WARMUP_LOOPS; i < LOOPS; ++i)
                if (i == 0)
                    start = System.currentTimeMillis();
                directBuffer.asShortBuffer().get(shorts);
            long timeDirect = System.currentTimeMillis() - start;
            for (int i = -WARMUP_LOOPS; i < LOOPS; ++i)
                if (i == 0)
                    start = System.currentTimeMillis();
                nonDirectBuffer.asShortBuffer().get(shorts);
            long timeNonDirect = System.currentTimeMillis() - start;
            System.out.println("Array:      " + timeArray);
            System.out.println("Direct:     " + timeDirect);
            System.out.println("Non-direct: " + timeNonDirect);
        }then I typically get
    Array: 365
    Direct: 528
    Non-direct: 750
    and if I change to 50,000 loops I typically get
    Array: 37511
    Direct: 57199
    Non-direct: 73913
    You also seem to have a bug in your copyByteArrayToShortArrayLE() method. Should it not be
    public static void copyByteArrayToShortArrayLE(byte[] buffer8, short[] buffer16)
            for (int i = 0; i < buffer8.length; i += 2)
                buffer16[i >>> 1] = (short) ((buffer8[i] & 0xff) | ((buffer8[i + 1] & 0xff) << 8));
        }Edited by: sabre150 on Jan 27, 2010 9:07 AM

  • Bug: Microsoft.Diagnostics.Tracing.EventSource fails to generate manifest when using a byte enum.

    Not sure where to post issues with this library, so I'm trying here.
    This problem occurs with both
    Microsoft Event Source Library 1.0.26 and the latest pre-release
    Microsoft EventSource Library 1.1.13-beta
    When building the following program an error occurs during manifest generation.
    public enum MyEnum : byte
    One,
    Two,
    Three
    [EventSource(Name = "My-EventSource")]
    public sealed class MyEventSource : EventSource
    [Event(1, Channel = EventChannel.Admin, Message = "My value: {0}")]
    public void MyEvent(MyEnum myEnum)
    WriteEvent(1, myEnum);
    error : MSXML Schema Validation Error 0xc00ce16a. At Line=13, Column=56, Union doesn't support this value.
    If I change the enum type to have "Int32" as its underlying type however, everything works as expected.

    Hello Peter,
    >>error : MSXML Schema Validation Error 0xc00ce16a. At Line=13, Column=56, Union doesn't support this value.
    For this issues, it seems to be caused by the eventRegister.exe which is installed with the Microsoft.Diagnostics.Tracing.EventSource 1.0.26, because if I use the System.Diagnostics.Tracing namespace instead, it works fine even with the byte. I think
    the team might have changed its insider implementation(I am not sure since the package on nuget is not open).
    My suggestion for this issue is that you could post this feedback to the site below:
    https://connect.microsoft.com/VisualStudio/Feedback
    Regards.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Multiple return values (Bug-ID 4222792)

    I had exactly the same request for the same 3 reasons: strong type safety and code correctness verification at compile-time, code readability and ease of mantenance, performance.
    Here is what Sun replied to me:
    Autoboxing and varargs are provided as part of
    JSRs 14 and 201
    http://jcp.org/en/jsr/detail?id=14
    http://jcp.org/en/jsr/detail?id=201
    See also:
    http://forum.java.sun.com/forum.jsp?forum=316
    http://developer.java.sun.com/developer/earlyAccess/adding_generics/index.html
    Multiple return values is covered by Bug-ID 4222792
    Typically this is done by returning an array.
    http://developer.java.sun.com/developer/bugParade/bugs/4222792.html
    That's exactly the problem: we dynamically create instances of array objects that would better fit well within the operand stack without stressing the garbage collector with temporary Array object instances (and with their backing store: 2 separate allocations that need to be recycled when it is clearly a pollution that the operand stack would clean up more efficiently)
    If you would like to engage in a discussion with the Java Language developers, the Generics forum would be a better place:
    http://forum.java.sun.com/forum.jsp?forum=316
    I know that (my report was already refering to the JSR for language extension) Generics is not what I was refering to (even if a generic could handle multiple return values, it would still be an allocated Object
    instance to pack them, i.e. just less convenient than using a static class for type safety.
    The most common case of multiple return values involve values that have known static datatypes and that should be checked with strong typesafety.
    The simple case that involves returning two ints then will require at least two object instances and will not solve the garbage collection overhead.
    Using a array of variable objects is exactly similar, except that it requires two instances for the components and one instance for the generic array container. Using extra method parameters with Integer, Byte, ... boxing objects is more efficient, but for now the only practical solution (which causes the least pollution in the VM allocator and garbage collector) is to use a custom class to store the return values in a single instance.
    This is not natural, and needlessly complexifies many interfaces.
    So to avoid this pollution, some solutions are used such as packing two ints into a long and returning a long, depacking the long after return (not quite clean but still much faster at run-time for methods that need to be used with high frequencies within the application. In some case, the only way to cut down the overhead is to inline methods within the caller code, and this does not help code maintenance by splitting the implementation into small methods (something that C++ can do very easily, both because it supports native types parameters by reference, and because it also supports inline methods).
    Finally, suppose we don't want to use tricky code, difficult to maintain, then we'll have to use boxing Object types to allow passing arguments by reference. Shamely boxed native types cannot be allocated on the operand stack as local variables, so we need to instanciate these local variables before call, and we loose the capacity to track the cases where these local variables are not really initialized by an effective call to the method that will assign them. This does not help debugging, and is against the concept of a strongly typed language like Java should be:
    Java makes lots of efforts to track uninitialized variables, but has no way to determine if an already instanciated Object instance refered in a local variable has effectively received an effective assignment because only the instanciation is kept. A typical code will then need to be written like this:
    Integer a = null;
    Integer b = null;
    if (some condition) {
    //call.method(a, b, 0, 1, "dummy input arg");
    // the method is supposed to have assigned a value to a and b,
    // but can't if a and b have not been instanciated, so we perform:
    call.method(a = new Integer(), b = new Integer(), 0, 1, "dummy input
    arg");
    // we must suppose that the method has modified (not initialized!)
    the value
    // of a and b instances.
    now.use(a.value(), b.value())
    // are we sure here that a and b have received a value????
    // the code may be detected at run-time (a null exception)
    // or completely undetected (the method() above was called but it
    // forgot to assign a value to its referenced objects a and b, in which
    // case we are calling in fact: now.use(0, 0); with the default values
    // or a and b, assigned when they were instanciated)
    Very tricky... Hard to debug. It would be much simpler if we just used:
    int a;
    int b;
    if (some condition) {
    (a, b) = call.method(0, 1, "dummy input arg");
    now.use(a, b);
    The compiler would immediately detect the case where a and b are in fact not always initialized (possible use bere initialization), and the first invoked call.method() would not have to check if its arguments are not null, it would not compile if it forgets to return two values in some code path...
    There's no need to provide extra boxing objects in the source as well as at run-time, and there's no stress added to the VM allocator or garbage collector simply because return values are only allocated on the perand stack by the caller, directly instanciated within the callee which MUST (checked at compile-time) create such instances by using the return statement to instanciate them, and the caller now just needs to use directly the variables which were referenced before call (here a and b). Clean and mean. And it allows strong typechecking as well (so this is a real help for programmers.
    Note that the signature of the method() above is:
    class call {
    (int, int) method(int, int, String) { ... }
    id est:
    class "call", member name "method", member type "(IILjava.lang.string;)II"
    This last signature means that the method can only be called by returning the value into a pair of variables of type int, or using the return value as a pair of actual arguments for another method call such as:
    call.method(call.method("dummy input arg"), "other dummy input arg")
    This is strongly typed and convenient to write and debug and very efficient at run-time...

    Can anyone give me some real-world examples where
    multiple return values aren't better captured in a
    class that logically groups those values? I can of
    course give hundreds of examples for why it's better
    to capture method arguments as multiple values instead
    of as one "logical object", but whenever I've hankered
    for multiple return values, I end up rethinking my
    strategy and rewriting my code to be better Object
    Oriented.I'd personally say you're usually right. There's almost always a O-O way of avoiding the situation.
    Sometimes though, you really do just want to return "two ints" from a function. There's no logical object you can think of to put them in. So you end up polluting the namespace:
    public class MyUsefulClass {
    public TwoInts calculateSomething(int a, int b, int c) {
    public static class TwoInts {
        //now, do I use two public int fields here, making it
        //in essence a struct?
       //or do I make my two ints private & final, which
       //requires a constructor & two getters?
      //and while I'm at it, is it worth implementing
      //equals(), how about hashCode()? clone()?
      //readResolve() ?
    }The answer to most of the questions for something as simple as "TwoInts" is usually "no: its not worth implementing those methods", but I still have to think about them.
    More to the point, the TwoInts class looks so ugly polluting the top level namespace like that, MyUsefulClass.TwoInts is public, that I don't think I've ever actually created that class. I always find some way to avoid it, even if the workaround is just as ugly.
    For myself, I'd like to see some simple pass-by-value "Tuple" type. My fear is it'd be abused as a way for lazy programmers to avoid creating objects when they should have a logical type for readability & maintainability.
    Anyone who has maintained code where someone has passed in all their arguments as (mutable!) Maps, Collections and/or Arrays and "returned" values by mutating those structures knows what a nightmare it can be. Which I suppose is an argument that cuts both ways: on the one hand you can say: "why add Tuples which would be another easy thing to abuse", on the other: "why not add Tuples, given Arrays and the Collections framework already allow bad programmers to produce unmainable mush. One more feature isn't going to make a difference either way".
    Ho hum.

  • Bugs I've Encountered In PSE 7

    Here are all the reproducible bugs I’ve encountered in PSE 7.  Problems added since my last posting are marked [N].  In the coming weeks, I’ll evaluate PSE 8 to see how many of these have been fixed.
    I’ve reported all of these problems to Adobe. Almost all of them are in the Organizer.  Based on all the reports on the forums, it appears that the Editor has far fewer problems than the Organizer.   Perhaps that’s because the Editor shares the same code with the professional Photoshop, while the Organizer appears to be an orphaned consumer product whose development Adobe has moved offshore.
    For reference, my computer is a midrange Vista laptop with a dual-core 1.9 GHz processor, 4 GB of memory, and a 7200 RPM disk (the same speed as desktop disks).
    File Management and Tagging
    Major Problems
    [N] The conversion of a catalog from PSE 6 to PSE 7 doesn’t properly handle photos that are stored within the PSE 6 catalog folder (as occurs when PSE 6 was used to restore a catalog from a backup).  As a result, it isn’t possible to save photos in version sets, and PSE 7 will create duplicate thumbnails in the Organizer for an edited file.
    File > Backup/Restore Catalog doesn’t backup and restore audio in slide shows.
    Using Folder Location view to move a folder containing hidden files imported in the catalog will silently fail to move the hidden files and will leave the unhidden files disconnected in the catalog.
    When converting a previous-version catalog whose photos are stored inside the catalog folder, as occurs when you’ve previously used File > Restore Catalog with New Location, PSE 7 needlessly copies all those photos. If you have a very large catalog, this will waste huge amounts of disk space; and if there isn’t enough disk space to do the copy, the conversion will fail instantly with a generic non-explanatory error message.
    After reconnecting a file on a network drive, PSE will let you import the file a second time, failing to recognize it as a duplicate.  The catalog is left in an inconsistent state, with two entries in the volume table for the network drive, one upper case and one lower case.
    The Organizer fails very ungracefully when two drives have the same volume serial number, e.g. because of the use of a disk-cloning utility.
    I’m very disappointed that Adobe didn’t add the three lines of code that would have issued a warning when it discovered two drives with the same number.  While most people will never encounter this, when it strikes someone, its symptoms are very mysterious.
    The Reconnect command fails to reconnect when: you move your photos to a new drive, assign the drive the letter of the old drive to the new one, and leave both drives connected to your computer.
    If a hard drive containing photos in the catalog gets its drive letter reassigned by Windows, then the left-hand folder pane of Display > Folder Location view shows the old drive letter, not the new one, as containing the photos.
    This sounds innocuous, but it led a user on the forums to select the wrong drive when dragging and dropping a folder, permanently deleting some files.  This bug and the previous one with Reconnect have the same underlying cause – the Organizer doesn’t update drive letters in its catalog.
    Folder Location view shows incorrect folder contents when more than one keyword tag is selected in the Keyword Tags pane.
    Based on reports on the forums, there appear to be other situations where Folder Location view shows incorrect folder contents, but they haven’t been easy to reproduce.
    The Restore Catalog command puts the wrong path into the restored catalog for folders whose name starts with the catalog name, and it will mark files in those folders as missing. For example if the catalog is named “houses”, and a folder containing photos in the catalog is named “houses photos”, files in the restored catalog will have the path “houses\ photos\” instead of “houses photos\”.
    Minor Problems
    In File > Export, the Common Basename can no longer be empty, and a hyphen is added automatically, so you can no longer get files named 1.jpg, 2.jpg, etc.
    You can get files named 1.jpg, 2.jpg, etc. but you can’t get files named p1.jpg, p2.jpg, etc. – a hyphen is still added in that case.
    Setting the Apply Metadata > Author or Copyright fields or the option Preserve Current Filename In XMP of the advanced options of the Photo Downloader causes duplicate files to be downloaded and imported.
    Integration with Photoshop.com
    Major problems
    [N] Photoshop.com shows an incorrect date/time taken for photos with unknown month, day, or time.
    For photos taken in years prior to 1970, the date/time shows as 12/31/1969 08:00 AM.  For photos with year taken 1970 or later, the date/time shows as the the first month/day/minute/second in that time period in UTC that then gets converted to local time; e.g. “7/2/2005” gets shown as “7/1/2005 5:00 PM” for a user in PDT.
    [N] Photoshop.com doesn’t obey the EXIF Orientation metadata field and can show photos rotated incorrectly, e.g. if they were rotated with the PSE option Edit > Preferences > Files > Rotate JPEGs/TIFFs Using Orientation Metadata.
    Changes to the order of photos in a PSE album aren’t synced to Photoshop.com, and vice versa.
    Adding a photo to a second synced album will cause Photoshop.com to lose any changes you’ve made with PSE’s Edit > Adjust Date And Time.
    If you you rename a file that’s synced with Photoshop.com, Photoshop.com doesn’t pick up the new name (important if you’re using Photoshop.com as a backup service).
    Only the top photo in a version set is synced with Photoshop.com (so you can’t rely on Photoshop.com to backup version sets).
    When a stack is synced with Photoshop.com, all the photos in the stack are synced, but the fact that they were in a stack is lost (so you can’t rely on Photoshop.com to backup stacks).
    Map View
    Major Problems
    Map view is unusably slow with more than about 6-8,000 mapped photos.
    When I tested PSE 7 by importing 12,000 photos (the size of my catalog) that had GPS locations, the red push-pins didn’t blink uncontrollably as they did in PSE 6.   But the Organizer crashed a number of times when I tried to zoom and pan the Map view until I was able to scroll the map to another country and then back again.   The CPU continued to consume 80% of a single CPU (40% of two), even 10 minutes after I closed Map view. When I selected Limit Search to Map Area, PSE took over a minute to respond.
    It takes 5 seconds to assign a keyword tag to a photo if there are 1,000 or more photos with map locations.
    In PSE 7, it takes 3 seconds with 1,000 photos, 12 seconds with 8,000 photos, and 18 seconds with 12,000 photos.
    Giving a map location to a tag assigned to hundreds of photos makes both the Keywords pane and the Map view unusably slow.
    Giving a map location to a tag assigned to 2000 photos makes assigning any keyword tag to a photo very slow (see above).    Searching on keyword tags takes 15 seconds, and a Show All takes 15 seconds.
    Removing the map push-pin of a tag assigned to hundreds of photos mistakenly tries to update the metadata of each photo, which can take tens of minutes and fill up your recycle bin.
    The weird thing is that assigning a map location to the tag doesn’t try to write the metadata of files with that tag.
    Moving map locations always fails, silently (too bad if you want to record backcountry locations not namable via a place name).
    If a photo with GPS coordinates is imported, it doesn’t show as a red push-pin on the map.
    Scrolling the map or restarting the Organizer causes the pin to appear.
    Color Management
    Major Problems
    The Organizer considers photos produced by cameras set to the color space Adobe RGB as untagged with a color profile, showing their colors incorrectly.
    Metadata
    Major Problems
    When setting the Organizer’s date/time for imported photos containing EXIF:DateTimeOriginal but not XMP:DateTimeOriginal, PSE 7 doesn’t properly handle US Daylight Savings Time in years prior to 2007.
    Edit > Adjust Date and Time doesn’t properly handle US Daylight Savings Time when setting date/times many decades ago, e.g. October 5, 1961 12:00 PM.
    In Thumbnail View, the Organizer incorrectly orders files that have unknown time. For example, it will show a file dated 12/25/1976 8:00 PM PST after a file dated 12/26/1976 (unknown time) on a computer in time zone PST.
    If you set a file's date/time fields to all unknown with Edit > Adjust Date And Time, the value of EXIF:DateTimeOriginal isn't cleared by File > Write Keyword Tag.
    The File > Write Keyword Tag command doesn’t create or update .XMP sidecars for Nikon D300 or D80 .NEF raw files (but it does for Canon CR2 raw files).
    New dates set by Edit > Adjust Date and Time sometimes get silently lost.
    See http://www.johnrellis.com/psedbtool/photoshopelements-6-7-faq.htm#_Date/times_of_files for details and workarounds.
    [N] Edit > Adjust Date and Time > Shift To New Starting Date And Time and > Shift By Set Number Of Hours writes the time in UTC rather than local time, as required by the standard, causing other tools to show the wrong date/time.
    File > Write Keyword Tags and Properties fails to write the map location (GPS coordinates) of TIFFs (tested with TIFFs produced by the PSE Editor and the Nikon Coolscan V, Nikon Coolscan 5000, and Epson 4490 scanners).
    File > Write Keyword Tags doesn’t write the map location (GPS coordinates) into the .xmp sidecar files of Nikon D80 or Canon G9 raw photos.
    [N] The Organizer ignores correctly formatted EXIF GPS locations in some files that many other programs can read without trouble; this may be because the EXIF is encoded in little-endian byte order.
    Minor Problems
    [N] Deselecting the option Use “Last Modified” Date If EXIF Date Is Not Found does not work – the last-modified date is always used for an imported file that doesn’t contain an EXIF date.
    The Properties – Metadata window shows the wrong value for Date Time Original when the month, day, or time is unknown.
    Edit > Adjust Date and Time applied to a file with time “unknown” decrements the date by one day.
    When you save an edited photo as a new file but not in a version set, the edited version picks up the date/time and caption of the original but not the keyword tags, star rating, or notes.
    With the Import EXIF Caption option turned off, captions pre-existing in a file’s EXIF:ImageDescription metadata field reappear in the Organizer after invoking the Full Editor.
    Searching
    Major Problems
    The timeline doesn’t correctly display date ranges spanning many years.
    Using the Keyword Tags pane, you can no longer exclude a parent category from a search, e.g. exclude all photos tagged with any tag in the People category.
    The User Guide gives two examples of how to use category exclusion that just don’t work in PSE 6 or 7.  Interestingly, you can almost work around this by doing a text search of “not <category tag>”, e.g. “not People”.   But this will also exclude photos that happen to have the word “people” in their filenames, captions, or notes, probably not what you want.
    Find > By History > Imported On sorts the photo dates alphabetically, rather than by date/time, and it takes a couple of minutes on a large catalog, making the command almost useless; and it shows a scary message “Deleting Keyword Tags”.
    [N] Searching with the Find Bar for “1 star and lower” doesn’t show photos with 0 stars.
    Find > By Details > Rating Is Lower Than 1 Star does work.
    Searching for “0 stars only” doesn’t work for photos in a catalog converted from PSE 5.
    Searching with date ranges doesn’t properly handle time “unknown”.
    Minor Problems
    The Show All button sometimes doesn’t appear if you quickly type a query into the Search text box and hit Enter.
    Setting a date range and then excluding two tags from the search clears the date range.
    Show All doesn’t clear a date range set by Find > Set Date Range (can be very confusing).
    Save Search Criteria As Smart Album isn’t available if a date range has been set but no other search criteria have been.
    When searching, you can exclude a keyword tag and then include an album, but you can’t do it in the other order.
    User Interface
    Major Problems
    On 1024x768 displays, and sometimes at higher resolutions, the Editor Print window is positioned to perfectly obscure the scroll bar of the drop-down list of printer profiles, leading people to think their printer’s profiles aren’t available.
    This bug occurred with higher-resolution displays in PSE 6.
    The menu bars don’t display if you have changed the screen DPI to be larger than 96 (as many people do on today’s ubiquitous high-res displays).
    There is a workaround for both PSE 6 and 7. Set the option > Edit > Preferences > General > Use System Font.  The result isn’t that pretty, since some of the application text will be large and some will be small, but it’s functional, and you’ll still be able to use the higher DPI with all your other applications.
    Minor Problems
    In the Properties window of Full Screen mode, if you click in the Notes field and do Ctrl-A to select all the text, then click in the Caption field and do Ctrl-A to select its text, the notes remain highlighted.
    In the Organizer, Help > System Info reports the wrong amount for “Built-in Memory” on computers with more than 2GB of installed memory.  (The command reports the correct amount in the Editor.)
    The setting of View > Show Borders Around Thumbnails isn’t remembered after you restart PSE.
    Copying a paragraph from Microsoft Word and pasting it into the Notes field of a keyword tag causes some of the spaces between words to be deleted.
    Ctrl-A to select all text doesn’t work in the text fields of the Properties window.
    Interestingly, you can use ctrl-A in the text fields of the full-screen mode Properties window.
    In the full Editor, if at least one open photo is minimized to the Project Bin, Ctrl-Tab no longer cycles through the open windows.
    Dialogs in the Editor sometimes bounce back when you try to move them.
    Dates are shown by Display > Import Batch as 2\20\2008 rather than 2/20/2008.
    In Create > Slide Show > Slide Show Preferences dialog, you can't use backspace or delete to clear the text in the Static and Transition Duration fields -- you need to select the text and then type over the selection (non-standard Windows behavior).
    Escape doesn’t close the full-screen-mode Properties dialog.
    You can’t use the Windows Explorer Tile command to tile the PSE Organizer and Editor windows.
    The Editor window can’t be resized the standard Windows way by grabbing any edge, just the lower-right corner.
    Alt doesn’t underline the shortcut letters of top-level menu items in the Full Editor (but it does in the Organizer).
    The width of the Editor's Palette Bin can't be adjusted by dragging the left edge, as you can with all the other similar panes (Project Bin, Organizer Bin, Map View).
    Slide Shows
    Major Problems
    The duration of a video clip included in a Slide Show is set to the default duration, not the length of the video clip, and right-click Edit Duration doesn’t change the clip’s duration.
    For video clips, PSE 7 doesn’t enable the command to change the duration as it does for photos. But you can work around this by using Add Media > Photos And Videos From Folder to add the clip to the show.
    An audio caption attached to a photo isn’t imported into a slide show even though the option Include Audio Captions as Narration is selected.
    Editor
    Minor Problems
    [N] The Editor crashes if you invoke Quick Fix and use just one Touch Up tool (e.g. Whiten Teeth) and then save the file (but your changes are correctly saved).
    The File > Save For Web command doesn’t remember the last settings (e.g. file format and quality) after your restart the Editor.
    For a workaround, see http://www.johnrellis.com/psedbtool/photoshopelements-6-7-faq.htm#_Allow_Save_For.

    Just kidding.    But, are you going to give us a bug comparison between 7 and 8 ?   I will probably sit version 8 out and get 9 next year.  Thanks for the list!
    Juergen

  • [Patch 정보] TRACKING BUG FOR CUMULATIVE MLR#6 ON TOP OF BPEL PM 10.1.3.3.1

    최근에 출시된 BPEL PM 10.1.3.3.1의 통합패치입니다.
    아래는 readme.txt에 포함된 patch list입니다.
    # WARNING: Failure to carefully read and understand these requirements may
    # result in your applying a patch that can cause your Oracle Server to
    # malfunction, including interruption of service and/or loss of data.
    # If you do not meet all of the following requirements, please log an
    # iTAR, so that an Oracle Support Analyst may review your situation. The
    # Oracle analyst will help you determine if this patch is suitable for you
    # to apply to your system. We recommend that you avoid applying any
    # temporary patch unless directed by an Oracle Support Analyst who has
    # reviewed your system and determined that it is applicable.
    # Requirements:
    # - You must have located this patch via a Bug Database entry
    # and have the exact symptoms described in the bug entry.
    # - Your system configuration (Oracle Server version and patch
    # level, OS Version) must exactly match those in the bug
    # database entry - You must have NO OTHER PATCHES installed on
    # your Oracle Server since the latest patch set (or base release
    # x.y.z if you have no patch sets installed).
    # - [Oracle 9.0.4.1 & above] You must have Perl 5.00503 (or later)
    # installed under the ORACLE_HOME, or elsewhere within the host
    # environment.
    # Refer to the following link for details on Perl and OPatch:
    # http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=189489.1
    # If you do NOT meet these requirements, or are not certain that you meet
    # these requirements, please log an iTAR requesting assistance with this
    # patch and Support will make a determination about whether you should
    # apply this patch.
    # 10.1.3.3.1 Bundle Patch 6823628
    # DATE: March 14, 2008
    # Platform Patch for : Generic
    # Product Version # : 10.1.3.3.1
    # Product Patched : Oracle(R) SOA
    # Bugs Fixed by 10.1.3.3.1 Initial patch 6492514 :
    # Bug 5473225 - PATCH01GENESIS HOT UNABLE TO CATCH AN EXCEPTION DURING A
    # TRANSFORM
    # Bug 5699423 - PARTNERLINK PROPERTY THAT SET BPELXPROPERTY FUNCTION DOESN'T
    # WORK
    # Bug 5848272 - STATEFUL WEBSERVICES DEMO ON OTN DOES NOT WORK 10.1.3.1
    # Bug 5872799 - ANT DEPLOY BPEL TEST FAILS/RUNS ON DEFAULT DOMAIN NOT
    # SPECIFIED TARGET DOMAIN
    # Bug 5883401 - ALLOW A WAY TO CREATE EMPTY NODES - AND USE FOR REQUIRED
    # NODES
    # Bug 5919412 - SAMPLE DEMO BPEL PROCESSES MIMESERVICE MIMEREQUESTER AXIS
    # JAVA EXAMPLE ERROR
    # Bug 5924483 - ESB SHOULD SUPPORT SOAP EDNPOINT LOCATION DYNAMIC UDDI LOOKUP
    # Bug 5926809 - ORAPARSEESCAPEDXML XPATH EXPRESSION FAILED TO EXECUTE
    # FOTY0001 TYPE ERROR
    # Bug 5937320 - STRANGE BEHAVIOUR CALLING FROM BPEL TO BPEL GETTING
    # NULLPOINTEREXCEPTION.
    # Bug 5944641 - BPA BLUEPRINT NOT AVAIALBLE IN JDEVELOPER
    # Bug 5945059 - JAVA.LANG.NULLPOINTEREXCEPTION SENDING EMAILS WITH PAYLOADS
    # LARGER THAT 1MB
    # Bug 5962677 - WS RESPONSE IS EMPTY SOAP BODY IN ONE-WAY CALL
    # Bug 5963425 - WHEN THE OUTCOMES FOR A HT CHANGED & IMPORTED - UPDATE
    # CONNECTION ROLES IN BPEL
    # Bug 5964097 - AQ ADAPTER DEPLOYMENT CAUSES OPMN TO PERFORM A FORCEFUL
    # SHUTDOWN IN SOA
    # Bug 5971534 - CANNOT GRANT USER TASK VIEWS TO GROUPS, ONLY TO USERS.
    # Bug 5989367 - REFER TO SR 6252219.993 BPEL 10.1.3 ONLY COPIES IN ASSIGN,
    # IN 10.1.2 IT CREATES
    # Bug 5989527 - ENHANCEMENT WARNING SHOULD BE GIVEN UPON UPLOAD IF BPEL
    # PROCESS IS OPEN IN ARIS
    # Bug 5997936 - ESB FAULT DOES NOT GET PROPAGATED TO BPEL
    # Bug 6000575 - PERF NEED ESB PURGE SCRIPT TO PURGE BY DATE AND PROCESS
    # Bug 6001796 - POSTING OF DATE RECEIVED FROM XML GATEWAY TO BPEL FAILED IN
    # ESB
    # Bug 6005407 - BPEL PROCESS DOESN'T PROPOGATE FAULT THROWN BY BPEL
    # SUB-PROCESS
    # Bug 6017846 - MIMETYPE OF EMAIL NOTIFICATION IS NOT SET THROUGH HUMAN TASK
    # Bug 6027734 - DECISION SERVICE IMPORT - LOCATING DECISION SERVICE IN .DECS
    # FILE IMPROPER
    # Bug 6028985 - EXCEEDED MAXIMUM NUMBER OF SUBSCRIBERS FOR QUEUE
    # ORAESB.ESB_CONTROL
    # Bug 6041508 - CREATING/UPDATING DVM CAUSE EXCEPTION
    # Bug 6053708 - FTP ADAPTER DOES NOT SUPPORT ENCRYPTED PASSWORD IN
    # OC4J-RA.XML
    # Bug 6054034 - INDEX4,INDEX5 AND INDEX6 CANNOT BE USED IN BPEL CONSOLE
    # Bug 6068801 - BACKPORT OF BPEL ON WEBLOGIC - VERSION 10.1.3.3
    # Bug 6070991 - HT EXPORT DOES NOT EXPORT PARAMETERS, ALLOW PARTICIPANTS TO
    # INVITE OTHERS
    # Bug 6071001 - WSIF HTTP BINDING NOT WORKING FROM ESB
    # Bug 6073311 - STRESS SCOPE NOT FOUND ON CALLBACK - WRONG (DUPE)
    # SUBSCRIPTION IN TABLE
    # Bug 6081070 - JMS ADAPTER REJECTION HANDLER CREATE 0 BYTE FILES
    # Bug 6083419 - DECISION SERVICE SCOPE NEED TO HAVE A SPECIAL INDICATOR
    # Bug 6085799 - HUMAN TASK ADDED IN SCOPE IN JDEV IS NOT UPDATED TO BPA
    # SERVER
    # Bug 6085933 - EXPORT AND EXPLORE SHOULD USE USER LANGUAGE AND NOT ENGLISH
    # ALWAYS
    # Bug 6086281 - STRING INDEX OUT OF RANGE ERROR FOR COBOL COPYBOOK WITH PIC
    # CLAUSE HAVING S
    # Bug 6086453 - DOMAINS CREATED IN A CLUSTER GETS NOT PROPAGATED TO NEW OR
    # EXISTING NODES
    # Bug 6087484 - MULTIPLE HEADER SETTING CAUSES ESB EXCEPTION
    # Bug 6087645 - ESB SHOULD ALLOW USER PICK RUNTIME PROTOCOL (HTTP/HTTPS)
    # Bug 6110231 - TRANSLATION NOT BASED ON MQ CCSID CHARSET
    # Bug 6120226 - BPEL IS NOT SETTING THE APPS CONTEXT CORRECTLY
    # Bug 6120323 - COMPLETIONPERSISTPOLICY ON DOMAIN LEVEL HAS DISAPPEARED
    # Bug 6125184 - ESB JMS SESSION ROLLBACK ORACLE.JMS.AQJMSEXCEPTION
    # Bug 6127824 - [AIA2.0] CURRENT XREF IMPLEMENTATION IS MISSING REQUIRED
    # INDEXES ON XREF SCHEMA
    # Bug 6128247 - HTTPCONNECTOR POST() METHOD SHOULD RAISE EXCEPTION FOR ALL
    # STATUS CODES EXCEPT 2
    # Bug 6131159 - ENABLE USERS TO CHOOSE XSD WHEN CREATING A BPEL PROCESS FROM
    # BLUE PRINT
    # Bug 6132141 - PROCESS_DEFAULT TABLE STILL CONTAINS INFORMATION FROM
    # UNDEPLOYED PROCESSES
    # Bug 6133190 - ENABLING ESB CONSOLE HTTP/S IS MAKING THE CONSOLE TO COME UP
    # BLANK.
    # Bug 6139681 - BPEL WSDL LINK IN CLUSTERED RUNTIME POINTS TO A SINGLE NODE
    # Bug 6141259 - BASICHEADERS NOT PUTTING WWW-AUTHENTICATE HEADERS FOR HTTP
    # BINDING IN BPEL
    # Bug 6148021 - BPEL NATIVE SCHEMA FOR COBOL COPYBOOK WITH IMPLIED DECIMAL
    # LOSES DIGIT IN OUTPUT
    # Bug 6149672 - XOR DATA - CONDITION EXPRESSION SPECIFICATION IS NOT
    # INTUITIVE IN BPMN MODELS
    # Bug 6152830 - LOSING CONDITIONAL EXPRESSIONS CREATED IN JDEV UPON MERGE
    # Bug 6158128 - BASICHEADERS NOT PUTTING WWW-AUTHENTICATE HEADERS FOR HTTP
    # BINDING
    # Bug 6166991 - WHEN STARTING SOA SUITE,, PROCESSES FAIL DUE TO UNDEFINED
    # WSDL
    # Bug 6168226 - LOCATION-RESOLVER EXCEPTION THROWN IN OPMN LOGS
    # Bug 6187883 - CHANGES FOR BPEL RELEASE ON JBOSS- VERSION 10.1.3.3
    # Bug 6206148 - [AIA2.0] NEW FUNCTION REQUEST, XREFLOOKUPPOPULATEDCOLUMNS()
    # Bug 6210481 - BPEL PROCESS WORKS INCORRECTLY WHEN AN ACTIVITY HAS MULTIPLE
    # TRANSITIONCONDITION
    # Bug 6240028 - WEBSERVICE THAT DOES NOT CHALLENGE FOR BASIC CREDENTIALS
    # CANNOT BE INVOKED
    # Bug 6257116 - MULTIPLE HEADER SETTING CAUSES ESB EXCEPTION
    # Bug 6258925 - MESSAGE RECEIVED BY THE TARGET ENDPOINT VIA HTTP POST IS
    # MISSING THE XML HEADER
    # Bug 6259686 - TOO MANY UNNECESSARY WORKFLOW E-MAIL NOTIFICATIONS GENERATED
    # Bug 6267726 - 10.1.3.3 ORACLE APPLICATIONS ADAPTER - NOT ABLE TO CAPTURE
    # BUSINESS EVENT
    # Bug 6272427 - WEBSPHERE BPEL FAILS FOR DATA RETRIEVAL OF SIZE 500+ KB
    # Bug 6276995 - MERGE SCOPE NAME IS NOT UPDATED WHEN CHANGED IN THE SERVER
    # Bug 6280570 - XPATH EXPRESSION ERROR IN MEDIATOR FOR ASSIGNING USER-DEFINED
    # CONTEXT VALUES
    # Bug 6282339 - RETRYCOUNT DOES NOT WORK PROPERLY
    # Bug 6311039 - ONE RECORD IS INSERTED TO SYNC_STORE IF
    # COMPLETIONPERSISTPOLICY SET TO FAULTED
    # Bug 6311809 - [AIA2.0] NON-RETRYABLE ERRORS ARE NOT POSTED ON ESB_ERROR
    # TOPIC
    # Bug 6314784 - THE PRIORITY DEFINED IN THE BPA SUITE IS NOT TRANSFERRED TO
    # THE JDEV CORRECTLY
    # Bug 6314982 - THREADPOOL RACE CONDITION IN ADAPTER INITIALIZATION MESSAGES
    # NOT PROCESSED
    # Bug 6315104 - (SET)CLASSNAME MISSING IN TSENSOR JAXB OBJECTS
    # Bug 6316554 - CONSUME FUNCTIONALITY OF JMS ADAPTER FOR BEA WEBLOGIC DOES
    # NOT WORK
    # Bug 6316950 - FILEADAPTER HARPER ENHANCEMENTS SYNC WRITE AND CHUNKED
    # INTERACTION SPEC
    # Bug 6317398 - THE ICON FOR COMPUTING DIFFERENCE IS MISSING IN JDEV REFRESH
    # FROM SERVER DIALOG
    # Bug 6320506 - IMPORT FAILS WHEN THERE IS AN UNNAMED CASE
    # Bug 6321011 - CANNOT PROCESS 0 BYTE FILE USING FTP ADAPTER
    # Bug 6325749 - TRACKING BUG FOR TRACKING ADDITIONAL CHANGES TO BUG #6032044
    # Bug 6328584 - NEED A NEW XPATH EXPRESSION TO GET ATTACHMENT CONTENT VIA
    # SOAP INVOKATION
    # Bug 6333788 - COLLAPSING OF CONSECUTIVE ASSIGN TASKS BREAKS BAM SENSOR
    # Bug 6335773 - BUILD.XML CONTAINS DO NOT EDIT .. - WHILE <CUSTOMIZE> TASK
    # MUST BE IN <BPELC>
    # Bug 6335805 - AQ ADAPTER OUTBOUND DOESN'T RECONNECT AFTER FAILURE
    # Bug 6335822 - [AIA2.0] PSRPERFESB - RUNTIME DVM PERFORMANCE OVERHEAD IN ABS
    # USE CASE
    # Bug 6339126 - CHECKPOINT BPEL JAVA METHOD DOESN'T WORK IN BPEL 10.1.3.3
    # Bug 6342899 - OUTLINECHANGE.XML NOT UPDATE WITH ACTIVITY FROM NEW BRANCH
    # Bug 6343299 - ESB CONCRETE WSDL NAMESPACE SHOULD BE DIFFERENT FROM IMPORTED
    # WSDL NAMESPACE
    # Bug 6372741 - DEHYDRATION DATABASE KEEPS GROWING IN 10.1.3.3
    # Bug 6401295 - NXSD SHOULD SUPPORT ESCAPING THE TERMINATED/QUOTED/SURROUNDED
    # DELIMITERS
    # Bug 6458691 - DIST DIRECTORY FOR 10.1.3.3.1 NEEDS UPDATE
    # Bug 6461516 - BPEL CONSOLE CHANGES FOR DISPLAYING RELEASE 10.1.3.3.1
    # Bug 6470742 - CHANGE THE VERSION NUMBER AND BUILD INFO IN ABOUT DIALOG IN
    # ESB
    # BUG ADDED IN MLR#1, 6671813 :
    # Bug 6494921 - ORABPEL-02154 IF LONG DOMAIN AND SUITECASE NAMES IN USE
    # BUGS ADDED IN MLR#2, 6671831 :
    # Bug 6456519 - ERROR IN BPEL CONSOLE THREADS TAB:SERVLETEXCEPTION CANNOT GET
    # DISPATCHER TRACE
    # Bug 6354719 - WHICH JGROUP CONFIGURATION PARAMETER IMPACTS BPEL CLUSTER
    # ACTIVITY
    # Bug 6216169 - SCOPE NOT FOUND ERROR WHILE DELIVERING EXPIRATION MESSAGE OF
    # ONALARM
    # Bug 6395060 - ORA-01704 ON INSERTING A FAULTED INVOKE ACTIVITY_SENSOR
    # Bug 6501312 - DEHYDRATION DATABASE KEEPS GROWING IN 10.1.3.3 #2
    # Bug 6601020 - SEARCHBASE WHICH INCLUDES PARENTHESIS IN THE NAMES DOES NOT
    # WORK
    # Bug 6182023 - WAIT ACTIVITY FAILS TO CONTINUE IN CLUSTER WHEN PROCESSING
    # NODE GOES DOWN
    # BUGS ADDED IN MLR#3, 6723162 :
    # Bug 6725374 - INSTANCE NOT FOUND IN DATASOURCE
    # Bug 4964824 - TIMED OUT IF SET CORRELATIONSET INITIATE YES IN REPLY
    # ACTIVITY
    # Bug 6443218 - [AIA2.0]BPEL PROCESS THAT REPLIES A CAUGHT FAULT AND THEN
    # RETHROWS IT IS STUCK
    # Bug 6235180 - BPPEL XPATH FUNCTION XP20 CURRENT-DATETIME() IS RETURNING AN
    # INCORRET TIME
    # Bug 6011665 - BPEL RESTART CAUSES ORABPEL-08003 FAILED TO READ WSDL
    # Bug 6731179 - INCREASED REQUESTS CAUSE OUTOFMEMORY ERRORS IN OC4J_SOA WHICH
    # REQUIRES A RESTART
    # Bug 6745591 - SYNC PROCESS <REPLY> FOLLOWED BY <THROW> CASE CAUSING
    # OUTOFMEMORY ERRORS
    # Bug 6396308 - UNABLE TO SEARCH FOR HUMAN TASK THAT INCLUDES TASK HISTORY
    # FROM PREVIOUS TASK
    # Bug 6455812 - DIRECT INVOCATION FROM ESB ROUTING SERVICE FAILS WHEN CALLED
    # BPEL PROCESS
    # Bug 6273370 - ESBLISTENERIMPL.ONFATALERROR GENERATING NPE ON CUSTOM ADAPTER
    # Bug 6030243 - WORKFLOW NOTIFICATIONS FAILING WITHOUT BPELADMIN USER
    # Bug 6473280 - INVOKING A .NET 3.0 SOAP SERVICE EXPOSED BY A ESB ENDPOINT
    # GIVES A NPE
    # BUGS ADDED IN MLR#4, 6748706 :
    # Bug 6336442 - RESETTING ESB REPOSITORY DOES NOT CLEAR DB SLIDE REPOSITORY
    # Bug 6316613 - MIDPROCESS ACTIVATION AGENT DOES NOT ACTIVATED FOR RETIRED
    # BPEL PROCESS
    # Bug 6368420 - SYSTEM IS NOT ASSIGNING TASK FOR REAPPROVAL AFTER REQUEST
    # MORE INFO SUBMITTED
    # Bug 6133670 - JDEV: UNABLE TO CREATE AN INTEGRATION SERVER CONNETION WHEN
    # ESB IS ON HTTPS
    # Bug 6681055 - TEXT ATTACHMENT CONTENT IS CORRUPTED
    # Bug 6638648 - REQUEST HEADERS ARE NOT PASSED THROUGH TO THE OUTBOUND HEADER
    # Bug 5521385 - [HA]PATCH01:ESB WILL LOSE TRACKING DATA WHEN JMS PROVIDER IS
    # DOWN
    # Bug 6759068 - WORKLIST APPLICATION PERFORMANCE DEGRADATION W/ SSL ENABLED
    # FOR BPEL TO OVD
    # BUGS ADDED IN MLR#5, 6782254 :
    # Bug 6502310 - AUTOMATED RETRY ON FAILED INVOKE WITH CORRELATIONSET INIT
    # FAILS
    # Bug 6454795 - FAULT POLICY CHANGE NEEDS RESTART OF BPEL SERVER
    # Bug 6732064 - FAILED TO READ WSDL ERROR ON THE CALLBACK ON RESTARTING BPEL
    # OC4J CONTAINER
    # Bug 6694313 - ZERO BYTE FILE WHEN REJECTEDMESSAGEHANDLERS FAILS
    # Bug 6686528 - LINK IN APPLICATION.XML FILES CHANGED TO HARD LINKS WHEN MORE
    # THAN 1 HT PRESENT
    # Bug 6083024 - TEXT AND HTML DOC THAT RECEIVED AS ATTACHMENTS WERE EITHER
    # BLANK OR GARBLED
    # Bug 6638648 - REQUEST HEADERS ARE NOT PASSED THROUGH TO THE OUTBOUND HEADER
    # Bug 6267726 - 10.1.3.3 ORACLE APPLICATIONS ADAPTER - NOT ABLE TO CAPTURE
    # BUSINESS EVENT
    # Bug 6774981 - NON-RETRYABLE ERRORS ARE NOT POSTED ON ESB_ERROR TOPIC
    # Bug 6789177 - SFTP ADAPTER DOES NOT SUPPORT RENAMING FILES
    # Bug 6809593 - BPEL UPGRADE TO 10.1.3.3.1 WITH ESB CALLS FAILS DUE TO
    # CACHING OF PLNK - SERVICE
    # BUGS ADDED IN MLR#6, 6823628 :
    # Bug 6412909 - <BPELX:RENAME> DOES NOT ADD XMLNS DECLARATION AUTOMATICALLY
    # Bug 6753116 - OUTPUT FROM HUMAN TASK IS NOT IS NOT CONSISTENT WITH
    # SCHEMA
    # ORDERING
    # Bug 6832205 - BAD VERIFICATIONSERVICE PERFORMANCE IF LDAP SERVICE HAS HUGE
    # DATA
    # Bug 6189268 - CALLING BPEL PROCESS VIA SOAP FROM ESB FAILS WITH
    # NAMENOTFOUNDEXCEPTION
    # Bug 6834402 - JMS ADAPTER IMPROPERLY CASTS XAQUEUESESSION TO QUEUESESSION
    # Bug 6073117 - TASK SERVICE DOESN'T RENDER THE TASK ACTIONS
    # Bug 6054263 - REUSING SOAP WSDL IN RS CAUSES SOAP ACTION'S NS TO BE
    # STRIPPED
    # AWAY
    # Bug 6489703 - ESB: NUMBER OF LISTENERS > 1 GIVES JMS EXCEPTION UNDER STRESS
    # Bug 5679542 - FTP ADAPTER: COULD NOT PARSE TIME:
    # JAVA.LANG.STRINGINDEXOUTOFBOUNDSEXCEPTION
    # Bug 6770198 - AQ ACTIVATIONINSTANCES >1 DOESN'T WORK IN ESB
    # Bug 6798779 - ESB ROUTING RULES CORRUPTED ON RE-REGISTERING WITH ROUTING
    # ORDER
    # IN WSDL CHANGED
    # Bug 6617974 - BACKPORT REQUEST FOR MOVING FILES FUNCTION OF FTP ADAPTER
    # Bug 6705707 - VALIDATION ON ESB CAN'T HANDLE NESTED SCHEMAS
    # Bug 6414848 - FTP ADAPTER ARCHIVE FILENAME FOR BPEL IS BEING SCRAMBLED
    # AFTER
    # THE 10.1.3.3 UPGR
    # Bug 5990764 - INFORMATION ARE LOST WHEN BPEL PROCESS IS POLLING FOR MAILS
    # WITH
    # ATTACHEMENTS
    # Bug 6802070 - ORA-12899 SUBSCRIBER_ID/RES_SUBSCRIBER COLUMN SMALL FOR LONG
    # DOMAIN AND PROCESS
    # Bug 6753524 - WRONG SERVICE ENDPOINT OPEN WHEN TEST WEB SERVICE OF ESB
    # Bug 6086434 - PROBLEM IN BPEL FILE ADAPTER WHILE READING A FIXED LENGTH
    # FILE
    # Bug 6823374 - BPEL 10.1.3.3.1 BAM SENSOR ACTION FAILS WITH BAM 11
    # Bug 6819677 - HTTS STATUS 202 RETURNED INSTEAD OF SOAP FAULT
    # Bug 6853301 - MQ ADAPTER REJECTED MESSAGES IS NOT REMOVED FROM THE RECOVERY
    # QUEUE
    # Bug 6847200 - 10.1.3.3.1 PATCH (#6748706) HAS STOPPED FTP ADAPTER POLLING
    # IN
    # SFTP MODE
    # Bug 6895795 - AQ OUTBOUND DOESN'T WORK WITH MLR#6
    업무에 참고하시기 바랍니다.

    David,
    You are right, theer are some changes incorporated in the latest MLR # 16 on the configurations files and on the dehydration store metrics(such as performance, fields,..).
    However, I would not suggest to continue working on olite, even for Development/Test purposes as you might get stuck with strange errors...and the only solution would be to re-install SOA Suite if your olite gets corrupted. There might be ways to gets your olite back to position, but trust me..its not so simple.
    Also, when you develop and stress test all your testcase scenarios in an TEST Adv installation, its simple to mimic the same in actual production box, as you exactly know its behavior.
    So, go for a brand new SOA 10.1.3.4 MLR # 5 (or) 10.1.3.3.1 MLR # 16 SOA Suite Advanced installation with Oracle DB 10.2.0.3 as its dehydration store.
    Hope this helps!
    Cheers
    Anirudh Pucha

  • 3.1EA2 bug still not fixed - Members of package body not listed in the tree

    Hi, I was working today with SQL Developer again and found that this bug is still not fixed even when it was reported more than 1 year ago!!!
    I did a quick search and found it here
    Package Body Tree not always showing
    The problem is when you expand the package specification or package body tree, not all members of the specification/body are listed. This is mostly observable in the package body, but it regards to the specification as well.
    Consider this case:
    CREATE TABLE EMP (
        ID               NUMBER(6,0) DEFAULT 0,
        NAME             VARCHAR2(20 BYTE) DEFAULT NULL,
        DEPT             VARCHAR2(20 BYTE) DEFAULT NULL,
        FUNCTION         VARCHAR2(20 BYTE),
        PROCEDURE        VARCHAR2(20 BYTE));
    CREATE TABLE LOOP (
      AREA    VARCHAR2(5),
      VALUE   VARCHAR2(2));
    CREATE OR REPLACE PACKAGE Test_Package1 AS
    gvc_const CONSTANT VARCHAR2(10) := 'xxx';
    PROCEDURE Test(p_RC OUT NUMBER,
                   p_ID IN NUMBER);
    END Test_Package1;
    CREATE OR REPLACE PACKAGE BODY Test_Package1 AS
    PROCEDURE Test(p_RC OUT NUMBER,
                   p_ID IN NUMBER)
    IS
    BEGIN
      --INSERT INTO EMP (ID, NAME, DEPT, PROCEDURE) VALUES (1, 'Tina', 'xxx', 'xxx');
      --INSERT INTO EMP (ID, NAME, DEPT, FUNCTION) VALUES (2, 'Jeff', 'xxx', 'xxx');
      --INSERT INTO LOOP(AREA, VALUE) VALUES('a','b');
      NULL;
    END;
    END Test_Package1;Compile the package specification and the body. Expand the spec + body in the tree. Uncomment any of the commented lines in the package body and compile the body again. Now expand the package body again and look what is displayed.
    Why? It is because SQL Developer handles words "Function", "Procedure" and "Loop" as keywords and according to them does the parsing.
    Another case
    CREATE OR REPLACE PACKAGE Test_Package1 AS
    gvc_const CONSTANT VARCHAR2(10) := 'xxx';
    TYPE Loop_rec IS RECORD(
      item1   LOOP.AREA%TYPE);
    PROCEDURE Test(p_RC OUT NUMBER,
                   p_ID IN NUMBER);
    END Test_Package1;Compile just this specification and try to expand it in the tree. Again, during parsing the package, SQL Developer takes the word "LOOP" into consideration and fails to parse the specification.
    There is exactly the same problem when you declare functions from external dll libraries in package body. Since there is no "END;" in this case, SQL Developer's parser fails...
    To me it seems you simply blindly took some keywords like "FUNCTION" and expect there will be some "END;" keyword corresponding with it.
    Can anyone have a look at this and finally fix it?

    Hi,
    Thanks for trying out SQL Developer 3.1 EA2 and providing a clear, reproducible test case for this issue. I logged an internal bug for it:
    Bug 13438696 - 3.1EA2: FORUM: CERTAIN KEYWORDS IN PKG BODY BLOCK MEMBERS FROM CONN VIEW TREE
    It seems the bug noted in the other forum thread you reference has been fixed, but really had nothing to do with problems discussed either here or there. That fix involved adding an Edit Body... item to the Package context menu in the Schema Browser, not displaying Package members correctly in the Connection view tree.
    Regards,
    Gary
    SQL Developer Team

Maybe you are looking for

  • Error: Common entries are not permitted for plan queries and input queries

    Hi, I have a 2 selections in the column struct: 1. year = 2005, version = actual 2. year = 2006, version = plan, marked as data can be changed using user entry or planning function row has posting periods from 1-12 in the workbook I have inserted thi

  • Using MIME with JAX-RPC

    Hi, I am trying to send simple MIME body part using RPC. Where can I find a working code sample ? My problem is that I don't know how to pass the SOAPContext to the server side. Or failing while trying to deliver an activation DataHandler as paramete

  • Call to Operative System function from DB procedure stored

    I need to call some unix's function just like copy and delete files, but these, in a DB procedure stored... there are some package or function (like 'Host()' in sqlplus), for make a call a OS funtions from a DB procedure stored??? I'm using a Oracle

  • External JavaScript Sheet

    I've been adding a little JavaScript to my WebHelp pages for quite some time to make them a bit more user friendly. In the interest of easier maintenance, smaller files and speed, I thought it would be best to shift this repeatedly used code to a sep

  • OBI 11g and OBI 10g pointing to the same database

    Hi guys! I have a questions. On my PROD server I've installed database and OBI 10g. I want to install now OBI 11G on a separate machine and point repository to the same database. Is it possible? Will it cause any problems? With regards, PsmakR