Author: markt
Date: Fri Feb 24 10:24:30 2012
New Revision: 1293164

URL: http://svn.apache.org/viewvc?rev=1293164&view=rev
Log:
Add eol config

Modified:
    tomcat/trunk/java/org/apache/catalina/websocket/Utf8Decoder.java   
(contents, props changed)

Modified: tomcat/trunk/java/org/apache/catalina/websocket/Utf8Decoder.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/websocket/Utf8Decoder.java?rev=1293164&r1=1293163&r2=1293164&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/websocket/Utf8Decoder.java (original)
+++ tomcat/trunk/java/org/apache/catalina/websocket/Utf8Decoder.java Fri Feb 24 
10:24:30 2012
@@ -1,207 +1,207 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.catalina.websocket;
-
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CoderResult;
-
-import org.apache.tomcat.util.buf.B2CConverter;
-
-/**
- * Decodes bytes to UTF-8. Extracted from Apache Harmony and modified to reject
- * code points from U+D800 to U+DFFF as per RFC3629. The standard Java decoder
- * does not reject these.
- */
-public class Utf8Decoder extends CharsetDecoder {
-
-    // The next table contains information about UTF-8 charset and
-    // correspondence of 1st byte to the length of sequence
-    // For information please visit http://www.ietf.org/rfc/rfc3629.txt
-    //
-    // Please note, o means 0, actually.
-    // -------------------------------------------------------------------
-    // 0         1         2         3          Value
-    // -------------------------------------------------------------------
-    // oxxxxxxx                                 00000000 00000000 0xxxxxxx
-    // 11oyyyyy  1oxxxxxx                       00000000 00000yyy yyxxxxxx
-    // 111ozzzz  1oyyyyyy  1oxxxxxx             00000000 zzzzyyyy yyxxxxxx
-    // 1111ouuu  1ouuzzzz  1oyyyyyy  1oxxxxxx   000uuuuu zzzzyyyy yyxxxxxx
-
-    private static final int remainingBytes[] = {
-            // 1owwwwww
-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-            // 11oyyyyy
-            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-            1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-            // 111ozzzz
-            2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-            // 1111ouuu
-            3, 3, 3, 3, 3, 3, 3, 3,
-            // > 11110111
-            -1, -1, -1, -1, -1, -1, -1, -1 };
-
-    private static final int remainingNumbers[] = {
-                   0, //                0                 1                2   
        3
-                4224, // (01o00000b <<  6)+(1o000000b)
-              401536, // (011o0000b << 12)+(1o000000b <<  6)+(1o000000b)
-            29892736  // (0111o000b << 18)+(1o000000b << 12)+(1o000000b << 
6)+(1o000000b)
-    };
-
-    private static final int lowerEncodingLimit[] = { -1, 0x80, 0x800, 0x10000 
};
-
-    public Utf8Decoder() {
-        super(B2CConverter.UTF_8, 1.0f, 1.0f);
-    }
-
-    @Override
-    protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out) {
-        if (in.hasArray() && out.hasArray()) {
-            return decodeHasArray(in, out);
-        }
-        return decodeNotHasArray(in, out);
-    }
-
-    private CoderResult decodeNotHasArray(ByteBuffer in, CharBuffer out) {
-        int outRemaining = out.remaining();
-        int pos = in.position();
-        int limit = in.limit();
-        try {
-            while (pos < limit) {
-                if (outRemaining == 0) {
-                    return CoderResult.OVERFLOW;
-                }
-
-                int jchar = in.get();
-                if (jchar < 0) {
-                    jchar = jchar & 0x7F;
-                    int tail = remainingBytes[jchar];
-                    if (tail == -1) {
-                        return CoderResult.malformedForLength(1);
-                    }
-                    if (limit - pos < 1 + tail) {
-                        return CoderResult.UNDERFLOW;
-                    }
-
-                    int nextByte;
-                    for (int i = 0; i < tail; i++) {
-                        nextByte = in.get() & 0xFF;
-                        if ((nextByte & 0xC0) != 0x80) {
-                            return CoderResult
-                                    .malformedForLength(1 + i);
-                        }
-                        jchar = (jchar << 6) + nextByte;
-                    }
-                    jchar -= remainingNumbers[tail];
-                    if (jchar < lowerEncodingLimit[tail]) {
-                        // Should have been encoded in a fewer octets
-                        return CoderResult.malformedForLength(1);
-                    }
-                    pos += tail;
-                }
-                if (jchar <= 0xffff) {
-                  out.put((char) jchar);
-                  outRemaining--;
-                } else {
-                  if (outRemaining < 2) {
-                      return CoderResult.OVERFLOW;
-                  }
-                  out.put((char) ((jchar >> 0xA) + 0xD7C0));
-                  out.put((char) ((jchar & 0x3FF) + 0xDC00));
-                  outRemaining -= 2;
-                }
-                pos++;
-            }
-            return CoderResult.UNDERFLOW;
-        } finally {
-            in.position(pos);
-        }
-    }
-
-    private CoderResult decodeHasArray(ByteBuffer in, CharBuffer out) {
-        int outRemaining = out.remaining();
-        int pos = in.position();
-        int limit = in.limit();
-        final byte[] bArr = in.array();
-        final char[] cArr = out.array();
-        final int inIndexLimit = limit + in.arrayOffset();
-
-        int inIndex = pos + in.arrayOffset();
-        int outIndex = out.position() + out.arrayOffset();
-
-        // if someone would change the limit in process,
-        // he would face consequences
-        for (; inIndex < inIndexLimit && outRemaining > 0; inIndex++) {
-            int jchar = bArr[inIndex];
-            if (jchar < 0) {
-                jchar = jchar & 0x7F;
-                int tail = remainingBytes[jchar];
-
-                if (tail == -1) {
-                    in.position(inIndex - in.arrayOffset());
-                    out.position(outIndex - out.arrayOffset());
-                    return CoderResult.malformedForLength(1);
-                }
-                if (inIndexLimit - inIndex < 1 + tail) {
-                    break;
-                }
-
-                for (int i = 0; i < tail; i++) {
-                    int nextByte = bArr[inIndex + i + 1] & 0xFF;
-                    if ((nextByte & 0xC0) != 0x80) {
-                        in.position(inIndex - in.arrayOffset());
-                        out.position(outIndex - out.arrayOffset());
-                        return CoderResult.malformedForLength(1 + i);
-                    }
-                    jchar = (jchar << 6) + nextByte;
-                }
-                jchar -= remainingNumbers[tail];
-                if (jchar < lowerEncodingLimit[tail]) {
-                    // Should have been encoded in fewer octets
-                    in.position(inIndex - in.arrayOffset());
-                    out.position(outIndex - out.arrayOffset());
-                    return CoderResult.malformedForLength(1);
-                }
-                inIndex += tail;
-            }
-            // Note: This is the additional test added
-            if (jchar >= 0xD800 && jchar <=0xDFFF) {
-                return CoderResult.unmappableForLength(3);
-            }
-            if (jchar <= 0xffff) {
-              cArr[outIndex++] = (char) jchar;
-              outRemaining--;
-            } else {
-              if (outRemaining < 2) {
-                  return CoderResult.OVERFLOW;
-              }
-              cArr[outIndex++] = (char) ((jchar >> 0xA) + 0xD7C0);
-              cArr[outIndex++] = (char) ((jchar & 0x3FF) + 0xDC00);
-              outRemaining -= 2;
-            }
-        }
-        in.position(inIndex - in.arrayOffset());
-        out.position(outIndex - out.arrayOffset());
-        return (outRemaining == 0 && inIndex < inIndexLimit) ?
-                CoderResult.OVERFLOW :
-                CoderResult.UNDERFLOW;
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.catalina.websocket;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CoderResult;
+
+import org.apache.tomcat.util.buf.B2CConverter;
+
+/**
+ * Decodes bytes to UTF-8. Extracted from Apache Harmony and modified to reject
+ * code points from U+D800 to U+DFFF as per RFC3629. The standard Java decoder
+ * does not reject these.
+ */
+public class Utf8Decoder extends CharsetDecoder {
+
+    // The next table contains information about UTF-8 charset and
+    // correspondence of 1st byte to the length of sequence
+    // For information please visit http://www.ietf.org/rfc/rfc3629.txt
+    //
+    // Please note, o means 0, actually.
+    // -------------------------------------------------------------------
+    // 0         1         2         3          Value
+    // -------------------------------------------------------------------
+    // oxxxxxxx                                 00000000 00000000 0xxxxxxx
+    // 11oyyyyy  1oxxxxxx                       00000000 00000yyy yyxxxxxx
+    // 111ozzzz  1oyyyyyy  1oxxxxxx             00000000 zzzzyyyy yyxxxxxx
+    // 1111ouuu  1ouuzzzz  1oyyyyyy  1oxxxxxx   000uuuuu zzzzyyyy yyxxxxxx
+
+    private static final int remainingBytes[] = {
+            // 1owwwwww
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            // 11oyyyyy
+            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+            1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+            // 111ozzzz
+            2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+            // 1111ouuu
+            3, 3, 3, 3, 3, 3, 3, 3,
+            // > 11110111
+            -1, -1, -1, -1, -1, -1, -1, -1 };
+
+    private static final int remainingNumbers[] = {
+                   0, //                0                 1                2   
        3
+                4224, // (01o00000b <<  6)+(1o000000b)
+              401536, // (011o0000b << 12)+(1o000000b <<  6)+(1o000000b)
+            29892736  // (0111o000b << 18)+(1o000000b << 12)+(1o000000b << 
6)+(1o000000b)
+    };
+
+    private static final int lowerEncodingLimit[] = { -1, 0x80, 0x800, 0x10000 
};
+
+    public Utf8Decoder() {
+        super(B2CConverter.UTF_8, 1.0f, 1.0f);
+    }
+
+    @Override
+    protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out) {
+        if (in.hasArray() && out.hasArray()) {
+            return decodeHasArray(in, out);
+        }
+        return decodeNotHasArray(in, out);
+    }
+
+    private CoderResult decodeNotHasArray(ByteBuffer in, CharBuffer out) {
+        int outRemaining = out.remaining();
+        int pos = in.position();
+        int limit = in.limit();
+        try {
+            while (pos < limit) {
+                if (outRemaining == 0) {
+                    return CoderResult.OVERFLOW;
+                }
+
+                int jchar = in.get();
+                if (jchar < 0) {
+                    jchar = jchar & 0x7F;
+                    int tail = remainingBytes[jchar];
+                    if (tail == -1) {
+                        return CoderResult.malformedForLength(1);
+                    }
+                    if (limit - pos < 1 + tail) {
+                        return CoderResult.UNDERFLOW;
+                    }
+
+                    int nextByte;
+                    for (int i = 0; i < tail; i++) {
+                        nextByte = in.get() & 0xFF;
+                        if ((nextByte & 0xC0) != 0x80) {
+                            return CoderResult
+                                    .malformedForLength(1 + i);
+                        }
+                        jchar = (jchar << 6) + nextByte;
+                    }
+                    jchar -= remainingNumbers[tail];
+                    if (jchar < lowerEncodingLimit[tail]) {
+                        // Should have been encoded in a fewer octets
+                        return CoderResult.malformedForLength(1);
+                    }
+                    pos += tail;
+                }
+                if (jchar <= 0xffff) {
+                  out.put((char) jchar);
+                  outRemaining--;
+                } else {
+                  if (outRemaining < 2) {
+                      return CoderResult.OVERFLOW;
+                  }
+                  out.put((char) ((jchar >> 0xA) + 0xD7C0));
+                  out.put((char) ((jchar & 0x3FF) + 0xDC00));
+                  outRemaining -= 2;
+                }
+                pos++;
+            }
+            return CoderResult.UNDERFLOW;
+        } finally {
+            in.position(pos);
+        }
+    }
+
+    private CoderResult decodeHasArray(ByteBuffer in, CharBuffer out) {
+        int outRemaining = out.remaining();
+        int pos = in.position();
+        int limit = in.limit();
+        final byte[] bArr = in.array();
+        final char[] cArr = out.array();
+        final int inIndexLimit = limit + in.arrayOffset();
+
+        int inIndex = pos + in.arrayOffset();
+        int outIndex = out.position() + out.arrayOffset();
+
+        // if someone would change the limit in process,
+        // he would face consequences
+        for (; inIndex < inIndexLimit && outRemaining > 0; inIndex++) {
+            int jchar = bArr[inIndex];
+            if (jchar < 0) {
+                jchar = jchar & 0x7F;
+                int tail = remainingBytes[jchar];
+
+                if (tail == -1) {
+                    in.position(inIndex - in.arrayOffset());
+                    out.position(outIndex - out.arrayOffset());
+                    return CoderResult.malformedForLength(1);
+                }
+                if (inIndexLimit - inIndex < 1 + tail) {
+                    break;
+                }
+
+                for (int i = 0; i < tail; i++) {
+                    int nextByte = bArr[inIndex + i + 1] & 0xFF;
+                    if ((nextByte & 0xC0) != 0x80) {
+                        in.position(inIndex - in.arrayOffset());
+                        out.position(outIndex - out.arrayOffset());
+                        return CoderResult.malformedForLength(1 + i);
+                    }
+                    jchar = (jchar << 6) + nextByte;
+                }
+                jchar -= remainingNumbers[tail];
+                if (jchar < lowerEncodingLimit[tail]) {
+                    // Should have been encoded in fewer octets
+                    in.position(inIndex - in.arrayOffset());
+                    out.position(outIndex - out.arrayOffset());
+                    return CoderResult.malformedForLength(1);
+                }
+                inIndex += tail;
+            }
+            // Note: This is the additional test added
+            if (jchar >= 0xD800 && jchar <=0xDFFF) {
+                return CoderResult.unmappableForLength(3);
+            }
+            if (jchar <= 0xffff) {
+              cArr[outIndex++] = (char) jchar;
+              outRemaining--;
+            } else {
+              if (outRemaining < 2) {
+                  return CoderResult.OVERFLOW;
+              }
+              cArr[outIndex++] = (char) ((jchar >> 0xA) + 0xD7C0);
+              cArr[outIndex++] = (char) ((jchar & 0x3FF) + 0xDC00);
+              outRemaining -= 2;
+            }
+        }
+        in.position(inIndex - in.arrayOffset());
+        out.position(outIndex - out.arrayOffset());
+        return (outRemaining == 0 && inIndex < inIndexLimit) ?
+                CoderResult.OVERFLOW :
+                CoderResult.UNDERFLOW;
+    }
+}

Propchange: tomcat/trunk/java/org/apache/catalina/websocket/Utf8Decoder.java
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to