Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-5429

With mixed jar versions the error java.lang.NoSuchMethodError: org/apache/derby/iapi/services/info/JVMInfo.javaDump() can occur because JVMInfo is in both derby.jar and derbyclient.jar

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.8.2.2
    • 10.8.2.2, 10.9.1.0
    • Services
    • None
    • High Value Fix, Newcomer
    • Regression Test Failure

    Description

      The class org.apache.derby.iapi.services.info.JVMInfo is in both derbyclient.jar and derby.jar. This means that if an older version of derbyclient.jar is in the classpath before derby.jar the following error can occur when a javaDump is triggered.

      java.lang.NoSuchMethodError: org/apache/derby/iapi/services/info/JVMInfo.javaDump()V
      at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown Source)
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown Source)
      at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
      at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
      at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
      at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source)
      at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source)
      at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source)
      at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source)
      at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source)
      at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source)
      at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
      at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)

      This was discovered running a 10.5.3.2 - (1171883) client (derbclient.jar and derbyTesting.jar) against a 10.8.2.1 - (1170221) server (derby.jar and derbynet.jar) with the derbyclient.jar first in the classpath.

      The test that failed was testConnectShutdownAuthentication, but

      but this should be reproducible by reducing derby.stream.error.extendedDiagSeverityLevel=0 and generating any error. Probably client needs its own separate JVMInfo class. I am not sure where it is used. Maybe it s

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kmarsden Katherine Marsden
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: