Harmony
  1. Harmony
  2. HARMONY-1130

[classlib][net] compatibility: method URLStreamHandler().parseURL() throws SecurityException on RI and works silently on Harmony.

    Details

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

      Description

      The method java.net.URLStreamHandler().parseURL(URL u, String spec, int start, int limit)) throws SecurityException on RI and works silently on Harmony.
      According to stack trace it is happen due to undocumented call of setURL() method.

      ============== test.java ============================
      import java.io.*;
      import java.net.*;

      public class test {
      public static void main (String[] args) {
      try

      { new TestURLStreamHandler().parseURL(new URL("http://www.intel.com"), "http://www.intel.com" , 9, 0); }

      catch (Exception e)

      { e.printStackTrace(); }

      }
      }

      class TestURLStreamHandler extends URLStreamHandler {
      protected URLConnection openConnection(URL arg0) throws IOException {
      try

      { return arg0.openConnection(); }

      catch (Throwable e)

      { return null; }

      }
      public void parseURL(URL u, String spec, int start, int limit)

      { super.parseURL(u, spec, start, limit); }

      }
      =================================================

      Output:
      C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -cp . -showversion test
      java version "1.5.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
      BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32, R25.0.0-75, GC: System optimized over throughput (initial strategy singleparpar))

      java.lang.SecurityException: handler for url different from this handler
      at java.net.URLStreamHandler.setURL(URLStreamHandler.java:506)
      at java.net.URLStreamHandler.parseURL(URLStreamHandler.java:283)
      at TestURLStreamHandler.parseURL(test.java:23)
      at test.main(test.java:7)

      C:\tmp\tmp17>C:\harmony\classlib1.5\deploy\jdk\jre\bin\java.exe -cp . -showversion test
      java version 1.5 (subset)

      (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.

      C:\tmp\tmp17>C:\harmony\drlvm1.5\build\win_ia32_msvc_debug\deploy\jre\bin\java -Dvm.assert_dialog=false -cp . -showversion test
      java version "1.5.0"
      pre-alpha : not complete or compatible
      svn = r430209, (Aug 10 2006), Windows/ia32/msvc 1310, debug build
      http://incubator.apache.org/harmony

      C:\tmp\tmp17>

        Activity

        Tim Ellison made changes -
        Status Open [ 1 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]
        Tim Ellison made changes -
        Component/s Non-bug differences from RI [ 12310780 ]
        Component/s Classlib [ 12310560 ]
        Hide
        spark shen added a comment -

        Agree, would any commiter change the component to Non-bug difference.

        Best regards

        Show
        spark shen added a comment - Agree, would any commiter change the component to Non-bug difference. Best regards
        Tim Ellison made changes -
        Field Original Value New Value
        Assignee Tim Ellison [ tellison ]
        Hide
        Alexey Petrenko added a comment -

        Harmony does not call setURL in this case because it exits from parseURL pre-checks (URLStreamHandler.java: 87).
        I think that this issue should be closed as not a bug. Since it throws correct exceptions for other cases and optimizes parsing in this particular case.

        Show
        Alexey Petrenko added a comment - Harmony does not call setURL in this case because it exits from parseURL pre-checks (URLStreamHandler.java: 87). I think that this issue should be closed as not a bug. Since it throws correct exceptions for other cases and optimizes parsing in this particular case.
        Hide
        Vladimir Ivanov added a comment -

        Harmony implementation also call setURL() so it is seems a setURL() bug.

        Show
        Vladimir Ivanov added a comment - Harmony implementation also call setURL() so it is seems a setURL() bug.
        Vladimir Ivanov created issue -

          People

          • Assignee:
            Tim Ellison
            Reporter:
            Vladimir Ivanov
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development