Index: tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java	(revision 1408755)
+++ tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java	(working copy)
@@ -347,7 +347,7 @@
            stream.close();
        }
 
-       // Check we coud get the headers from the start
+       // Check we could get the headers from the start
        assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
        assertEquals("Girl you have no faith in medicine", metadata.get(TikaCoreProperties.TITLE));
        assertEquals("The White Stripes", metadata.get(TikaCoreProperties.CREATOR));
@@ -364,4 +364,22 @@
        assertEquals(null, metadata.get("samplerate"));
        assertEquals(null, metadata.get("channels"));
     }
+
+    // TIKA-1024
+    public void testNakedUTF16BOM() throws Exception {
+       Parser parser = new AutoDetectParser(); // Should auto-detect!
+       ContentHandler handler = new BodyContentHandler();
+       Metadata metadata = new Metadata();
+
+       InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+               "/test-documents/testNakedUTF16BOM.mp3");
+       
+       try {
+           parser.parse(stream, handler, metadata, new ParseContext());
+       } finally {
+           stream.close();
+       }
+       assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
+       assertEquals("", metadata.get(XMPDM.GENRE));
+    }
 }
Index: tika-parsers/src/test/resources/test-documents/testNakedUTF16BOM.mp3
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tika-parsers/src/test/resources/test-documents/testNakedUTF16BOM.mp3
===================================================================
--- tika-parsers/src/test/resources/test-documents/testNakedUTF16BOM.mp3	(revision 1408755)
+++ tika-parsers/src/test/resources/test-documents/testNakedUTF16BOM.mp3	(working copy)

Property changes on: tika-parsers/src/test/resources/test-documents/testNakedUTF16BOM.mp3
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java	(revision 1408755)
+++ tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java	(working copy)
@@ -71,6 +71,9 @@
 
         if (audioAndTags.tags.length > 0) {
            CompositeTagHandler tag = new CompositeTagHandler(audioAndTags.tags);
+           for(ID3Tags tag2 : audioAndTags.tags) {
+             System.out.println("TAG: " + tag2  + ": " + tag2.getGenre());
+           }
 
            metadata.set(TikaCoreProperties.TITLE, tag.getTitle());
            metadata.set(TikaCoreProperties.CREATOR, tag.getArtist());
Index: tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java	(revision 1408755)
+++ tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java	(working copy)
@@ -227,6 +227,16 @@
            return "";
         }
 
+        // TIKA-1024: If it's UTF-16 (with BOM) and all we
+        // have is a naked BOM then short-circuit here
+        // (return empty string), because new String(..)
+        // gives different results on different JVMs
+        if (encoding.encoding.equals("UTF-16") && actualLength == 2 &&
+            ((data[offset] == (byte) 0xff && data[offset+1] == (byte) 0xfe) ||
+             (data[offset] == (byte) 0xfe && data[offset+1] == (byte) 0xff))) {
+          return "";
+        }
+
         try {
             // Build the base string
             return new String(data, offset, actualLength, encoding.encoding);
Index: CHANGES.txt
===================================================================
--- CHANGES.txt	(revision 1408755)
+++ CHANGES.txt	(working copy)
@@ -42,6 +42,10 @@
   * MHTML: fixed Null charset name exception when a mime part has an
     unrecognized charset (TIKA-1011).
 
+  * MP3: if an ID3 tag was encoded in UTF-16 with only the BOM then on
+    certain JVMs this would incorrectly extract the BOM as the tag's
+    value (TIKA-1024).
+
 Release 1.2 - 07/10/2012
 ---------------------------------
 
