java3d
  1. java3d
  2. JAVA3D-591

ArrayIndexOutOfBoundsException in NnuIdManager

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 1.5.2
    • Fix Version/s: 1.6.0
    • Component/s: j3d-core
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: All

    • Issuezilla Id:
      591

      Description

      From Wonderland JAVA3D-476:

      ---------------

      When jumping to the world builder playground, we frequently see:

      Exception occurred during Behavior execution:
      java.lang.ArrayIndexOutOfBoundsException
      at java.lang.System.arraycopy(Native Method)
      at javax.media.j3d.NnuIdManager.delete(NnuIdManager.java:231)
      at javax.media.j3d.Targets.snapShotRemove(Targets.java:167)
      at javax.media.j3d.GroupRetained.updateSwitchStates(GroupRetained.java:2114)
      at javax.media.j3d.GroupRetained.checkClearLive(GroupRetained.java:1774)
      at javax.media.j3d.GroupRetained.checkClearLive(GroupRetained.java:1699)
      at javax.media.j3d.GroupRetained.doRemoveChild(GroupRetained.java:425)
      at javax.media.j3d.BranchGroupRetained.do_detach(BranchGroupRetained.java:113)
      at javax.media.j3d.BranchGroupRetained.detach(BranchGroupRetained.java:86)
      at javax.media.j3d.BranchGroup.detach(BranchGroup.java:121)
      at
      org.jdesktop.lg3d.wonderland.darkstar.client.cell.Cell.setStatus(Cell.java:427)
      at
      org.jdesktop.lg3d.wonderland.extracells.client.cell.MultiModelCell.setStatus(MultiModelCell.java:133)
      at
      org.jdesktop.lg3d.wonderland.scenemanager.UserCellCache$MessageHandlerBehavior.processStimulus(UserCellCache.java:465)
      at javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:192)

      After this, the client is not functional. Moving the update to a behavior did
      not solve the problem.

      ----------------

      The bug is specifically a problem with the delete method of NnuIdManager:

      The system assumes that both lists are sorted - which is fine as long as there
      are no duplicates on the list. The algorithm only works on a series of
      identical id's if the objects they represent are in the same order in both
      lists. The fix is to notice a collection of objects with the same id's and
      remove them as a group.

        Activity

        Hide
        kcr added a comment -

        Assign to kcr for 1.6.0.

        Show
        kcr added a comment - Assign to kcr for 1.6.0.
        Hide
        kcr added a comment -

        This issue is fixed in both the dev-1_6 branch as well as into the trunk (for an
        unplanned 1.5.3 release).

        Show
        kcr added a comment - This issue is fixed in both the dev-1_6 branch as well as into the trunk (for an unplanned 1.5.3 release).

          People

          • Assignee:
            kcr
            Reporter:
            kaplanj
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: