LinkedList NullPointerException occurs after switched from IBM JVM 1.4.0 to 1.4.1

Discussion in 'Java' started by Tohru Kao, Jul 7, 2003.

  1. Tohru Kao

    Tohru Kao Guest

    Hi,

    I encounter a NullPointerException after I switched from IBM JVM 1.4.0 to
    IBM JVM 1.4.1.

    The component I use is:

    Linux 7.3
    IBM JVM 1.4.1
    freemarker 1.5.2
    tomcat 4.1.18

    Please give any advice about this NullPointerException which I didn't
    encounter in IBM JVM 1.4.0.

    Here is the stack trace:
    java.lang.NullPointerException
    at java.util.LinkedList$ListItr.next(LinkedList.java:510)
    at freemarker.template.expression.ExpressionBuilder.associateOperators(ExpressionBuilder.java)
    at freemarker.template.expression.ExpressionBuilder.buildExpression(ExpressionBuilder.java)
    at freemarker.template.expression.ExpressionBuilder.build(ExpressionBuilder.java)
    at freemarker.template.compiler.StandardTemplateParser.parseExpression(StandardTemplateParser.java)
    at freemarker.template.compiler.StandardTemplateParser.parseVariable(StandardTemplateParser.java)
    at freemarker.template.compiler.StandardTemplateParser.parseVariableInstruction(StandardTemplateParser.java)
    at freemarker.template.compiler.StandardTemplateParser.getNextInstruction(StandardTemplateParser.java)
    at freemarker.template.compiler.LinkedListTemplateBuilder.buildLinks(LinkedListTemplateBuilder.java)
    at freemarker.template.compiler.LinkedListTemplateBuilder.buildGenericBody(LinkedListTemplateBuilder.java)
    at freemarker.template.compiler.LinkedListTemplateBuilder.buildStatement(LinkedListTemplateBuilder.java)
    at freemarker.template.instruction.GenericStartInstruction.callBuilder(GenericStartInstruction.java)
    at freemarker.template.compiler.LinkedListTemplateBuilder.buildLinks(LinkedListTemplateBuilder.java)
    at freemarker.template.compiler.LinkedListTemplateBuilder.buildStatement(LinkedListTemplateBuilder.java)
    at freemarker.template.instruction.IfInstruction.callBuilder(IfInstruction.java)
    at freemarker.template.compiler.LinkedListTemplateBuilder.buildLinks(LinkedListTemplateBuilder.java)
    at freemarker.template.compiler.LinkedListTemplateBuilder.build(LinkedListTemplateBuilder.java)
    at freemarker.template.Template.compileText(Template.java)
    at freemarker.template.Template.compileFromStream(Template.java)
    at freemarker.template.Template.compileFromStream(Template.java)
    at freemarker.template.Template.compileFromFile(Template.java)
    at freemarker.template.Template.(Template.java)
    at freemarker.template.FileTemplateCache.loadTemplate(FileTemplateCache.java)
    at freemarker.template.FileTemplateCache.getLatestTemplate(FileTemplateCache.java)
    at freemarker.template.FileTemplateCache.getTemplate(FileTemplateCache.java)
    at org.mytest.HtmlTemplateController.getTemplate(HtmlTemplateController.java:73)
    at org.mytest.HtmlTemplateController.getTemplate(HtmlTemplateController.java:99)
    at org.mytest.MyServlet.doGet(MyServlet.java:101)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:261)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:632)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:590)
    at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:707)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
    at java.lang.Thread.run(Thread.java:568)


    TIA
    -Tohru
    Tohru Kao, Jul 7, 2003
    #1
    1. Advertising

  2. Tohru Kao

    Roedy Green Guest

    On Mon, 07 Jul 2003 10:56:48 -0700, Tohru Kao <>
    wrote or quoted :

    > at java.util.LinkedList$ListItr.next(LinkedList.java:510)


    possibly one implementation filters out null elements from a
    LinkedList and other preserves them??

    --
    Canadian Mind Products, Roedy Green.
    Coaching, problem solving, economical contract programming.
    See http://mindprod.com/jgloss/jgloss.html for The Java Glossary.
    Roedy Green, Jul 12, 2003
    #2
    1. Advertising

  3. Tohru Kao

    xarax Guest

    Tohru Kao <> wrote in message news:<>...
    > Hi,
    >
    > I encounter a NullPointerException after I switched from IBM JVM 1.4.0 to
    > IBM JVM 1.4.1.
    >
    > The component I use is:
    >
    > Linux 7.3
    > IBM JVM 1.4.1
    > freemarker 1.5.2
    > tomcat 4.1.18
    >
    > Please give any advice about this NullPointerException which I didn't
    > encounter in IBM JVM 1.4.0.
    >
    > Here is the stack trace:
    > java.lang.NullPointerException
    > at java.util.LinkedList$ListItr.next(LinkedList.java:510)

    /snip/

    You'll have to look at the source for LinkedList.java near
    line 510 to see what it's trying to do. Most likely, it
    is advancing to its next pointer and getting a null value.

    The list is probably corrupted by a concurrent modification
    by another thread. Iteration doesn't guarantee that it will
    detect all such modifications. The LinkedList implementation
    is not synchronized.

    Thus, I suspect that the application that is using the
    LinkedList is broken, rather than the LinkedList implementation.
    xarax, Jul 12, 2003
    #3
  4. Tohru Kao

    Neil Masson Guest

    xarax wrote:

    > Tohru Kao <> wrote in message
    > news:<>...
    >> Hi,
    >>
    >> I encounter a NullPointerException after I switched from IBM JVM 1.4.0 to
    >> IBM JVM 1.4.1.
    >>
    >> The component I use is:
    >>
    >> Linux 7.3
    >> IBM JVM 1.4.1
    >> freemarker 1.5.2
    >> tomcat 4.1.18
    >>
    >> Please give any advice about this NullPointerException which I didn't
    >> encounter in IBM JVM 1.4.0.
    >>
    >> Here is the stack trace:
    >> java.lang.NullPointerException
    >> at java.util.LinkedList$ListItr.next(LinkedList.java:510)

    > /snip/
    >
    > You'll have to look at the source for LinkedList.java near
    > line 510 to see what it's trying to do. Most likely, it
    > is advancing to its next pointer and getting a null value.
    >
    > The list is probably corrupted by a concurrent modification
    > by another thread. Iteration doesn't guarantee that it will
    > detect all such modifications. The LinkedList implementation
    > is not synchronized.
    >
    > Thus, I suspect that the application that is using the
    > LinkedList is broken, rather than the LinkedList implementation.


    This analysis is spot on. What has changed in 1.4.1 is that the
    next and prev pointers of a removed list element are set to null.
    So perhaps one thread is removing an object from a list, while
    another is iterating through the list. You might have got away
    with this before, but now a NullPointerException will be thrown.

    Neil
    Neil Masson, Jul 14, 2003
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?VmxhZHk=?=
    Replies:
    1
    Views:
    414
    =?Utf-8?B?dG9tIHdpc25vd3NraQ==?=
    Oct 8, 2004
  2. Tohru Kao
    Replies:
    1
    Views:
    390
    Chris
    Jul 8, 2003
  3. Lasse
    Replies:
    1
    Views:
    698
    Jon A. Cruz
    Jan 5, 2004
  4. C B
    Replies:
    3
    Views:
    2,068
    David Hilsee
    Aug 12, 2004
  5. Xiaolei Li
    Replies:
    2
    Views:
    727
    Gordon Beaton
    Apr 26, 2005
Loading...

Share This Page