Author: cmueller Date: Tue Oct 23 20:53:28 2012 New Revision: 1401462 URL: http://svn.apache.org/viewvc?rev=1401462&view=rev Log: CAMEL-5732: Data coding of 0x02 not considered 8-bit
Modified: camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppUtils.java camel/trunk/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppUtilsTest.java Modified: camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppUtils.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppUtils.java?rev=1401462&r1=1401461&r2=1401462&view=diff ============================================================================== --- camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppUtils.java (original) +++ camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppUtils.java Tue Oct 23 20:53:28 2012 @@ -116,7 +116,13 @@ public final class SmppUtils { } public static Alphabet parseAlphabetFromDataCoding(byte dataCoding) { - return Alphabet.valueOf((byte) (dataCoding & Alphabet.MASK_ALPHABET)); + /* Both the 3.4 and 5.0 SMPP specs clearly state that 0x02 is + * 'Octet-unspecified (8-bit)', but jsmpp doesn't account for this for + * some reason. + */ + return dataCoding == 0x02 + ? Alphabet.ALPHA_8_BIT + : Alphabet.valueOf((byte)(dataCoding & Alphabet.MASK_ALPHABET)); } public static boolean isGsm0338Encodeable(byte[] aMessage) { Modified: camel/trunk/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppUtilsTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppUtilsTest.java?rev=1401462&r1=1401461&r2=1401462&view=diff ============================================================================== --- camel/trunk/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppUtilsTest.java (original) +++ camel/trunk/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppUtilsTest.java Tue Oct 23 20:53:28 2012 @@ -70,15 +70,16 @@ public class SmppUtilsTest { assertEquals(Alphabet.ALPHA_DEFAULT, SmppUtils.parseAlphabetFromDataCoding((byte) 0x00)); assertEquals(Alphabet.ALPHA_DEFAULT, SmppUtils.parseAlphabetFromDataCoding((byte) 0x01)); assertEquals(Alphabet.ALPHA_DEFAULT, SmppUtils.parseAlphabetFromDataCoding((byte) 0x03)); - + + assertEquals(Alphabet.ALPHA_8_BIT, SmppUtils.parseAlphabetFromDataCoding((byte) 0x02)); assertEquals(Alphabet.ALPHA_8_BIT, SmppUtils.parseAlphabetFromDataCoding((byte) 0x04)); assertEquals(Alphabet.ALPHA_8_BIT, SmppUtils.parseAlphabetFromDataCoding((byte) 0x05)); assertEquals(Alphabet.ALPHA_8_BIT, SmppUtils.parseAlphabetFromDataCoding((byte) 0x07)); - + assertEquals(Alphabet.ALPHA_UCS2, SmppUtils.parseAlphabetFromDataCoding((byte) 0x08)); assertEquals(Alphabet.ALPHA_UCS2, SmppUtils.parseAlphabetFromDataCoding((byte) 0x09)); assertEquals(Alphabet.ALPHA_UCS2, SmppUtils.parseAlphabetFromDataCoding((byte) 0x0b)); - + assertEquals(Alphabet.ALPHA_RESERVED, SmppUtils.parseAlphabetFromDataCoding((byte) 0x0c)); assertEquals(Alphabet.ALPHA_RESERVED, SmppUtils.parseAlphabetFromDataCoding((byte) 0x0d)); assertEquals(Alphabet.ALPHA_RESERVED, SmppUtils.parseAlphabetFromDataCoding((byte) 0xff));