PackedInteger encoding does not preserve order - but it could

Currently, when viewed under the default unsigned lexical ordering, "packed" integers (and longs) do not sort numerically. This is because for values requiring two or more bytes, the "value" bytes are stored little endian.
For example:
<tt> 65910 -> 7a ff 00 01</tt>
<tt> 65911 -> 7a 00 01 01</tt>
However, it's possible to encode packed integers such that they still sort correctly. You can do this by modifying the existing PackedInteger algorithm as follows:
<li>Invert the high-order bit on the first byte
<li>Reverse the order of the second and subsequent bytes (if any)
<li>If the original number was negative, invert (one's complement) the bits in the second and subsequent bytes (if any)
Here's some examples showing the two encodings:
              NUMBER             ENCODING         NEW ENCODING
-9223372036854775808   8189ffffffffffff7f   018000000000000076
         -2147483648           8589ffff7f           0580000076
              -65911             86000101             06fefeff
              -65910             86ff0001             06feff00
              -65655             86000001             06feffff
              -65654               87ffff               070000
              -65400               8701ff               0700fe
              -65399               8700ff               0700ff
                -375               870001               07feff
                -374                 88ff                 0800
                -120                 8801                 08fe
                -119                   89                   09
                  -1                   ff                   7f
                   0                   00                   80
                   1                   01                   81
                 119                   77                   f7
                 120                 7801                 f801
                 374                 78ff                 f8ff
                 375               790001               f90100
                 631               790002               f90200
               65399               7900ff               f9ff00
               65400               7901ff               f9ff01
               65654               79ffff               f9ffff
               65655             7a000001             fa010000
               65910             7aff0001             fa0100ff
               65911             7a000101             fa010100
          2147483647           7b88ffff7f           fb7fffff88
9223372036854775807   7f88ffffffffffff7f   ff7fffffffffffff88So the question is.. any particular reason this wasn't done? Would this alternate encoding be a useful addition? (I'm sure it's not possible to replace the current algorithm at this point).
Thanks.

greybird wrote:
Thanks Archie. I appreciate this and I know you have good intentions. Unfortunately, we won't be able to incorporate any code from your svn repository. We can only incorporate submissions if the source code is posted here in our OTN forum.Not a problem... Here is the new class:
package org.dellroad.sidekar.util;
import com.sleepycat.bind.tuple.TupleInput;
import com.sleepycat.bind.tuple.TupleOutput;
import java.util.Arrays;
* An improved version of Berkeley DB's {@link com.sleepycat.util.PackedInteger} class that packs values in such
* a way that their order is preserved when compared using the default binary unsigned lexical ordering.
* @see <a href="http://forums.oracle.com/forums/thread.jspa?messageID=4126254">Berkeley DB Java Edition forum posting</a>
public final class PackedLong {
     * Maximum possible length of an encoded value.
    public static final int MAX_ENCODED_LENGTH = 9;
     * Minimum value for the first byte of a single byte encoded value. Lower values indicate a multiple byte encoded negative value.
    public static final int MIN_SINGLE_BYTE_ENCODED = 0x08;        // values 0x00 ... 0x07 prefix negative values
     * Maximum value for the first byte of a single byte encoded value. Higher values indicate a multiple byte encoded positive value.
    public static final int MAX_SINGLE_BYTE_ENCODED = 0xf7;        // values 0xf8 ... 0xff prefix positive values
     * Adjustment applied to single byte encoded values before encoding.
    public static final int ZERO_ADJUST = 127;                     // single byte value that represents zero
     * Minimum value that can be encoded as a single byte.
    public static final int MIN_SINGLE_BYTE_VALUE = MIN_SINGLE_BYTE_ENCODED - ZERO_ADJUST;          // -119
     * Maximum value that can be encoded as a singel byte.
    public static final int MAX_SINGLE_BYTE_VALUE = MAX_SINGLE_BYTE_ENCODED - ZERO_ADJUST;          // 120
     * Adjustment applied to multiple byte encoded negative values before encoding.
    public static final int NEGATIVE_ADJUST = -MIN_SINGLE_BYTE_VALUE;                               // 119
     * Adjustment applied to multiple byte encoded positive values before encoding.
    public static final int POSITIVE_ADJUST = -(MAX_SINGLE_BYTE_VALUE + 1);                         // -121
    // Cutoff values at which the encoded length changes (this field is package private for testing purposes)
    static final long[] CUTOFF_VALUES = new long[] {
        0xff00000000000000L - NEGATIVE_ADJUST,      // [ 0] requires 8 bytes
        0xffff000000000000L - NEGATIVE_ADJUST,      // [ 1] requires 7 bytes
        0xffffff0000000000L - NEGATIVE_ADJUST,      // [ 2] requires 6 bytes
        0xffffffff00000000L - NEGATIVE_ADJUST,      // [ 3] requires 5 bytes
        0xffffffffff000000L - NEGATIVE_ADJUST,      // [ 4] requires 4 bytes
        0xffffffffffff0000L - NEGATIVE_ADJUST,      // [ 5] requires 3 bytes
        0xffffffffffffff00L - NEGATIVE_ADJUST,      // [ 6] requires 2 bytes
        MIN_SINGLE_BYTE_VALUE,                      // [ 7] requires 1 byte
        MAX_SINGLE_BYTE_VALUE + 1,                  // [ 8] requires 2 bytes
        0x0000000000000100L - POSITIVE_ADJUST,      // [ 9] requires 3 bytes
        0x0000000000010000L - POSITIVE_ADJUST,      // [10] requires 4 bytes
        0x0000000001000000L - POSITIVE_ADJUST,      // [11] requires 5 bytes
        0x0000000100000000L - POSITIVE_ADJUST,      // [12] requires 6 bytes
        0x0000010000000000L - POSITIVE_ADJUST,      // [13] requires 7 bytes
        0x0001000000000000L - POSITIVE_ADJUST,      // [14] requires 8 bytes
        0x0100000000000000L - POSITIVE_ADJUST,      // [15] requires 9 bytes
    private PackedLong() {
     * Write the encoded value to the output.
     * @param output destination for the encoded value
     * @param value value to encode
    public static void write(TupleOutput output, long value) {
        output.makeSpace(MAX_ENCODED_LENGTH);
        int len = encode(value, output.getBufferBytes(), output.getBufferLength());
        output.addSize(len);
     * Read and decode a value from the input.
     * @param input input holding an encoded value
     * @return the decoded value
    public static long read(TupleInput input) {
        long value = decode(input.getBufferBytes(), input.getBufferOffset());
        input.skipFast(getReadLength(input));
        return value;
     * Determine the length (in bytes) of an encoded value without advancing the input.
     * @param input input holding an encoded value
     * @return the length of the encoded value
    public static int getReadLength(TupleInput input) {
        return getReadLength(input.getBufferBytes(), input.getBufferOffset());
     * Determine the length (in bytes) of an encoded value.
     * @param buf buffer containing encoded value
     * @param off starting offset of encoded value
     * @return the length of the encoded value
     * @throws ArrayIndexOutOfBoundsException if {@code off} is not a valid offset in {@code buf}
    public static int getReadLength(byte[] buf, int off) {
        int prefix = buf[off] & 0xff;
        if (prefix < MIN_SINGLE_BYTE_ENCODED)
            return 1 + MIN_SINGLE_BYTE_ENCODED - prefix;
        if (prefix > MAX_SINGLE_BYTE_ENCODED)
            return 1 + prefix - MAX_SINGLE_BYTE_ENCODED;
        return 1;
     * Determine the length (in bytes) of the encoded value.
     * @return the length of the encoded value, a value between one and {@link #MAX_ENCODED_LENGTH}
    public static int getWriteLength(long value) {
        int index = Arrays.binarySearch(CUTOFF_VALUES, value);
        if (index < 0)
            index = ~index - 1;
        return index < 8 ? 8 - index : index - 6;
     * Encode the given value into a new buffer.
     * @param value value to encode
     * @return byte array containing the encoded value
    public static byte[] encode(long value) {
        byte[] buf = new byte[MAX_ENCODED_LENGTH];
        int len = encode(value, buf, 0);
        if (len != MAX_ENCODED_LENGTH) {
            byte[] newbuf = new byte[len];
            System.arraycopy(buf, 0, newbuf, 0, len);
            buf = newbuf;
        return buf;
     * Encode the given value and write the encoded bytes into the given buffer.
     * @param value value to encode
     * @param buf output buffer
     * @param off starting offset into output buffer
     * @return the number of encoded bytes written
     * @throws ArrayIndexOutOfBoundsException if {@code off} is negative or the encoded value exceeds the given buffer
    public static int encode(long value, byte[] buf, int off) {
        int len = 1;
        if (value < MIN_SINGLE_BYTE_VALUE) {
            value += NEGATIVE_ADJUST;
            long mask = 0x00ffffffffffffffL;
            for (int shift = 56; shift != 0; shift -= 8) {
                if ((value | mask) != ~0L)
                    buf[off + len++] = (byte)(value >> shift);
                mask >>= 8;
            buf[off] = (byte)(MIN_SINGLE_BYTE_ENCODED - len);
        } else if (value > MAX_SINGLE_BYTE_VALUE) {
            value += POSITIVE_ADJUST;
            long mask = 0xff00000000000000L;
            for (int shift = 56; shift != 0; shift -= 8) {
                if ((value & mask) != 0L)
                    buf[off + len++] = (byte)(value >> shift);
                mask >>= 8;
            buf[off] = (byte)(MAX_SINGLE_BYTE_ENCODED + len);
        } else {
            buf[off] = (byte)(value + ZERO_ADJUST);
            return 1;
        buf[off + len++] = (byte)value;
        return len;
     * Decode a value from the given buffer.
     * @param buf buffer containing an encoded value
     * @param off starting offset of the encoded value in {@code buf}
     * @return the decoded value
     * @throws ArrayIndexOutOfBoundsException if {@code off} is negative or the encoded value is truncated
     * @see #getReadLength
    public static long decode(byte[] buf, int off) {
        int first = buf[off++] & 0xff;
        if (first < MIN_SINGLE_BYTE_ENCODED) {
            long value = ~0L;
            while (first++ < MIN_SINGLE_BYTE_ENCODED)
                value = (value << 8) | (buf[off++] & 0xff);
            return value - NEGATIVE_ADJUST;
        if (first > MAX_SINGLE_BYTE_ENCODED) {
            long value = 0L;
            while (first-- > MAX_SINGLE_BYTE_ENCODED)
                value = (value << 8) | (buf[off++] & 0xff);
            return value - POSITIVE_ADJUST;
        return (byte)(first - ZERO_ADJUST);
}and here is the unit test:
package org.dellroad.sidekar.util;
import com.sleepycat.bind.tuple.TupleInput;
import com.sleepycat.bind.tuple.TupleOutput;
import com.sleepycat.je.DatabaseEntry;
import org.dellroad.sidekar.TestSupport;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public class PackedLongTest extends TestSupport {
    @Test(dataProvider = "encodings")
    public void testEncoding(long value, String string) {
        // Test direct encoding
        byte[] expected = ByteArrayEncoder.decode(string);
        byte[] actual = PackedLong.encode(value);
        assertEquals(actual, expected);
        // Test write()
        TupleOutput out = new TupleOutput();
        PackedLong.write(out, value);
        assertEquals(out.toByteArray(), expected);
        // Test getWriteLength()
        assertEquals(actual.length, PackedLong.getWriteLength(value));
        // Test decoding
        long value2 = PackedLong.decode(actual, 0);
        assertEquals(value2, value);
        // Test read()
        TupleInput input = JEUtil.toTupleInput(new DatabaseEntry(actual));
        assertEquals(actual.length, PackedLong.getReadLength(input));
        value2 = PackedLong.read(input);
        assertEquals(value2, value);
        // Test getReadLength()
        assertEquals(actual.length, PackedLong.getReadLength(actual, 0));
    @Test(dataProvider = "lengths")
    public void testEncodedLength(long value, int expected) {
        int actual = PackedLong.getWriteLength(value);
        assertEquals(actual, expected);
        byte[] buf = PackedLong.encode(value);
        assertEquals(buf.length, expected);
    @DataProvider(name = "encodings")
    public Object[][] genEncodings() {
        return new Object[][] {
            // Corner cases
            { 0x8000000000000000L, "008000000000000077" },
            { 0xfeffffffffffff88L, "00feffffffffffffff" },
            { 0xfeffffffffffff89L, "0100000000000000" },
            { 0xfeffffffffffffffL, "0100000000000076" },
            { 0xfffeffffffffff88L, "01feffffffffffff" },
            { 0xfffeffffffffff89L, "02000000000000" },
            { 0xfffeffffffffffffL, "02000000000076" },
            { 0xfffffeffffffff88L, "02feffffffffff" },
            { 0xfffffeffffffff89L, "030000000000" },
            { 0xfffffeffffffffffL, "030000000076" },
            { 0xfffffffeffffff88L, "03feffffffff" },
            { 0xfffffffeffffff89L, "0400000000" },
            { 0xfffffffeffffffffL, "0400000076" },
            { 0xfffffffffeffff88L, "04feffffff" },
            { 0xfffffffffeffff89L, "05000000" },
            { 0xfffffffffeffffffL, "05000076" },
            { 0xfffffffffffeff88L, "05feffff" },
            { 0xfffffffffffeff89L, "060000" },
            { 0xfffffffffffeffffL, "060076" },
            { 0xfffffffffffffe88L, "06feff" },
            { 0xfffffffffffffe89L, "0700" },
            { 0xfffffffffffffeffL, "0776" },
            { 0xffffffffffffff88L, "07ff" },
            { 0xffffffffffffff89L, "08" },
            { 0xffffffffffffffa9L, "28" },
            { 0xffffffffffffffc9L, "48" },
            { 0xffffffffffffffe9L, "68" },
            { 0xffffffffffffffffL, "7e" },
            { 0x0000000000000000L, "7f" },
            { 0x0000000000000001L, "80" },
            { 0x0000000000000071L, "f0" },
            { 0x0000000000000077L, "f6" },
            { 0x0000000000000078L, "f7" },
            { 0x0000000000000079L, "f800" },
            { 0x0000000000000178L, "f8ff" },
            { 0x0000000000000179L, "f90100" },
            { 0x0000000000010078L, "f9ffff" },
            { 0x0000000000010079L, "fa010000" },
            { 0x0000000001000078L, "faffffff" },
            { 0x0000000001000079L, "fb01000000" },
            { 0x0000000100000078L, "fbffffffff" },
            { 0x0000000100000079L, "fc0100000000" },
            { 0x0000010000000078L, "fcffffffffff" },
            { 0x0000010000000079L, "fd010000000000" },
            { 0x0001000000000078L, "fdffffffffffff" },
            { 0x0001000000000079L, "fe01000000000000" },
            { 0x0100000000000078L, "feffffffffffffff" },
            { 0x0100000000000079L, "ff0100000000000000" },
            { 0x7fffffffffffff79L, "ff7fffffffffffff00" },
            { 0x7fffffffffffffffL, "ff7fffffffffffff86" },
            // Other cases
            { 0xffffffff80000000L, "0480000077" },
            { 0xfffffffffffefe89L, "05feff00" },
            { 0xfffffffffffefe8aL, "05feff01" },
            { 0xfffffffffffeff86L, "05fefffd" },
            { 0xfffffffffffeff87L, "05fefffe" },
            { 0xfffffffffffeff88L, "05feffff" },
            { 0xfffffffffffeff89L, "060000" },
            { 0xfffffffffffeff8aL, "060001" },
            { 0xffffffffffff0086L, "0600fd" },
            { 0xffffffffffff0087L, "0600fe" },
            { 0xffffffffffff0088L, "0600ff" },
            { 0xffffffffffff0089L, "060100" },
            { 0xfffffffffffffe86L, "06fefd" },
            { 0xfffffffffffffe87L, "06fefe" },
            { 0xfffffffffffffe89L, "0700" },
            { 0xfffffffffffffe8aL, "0701" },
            { 0xffffffffffffff87L, "07fe" },
            { 0xffffffffffffff88L, "07ff" },
            { 0xffffffffffffff89L, "08" },
            { 0xffffffffffffffffL, "7e" },
            { 0x0000000000000000L, "7f" },
            { 0x0000000000000001L, "80" },
            { 0x0000000000000077L, "f6" },
            { 0x0000000000000078L, "f7" },
            { 0x0000000000000176L, "f8fd" },
            { 0x0000000000000177L, "f8fe" },
            { 0x0000000000000178L, "f8ff" },
            { 0x0000000000000277L, "f901fe" },
            { 0x000000000000ff77L, "f9fefe" },
            { 0x000000000000ff78L, "f9feff" },
            { 0x000000000000ff79L, "f9ff00" },
            { 0x000000000000ff7aL, "f9ff01" },
            { 0x0000000000010076L, "f9fffd" },
            { 0x0000000000010077L, "f9fffe" },
            { 0x0000000000010078L, "f9ffff" },
            { 0x0000000000010079L, "fa010000" },
            { 0x000000000001007aL, "fa010001" },
            { 0x0000000000010176L, "fa0100fd" },
            { 0x0000000000010177L, "fa0100fe" },
            { 0x000000007fffffffL, "fb7fffff86" },
            { 0x7fffffffffffffffL, "ff7fffffffffffff86" },
    @DataProvider(name = "lengths")
    public Object[][] genLengths() {
        return new Object[][] {
            // Check cutoff values
            {   PackedLong.CUTOFF_VALUES[ 0] - 1,      9   },
            {   PackedLong.CUTOFF_VALUES[ 0],          8   },
            {   PackedLong.CUTOFF_VALUES[ 1] - 1,      8   },
            {   PackedLong.CUTOFF_VALUES[ 1],          7   },
            {   PackedLong.CUTOFF_VALUES[ 2] - 1,      7   },
            {   PackedLong.CUTOFF_VALUES[ 2],          6   },
            {   PackedLong.CUTOFF_VALUES[ 3] - 1,      6   },
            {   PackedLong.CUTOFF_VALUES[ 3],          5   },
            {   PackedLong.CUTOFF_VALUES[ 4] - 1,      5   },
            {   PackedLong.CUTOFF_VALUES[ 4],          4   },
            {   PackedLong.CUTOFF_VALUES[ 5] - 1,      4   },
            {   PackedLong.CUTOFF_VALUES[ 5],          3   },
            {   PackedLong.CUTOFF_VALUES[ 6] - 1,      3   },
            {   PackedLong.CUTOFF_VALUES[ 6],          2   },
            {   PackedLong.CUTOFF_VALUES[ 7] - 1,      2   },
            {   PackedLong.CUTOFF_VALUES[ 7],          1   },
            {   PackedLong.CUTOFF_VALUES[ 8] - 1,      1   },
            {   PackedLong.CUTOFF_VALUES[ 8],          2   },
            {   PackedLong.CUTOFF_VALUES[ 9] - 1,      2   },
            {   PackedLong.CUTOFF_VALUES[ 9],          3   },
            {   PackedLong.CUTOFF_VALUES[10] - 1,      3   },
            {   PackedLong.CUTOFF_VALUES[10],          4   },
            {   PackedLong.CUTOFF_VALUES[11] - 1,      4   },
            {   PackedLong.CUTOFF_VALUES[11],          5   },
            {   PackedLong.CUTOFF_VALUES[12] - 1,      5   },
            {   PackedLong.CUTOFF_VALUES[12],          6   },
            {   PackedLong.CUTOFF_VALUES[13] - 1,      6   },
            {   PackedLong.CUTOFF_VALUES[13],          7   },
            {   PackedLong.CUTOFF_VALUES[14] - 1,      7   },
            {   PackedLong.CUTOFF_VALUES[14],          8   },
            {   PackedLong.CUTOFF_VALUES[15] - 1,      8   },
            {   PackedLong.CUTOFF_VALUES[15],          9   },
            // Check some other values
            { Long.MIN_VALUE,                               9   },
            { Long.MAX_VALUE,                               9   },
            { (long)Integer.MIN_VALUE,                      5   },
            { (long)Integer.MAX_VALUE,                      5   },
            { (long)Short.MIN_VALUE,                        3   },
            { (long)Short.MAX_VALUE,                        3   },
            { (long)Byte.MIN_VALUE,                         2   },
            { (long)Byte.MAX_VALUE,                         2   },
            { 0,                                            1   },
}Edited by: archie172 on Mar 3, 2010 12:40 PM
Removed copyright message.

Similar Messages

  • With using any version of iTunes, whenever I import songs into my library using the "add to library" function, iTunes adds those songs in songs' alphabetical order. This is pretty annoying since it does not preserve the logical track number or album.

    With using any version of iTunes, whenever I import songs into my library using the "add to library" function, iTunes adds those songs in songs' alphabetical order. This is pretty annoying since it does not preserve the logical track number or even the album sort order (for example when adding 2 albums stored in a unique folder). Anyone has any ideas ? Been stumped for a while....!!!

    hi i had the same problem today when i updated my itunes to latest version. however, i have just found my songs in the 'itunes media' folder. this was accessed through 'my music'  then keep clicking through until you find itunes media and all my library songs were in there and i then just added these files to my library and all were restored however, i have lost all my playlists but at least my 700 songs are back. very dissapointed with apple that they have let this happen with their latest update, the previous version was miles better than this one . hope you find them. stevo

  • How is my laptop working even though I spilled iced tea on it? The keyboard does not light up but works normally, and everything else seems to be in order!

    how is my laptop working even though I spilled iced tea on it? The keyboard does not light up but works normally, and everything else seems to be in order! The front of the bottom is hot while the rest if mildly warm. I don't know if its going to have a problem in the future. I wiped off as much as I could with a cloth and left it open and upside down for 10-15 minutes. Any idea if I am in the clear?

    Please make a Genius Appointment and take it in for service. Do not wait.

  • CS6: Premiere exports MXF Op1a (mpeg based) but Media Encoder does not.

    As a company we use several local machines with a full installation of CS6.
    Premiere Pro exports in our broadcast format (MXF Op1a - mpeg based - Long GOP - 50Mb - Top Field First - etc...) still Media Encoder does not.
    They we both installed in the same procedure, full installation of CS6. MXF presets are present on both directories (Premiere and Media Encoder).
    ME simply doesn't recognize "any know exporters" even if I force a preset, when it comes to MXF.
    We have to import every single video into Premiere to export as MXF. It's difficult to create an effective workflow this way.
    Any thoughts on why is this happening?
    NOTE:
    - Updated twice all machines - first to 6.0.3, now to 6.0.5 = no result
    - Copied presets from a working trial installation = no result
    - Microsoft based OS core i7 with 12Gb RAM, 3Tb HD and Nvidia Quadro 4000
    Regards, RicardoM

    I've read a lot of suggestions towards similar issues. None worked.
    - installed codec packs incluiding different mpeg variations = no result
    - copied /common preset files from premiere to AME = no result
    - copied and replaced the full directory of AME from another working AME (with MXF exporter) = no result
    - re-installed CS6 = no result
    - updated CS6 twice = no result
    - added MXF Preset zip file available in the official Adobe support (although it refers to mac presets) = no matter... no result
    I really don't know what else to do.
    It's difficult to accept suggestions like "format c and start over" cause of the impact on the production room, so I really need more options other than the extreme ones...
    Any ideia Jim Simon?
    Thanks in advance!
    BTW: Must add that in all processes above, MXF exporting was allways possible in Premiere, just not in AME.

  • Importing clips from iMovie HD does not preserve capture date

    Hi,
    I am importing iMovie HD projects into iMovie 09.
    The clips in iMovie HD (originally imported from DV) have the correct capture date/time on them.
    However, when I import these clips into iMovie 09, it does not preserve these dates for the events but instead chooses to use the "file create date/time" as the event date time.
    Is this info lost forever in iMovie 09 or is there some setting that can use the original clip capture date info as the event date/time?
    Thanks.

    Hi,
    I am importing iMovie HD projects into iMovie 09.
    The clips in iMovie HD (originally imported from DV) have the correct capture date/time on them.
    However, when I import these clips into iMovie 09, it does not preserve these dates for the events but instead chooses to use the "file create date/time" as the event date time.
    Is this info lost forever in iMovie 09 or is there some setting that can use the original clip capture date info as the event date/time?
    Thanks.

  • HT1369 Brand new computer with Windows 8.1 will not sync with iPod Classic 120G.  Windows does not recognize anything but iPod Touch?  Is there a simple sloution?

    Brand new computer with Windows 8.1 will not sync to iPod Classic 120G.  Windows does not recognize anything but iPod Touch?  Is there a simple solution.  Diagnostics have run and failed to point to a fix.

    Might be worth tearing down the whole iTunes install and starting over...
    Go to Control Panel > Add or Remove Programs (Win XP) or Programs and Features (Later)
    Remove all of these items in the following order:
    iTunes
    Apple Software Update
    Apple Mobile Device Support
    Bonjour
    Apple Application Support
    Reboot, download iTunes, then reinstall, either using an account with administrative rights, or right-clicking the downloaded installer and selecting Run as Administrator.
    See also HT1925: Removing and Reinstalling iTunes for Windows XP or HT1923: Removing and reinstalling iTunes for Windows Vista, Windows 7, or Windows 8
    Should you get the error iTunes.exe - Entry Point Not Found after the above reinstall then copy QTMovieWin.dll from:
    C:\Program Files (x86)\Common Files\Apple\Apple Application Support
    and paste into:
    C:\Program Files (x86)\iTunes
    The above paths would be for a 64-bit machine. Hopefully the same fix with the " (x86)" omitted would work on 32-bit systems with the same error.
    tt2

  • IPhone black screen does not show anything, but I can hear that the device works. I hear the lock open the screen and hear the iPod but the screen remains black

    IPhone black screen does not show anything, but I can hear that the device works. I hear the lock open the screen and hear the iPod but the screen remains black!!

    It's happened to me before as well. Try holding both lock(top right) and home buttons simultaneously until u see a slight flash of wight then just reboot it normally. If that doesn't work try restoring your device from itunes

  • Keyboard plugs into the back of my display does not work? but when I plug the keyboard into my MacBook Pro it works fine? is it my display Monitor?

    My keyboard plugs into the back of my display monitor it does not work? but when I plug the keyboard into my MacBook Pro it works fine? is it my display Monitor?

    Try:
    - Resetting the iPod:
    Reset iPod touch:  Press and hold the On/Off Sleep/Wake button and the Home
    button at the same time for at least ten seconds, until the Apple logo appears.
    - Resetting network settings: Setting>General>Reset>Reset Network Settings

  • My Firefox version is 13.0.1, I use Windows Seven 64-bit, when I click on Firefox, but the program does not run! But Firefox is seen in the list of Windows proc

    My Firefox version is 13.0.1, I use Windows Seven 64-bit, when I click on Firefox, but the program does not run! But Firefox is seen in the list of Windows processes, while Firefox does not run.
    I manually deleted Firefox from the list once I have Windows processing.
    And when I clicked on Firefox, Firefox will open quickly and easily.
    Firefox process in Windows Processes names list called "firefox.exe * 32" is.
    Please try to solve my problem, my problem is how to solve?

    Hi, are you saying that you start Firefox and it stalls -- you can see it in the Task Manager but it never displays -- but if you kill that process and start Firefox again it starts up properly that second time?
    If you look at the statistics available in the Task Manager's processes tab such as bytes read or other bytes, can you see whether Firefox is doing anything at all? ''Note: You might need to add columns if your Processes tab isn't set up to display statistics. You can do that from the View menu.''
    You might already have seen these troubleshooting articles. If not, does anything here help:
    * [[Firefox won't start - find solutions]]
    * [[Firefox hangs or is not responding - How to fix]]

  • Weblogic 8.1 SP2 does not support 'Order by' clause in EJB-QL

    It seems that Weblogic 8.1 SP2 does not support 'Order by' clause in EJB-QL. EJB 2.1 spec supports 'Order by' clause in EJB-QL. Am I right when I say that it indicates : "Weblogic 8.1 SP2 does not support EJB 2.1" ? In that case, what can be the alternative since I am using Weblogic 8.1 and I require 'Order by' clause in Ejb-QL as well.

    In WL 8.1 SP4 I can use the ORDERBY just fine.
    Try ORDERBY instead of Order by

  • ACL does not correctly order the permissions when they are updated

    Outlook Connector sjab32.dll 7.1.228.0 sjms32.dll 7.1.228.0 sjui32.dll 7.1.228.0 sjtp32.dll 7.1.228.0
    Problem: We have identifed an issue with editing calendar permissions using the Outlook Connector. Basically the calendar ACEs are evaluated on a first match basic. Outlook Connector does not correctly order the permissions when they are updated. A brief example is below. Editing permissions via UWC works fine and will in fact fix any out of order ACE entries.
    Basic calendar permission:
    1.aces=@@o^a^rsf^g;@@o^p^rw^g;@@o^c^wdeic^g;@^a^sf^g;@^c^^g;@^p^r^g^
    after adding user mab, Ace has now been re-ordered so that the everyone permissions are now before the owner permissions:
    2.aces=mab^p^r^g;mab^c^rwd^g;mab^a^rsf^g;@^c^rwd^d;@^c^^g;@^p^r^g;@^a^sf^g;@@o^c^wdeic^g;@@o^p^rw^g;@@o^a^rsf^g
    any suggestion as to why this re-ordering is happening when updated through OC and any supporting doucuments for ACL

    Hi,
    This issue is most likely related to bug #6471869 (Outlook Connector allows invites to users with restricted permissions). This has been fixed in the latest Outlook Connector 7.1_233 (aka 122018-09). I recommend logging a Sun support case to get a copy of this new release.
    Regards,
    Shane.

  • My Mum( a pensioner) is wanting to purchase both an iPhone and iPad.  What is the best way for her to manage her data /calls/txt etc. obviously the cost needs to be as low as possible.  Currently does not have WiFi but uses dongle

    My Mum( a pensioner) is wanting to purchase both an iPhone and iPad.  What is the best way for her to manage her data /calls/txt etc. obviously the cost needs to be as low as possible.  Currently does not have WiFi but uses dongle

    My Mum( a pensioner) is wanting to purchase both an iPhone and iPad.  What is the best way for her to manage her data /calls/txt etc. obviously the cost needs to be as low as possible.  Currently does not have WiFi but uses dongle

  • The problem is that I select as a pdf document does not open completely but leaves the mail. Also I can not open more even Ibook other documents already saved

    the problem is that I select as a pdf document does not open completely but leaves the mail. Also I can not open more even Ibook other documents already saved

    http://www.microsoft.com/mac/support
    http://answers.microsoft.com/en-us/mac/forum/macword?auth=1
    http://answers.microsoft.com/en-us/mac/forum/macoffice2011-macword/microsoft-wor d-for-mac-2011-will-not-open-error/ecc42616-6f49-40bb-b8f5-e21c711ea359

  • I have used Illustrator CS3 on my two try or three previous computers. Now I try to install Illustrator CS3 on a my new (4 weeks old) computer. Adobe does not allow me, but demands me to proof myself being an owner of Illustrator CS2 or older. I don't man

    I have used Illustrator CS3 on my two try or three previous computers. Now I try to install Illustrator CS3 on a my new (4 weeks old) computer. Adobe does not allow me, but demands me to proof myself being an owner of Illustrator CS2 or older. I don't manage to speak English on phone, bad hearing, to fast spoken, odd expressions.What can I do? Is there a possibility to write a complain?

    You can use online chat to talk with Adobe.  For the link below click the Still Need Help? option in the blue area at the bottom and choose the chat option...
    Serial number and activation chat support (non-CC)
    http://helpx.adobe.com/x-productkb/global/service1.html ( http://adobe.ly/1aYjbSC )

  • My iphone automatically locked and it does not open again,but if u call the sim that was inserted you will hear that it was active,so please help me how to open my iphone 4,no display appeared if you touch the switch button

    my iphone automatically locked and it does not open again,but if u call the sim that was inserted you will hear that it was active,so please help me how to open my iphone 4,no display appeared if you touch the switch button,

    Hello arlyn-cavite,
    If the screen is not showing anyting when you press any of the buttons you may want to try these steps.
    From article iPhone: Hardware troubleshooting http://support.apple.com/kb/ts2802
    Will not turn on, will not turn on unless connected to power, or unexpected power off
    Verify that the Sleep/Wake button functions. If it does not function, inspect it for signs of damage. If the button is damaged or is not functioning when pressed, seek service.
    Check if a Liquid Contact Indicator (LCI) is activated or there are signs of corrosion. Learn about LCIs and corrosion.
    Connect the iPhone to the iPhone's USB power adapter and let it charge for at least ten minutes.
    After at least 15 minutes, if:
    The home screen appears: The iPhone should be working. Update to the latest version of iOS if necessary. Continue charging it until it is completely charged and you see this battery icon in the upper-right corner of the screen . Then unplug the phone from power. If it immediately turns off, seek service.
    The low-battery image appears, even after the phone has charged for at least 20 minutes: See "iPhone displays the low-battery image and is unresponsive" symptom in this article.
    Something other than the Home screen or Low Battery image appears, continue with this article for further troubleshooting steps.
    If the iPhone did not turn on, reset it while connected to the iPhone USB power adapter.
    If the display turns on, go to step 4.
    If the display remains black, go to next step.
    Connect the iPhone to a computer and open iTunes. If iTunes recognizes the iPhone and indicates that it is in recovery mode, attempt to restore the iPhone. If the iPhone doesn't appear in iTunes or if you have difficulties in restoring the iPhone, see this article for further assistance.
    If restoring the iPhone resolved the issue, go to step 4. If restoring the iPhone did not solve the issue, seek service.
    Take care,
    Sterling

Maybe you are looking for

  • How to deploy web app from PC to Linux with Netbeans ?

    I am developing a web app in Netbeans 6.0 on my PC, using the Tomcat comes with the IDE, now I need to deploy it to a Linux server running Tomcat, can I do it from inside the IDE ? Can it copy all the servlets and other java classes to the Linux for

  • How to submit a conurrent request with MLS attached from PL/SQL?

    Hi Friends, I am trying to submit RAXINV_SEL from backend. This one has MLS attached. If we submit it from request window,it fires 'Multilanguage' program first and then the RAXINV_SEL. How to set this MLS option from backend? I tried submitting the

  • Icon declaration problem

    I am declaring data as follows       V_ICON   LIKE ICON,       V_ICONCK LIKE ICON VALUE ICON_CHECKED,       V_ICONTR LIKE ICON VALUE ICON_TRANSPORT,       V_ICONRED LIKE ICON VALUE ICON_INCOMPLETE,       V_ICONGREEN LIKE ICON VALUE ICON_CHECKED, Now

  • How does "SoftReference" and "WeakReference" work?

    Hello, everybody! I want to design a cache with "SoftReference" the cache is just like: int length = 1024; Object[] cacheObjects = new Object[length+1]; cacheObjects[value.hashCode() & length] = new SoftReference(value);I hope the "value" and soft re

  • Record audio with labview and audio dataplugin

    The thing I would like to do, is write waveforms to WAV/wma/mp3 files. The way to do this, is probably with the help of the audio data plugin. However, it is far from clear how to configure and use this plugin with LabView. There is documentation ava