Uploaded image for project: 'Pentaho Analysis - Mondrian'
  1. Pentaho Analysis - Mondrian
  2. MONDRIAN-1562

NPE in SegmentCacheIndexImpl.loadSucceeded

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Severity: High
    • Resolution: Incomplete
    • Affects Version/s: None
    • Fix Version/s: Backlog
    • Component/s: None
    • Labels:
      None
    • Notice:
      When an issue is open, the "Fix Version/s" field conveys a target, not necessarily a commitment. When an issue is closed, the "Fix Version/s" field conveys the version that the issue was fixed in.
    • Browser:
      Internet Explorer 9.x
    • Operating System/s:
      Windows 7

      Description

      Hi,

      I have a local RMI server which executes MDX queries using mondrian API

      I'm using mondrian 3.5 and I'm getting below error, when I try to expand a member, it happens randomly (sometimes it will happen and sometimes not)

      =======Stack trace =============

      java.lang.NullPointerException
      at mondrian.rolap.cache.SegmentCacheIndexImpl$HeaderInfo.access$000(SegmentCacheIndexImpl.java:885)
      at mondrian.rolap.cache.SegmentCacheIndexImpl.loadSucceeded(SegmentCacheIndexImpl.java:191)
      at mondrian.rolap.agg.SegmentCacheManager$Handler.visit(SegmentCacheManager.java:554)
      at mondrian.rolap.agg.SegmentCacheManager$SegmentLoadSucceededEvent.acceptWithoutResponse(SegmentCacheManager.java:1120)
      at mondrian.rolap.agg.SegmentCacheManager$Actor.run(SegmentCacheManager.java:1032)
      at java.lang.Thread.run(Thread.java:662)

      ======================================================

      ===========================================================================
      below is the source code from stack trace,m it clearly shows there is a chance of null pointer exception
      ============================================================================
      public void loadSucceeded(SegmentHeader header, SegmentBody body) {
      checkThread();

      final HeaderInfo headerInfo = headerMap.get(header);
      assert headerInfo != null
      : "segment header " + header.getUniqueID() + " is missing";
      assert headerInfo.slot != null
      : "segment header " + header.getUniqueID() + " is not loading";
      if (!headerInfo.slot.isDone())

      { headerInfo.slot.put(body); }

      if (headerInfo.removeAfterLoad)

      { remove(header); }

      }

      ========================================================

        Attachments

          Activity

            People

            Assignee:
            j.chejarla Janardhan Chejarla
            Reporter:
            j.chejarla Janardhan Chejarla
            Votes:
            2 Vote for this issue
            Watchers:
            7 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: