Commons Codec
  1. Commons Codec
  2. CODEC-97

Base64 default constructor behaviour changed to enable chunking in 1.4

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.4
    • Fix Version/s: 1.5
    • Labels:
      None

      Description

      The following test passes in commons-codec 1.3 but fails in 1.4:

      public void testObjectEncode() throws Exception {
          Base64 b64 = new Base64();
          assertEquals("SGVsbG8gV29ybGQ=", new String(b64.encode("Hello World".getBytes())));
      }
      

      Commons-codec 1.3 returns "SGVsbG8gV29ybGQ=".

      Commons-codec 1.4 returns "SGVsbG8gV29ybGQ=\r\n".

      I'd understand if you want to close this as "Won't Fix", since the behaviour wasn't documented before (the constructor wasn't even present!) and now it is.

      However, there is still no test for this behaviour on trunk as far as I can tell, so it would be good to add one so it doesn't change again in the future. I'll attach a patch for Base64Test which you can apply on trunk which will do so.

        Issue Links

          Activity

          Hide
          Julius Davies added a comment -

          I think this duplicates CODEC-89, which needs more unit tests! Thanks for the test you provided!

          Show
          Julius Davies added a comment - I think this duplicates CODEC-89 , which needs more unit tests! Thanks for the test you provided!
          Hide
          Sebb added a comment -

          Applied patch with minor change (used UTF-8 encoding for getBytes() to avoid any possible problems on different charsets)

          Show
          Sebb added a comment - Applied patch with minor change (used UTF-8 encoding for getBytes() to avoid any possible problems on different charsets)
          Hide
          Matt Ryall added a comment -

          You may want to update the other tests in the same file, Sebb, which also call getBytes() without an encoding. I drew my inspiration from them.

          See, for example, testObjectEncodeWithValidParameter() which is just above the new test.

          Show
          Matt Ryall added a comment - You may want to update the other tests in the same file, Sebb, which also call getBytes() without an encoding. I drew my inspiration from them. See, for example, testObjectEncodeWithValidParameter() which is just above the new test.

            People

            • Assignee:
              Unassigned
              Reporter:
              Matt Ryall
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development