 |
AppletTalk.com Java discussions newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Tohru Kao Guest
|
Posted: Mon Jul 07, 2003 5:56 pm Post subject: LinkedList NullPointerException occurs after switched from I |
|
|
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
|
|
| Back to top |
|
 |
Roedy Green Guest
|
Posted: Sat Jul 12, 2003 5:56 pm Post subject: Re: LinkedList NullPointerException occurs after switched fr |
|
|
On Mon, 07 Jul 2003 10:56:48 -0700, Tohru Kao <jacoder (AT) yahoo (DOT) com>
wrote or quoted :
| Quote: | 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.
|
|
| Back to top |
|
 |
xarax Guest
|
Posted: Sat Jul 12, 2003 10:49 pm Post subject: Re: LinkedList NullPointerException occurs after switched fr |
|
|
Tohru Kao <jacoder (AT) yahoo (DOT) com> wrote
| Quote: | 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.
|
|
| Back to top |
|
 |
Neil Masson Guest
|
Posted: Mon Jul 14, 2003 8:12 am Post subject: Re: LinkedList NullPointerException occurs after switched fr |
|
|
xarax wrote:
| Quote: | Tohru Kao <jacoder (AT) yahoo (DOT) com> wrote in message
news:<7qcjgv4oagp3ushf57c4gd5r991dbratcj (AT) 4ax (DOT) com>...
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
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|