Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8322981

Fix 2 locations in JDI that throw IOException without using the "Caused by" exception

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Fixed
    • P4
    • 23
    • 22
    • core-svc
    • b05

    Description

      I noticed the following exception printed while running a test:

      java.io.IOException
      at jdk.jdi/com.sun.tools.jdi.VirtualMachineManagerImpl.createVirtualMachine(VirtualMachineManagerImpl.java:229)
      at jdk.jdi/com.sun.tools.jdi.VirtualMachineManagerImpl.createVirtualMachine(VirtualMachineManagerImpl.java:236)
      at jdk.jdi/com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:120)
      at jdk.jdi/com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:83)
      at DebugUtils.attach(DebugUtils.java:86)
      at ManyThreads.main(ManyThreads.java:84)

      There is no reason given for the IOException. The reason is swallowed by the exception handler:

              } catch (VMDisconnectedException e) {
                  throw new IOException(e.getMessage());
              }

      Instead of passing the exception message to the constructor, it should be passing the "Caused by" exception. Once that is done you see the following instead:

      java.io.IOException: com.sun.jdi.VMDisconnectedException
      at jdk.jdi/com.sun.tools.jdi.VirtualMachineManagerImpl.createVirtualMachine(VirtualMachineManagerImpl.java:229)
      at jdk.jdi/com.sun.tools.jdi.VirtualMachineManagerImpl.createVirtualMachine(VirtualMachineManagerImpl.java:236)
      at jdk.jdi/com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:120)
      at jdk.jdi/com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:83)
      at DebugUtils.attach(DebugUtils.java:86)
      at ManyThreads.main(ManyThreads.java:84)
      Caused by: com.sun.jdi.VMDisconnectedException
      at jdk.jdi/com.sun.tools.jdi.TargetVM.waitForReply(TargetVM.java:304)
      at jdk.jdi/com.sun.tools.jdi.VirtualMachineImpl.waitForTargetReply(VirtualMachineImpl.java:1176)
      at jdk.jdi/com.sun.tools.jdi.PacketStream.waitForReply(PacketStream.java:89)
      at jdk.jdi/com.sun.tools.jdi.JDWP$VirtualMachine$IDSizes.waitForReply(JDWP.java:488)
      at jdk.jdi/com.sun.tools.jdi.JDWP$VirtualMachine$IDSizes.process(JDWP.java:474)
      at jdk.jdi/com.sun.tools.jdi.VirtualMachineImpl.<init>(VirtualMachineImpl.java:240)
      at jdk.jdi/com.sun.tools.jdi.VirtualMachineManagerImpl.createVirtualMachine(VirtualMachineManagerImpl.java:226)
      ... 5 more

      Attachments

        Issue Links

          Activity

            People

              cjplummer Chris Plummer
              cjplummer Chris Plummer
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: