|
|
LinkedList NullPointerException occurs after switched from IBM JVM 1.4.0 to 1.4.1
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
|
|
0
|
|
|
|
Reply
|
jacoder (2)
|
7/7/2003 5:56:48 PM |
|
On Mon, 07 Jul 2003 10:56:48 -0700, Tohru Kao <jacoder@yahoo.com>
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.
|
|
0
|
|
|
|
Reply
|
roedy (1019)
|
7/12/2003 5:56:46 PM
|
|
Tohru Kao <jacoder@yahoo.com> wrote in message news:<7qcjgv4oagp3ushf57c4gd5r991dbratcj@4ax.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.
|
|
0
|
|
|
|
Reply
|
xarax (448)
|
7/12/2003 10:49:30 PM
|
|
xarax wrote:
> Tohru Kao <jacoder@yahoo.com> wrote in message
> news:<7qcjgv4oagp3ushf57c4gd5r991dbratcj@4ax.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
|
|
0
|
|
|
|
Reply
|
nmasson
|
7/14/2003 8:12:04 AM
|
|
|
3 Replies
47 Views
(page loaded in 0.082 seconds)
Similiar Articles:7/25/2012 12:48:39 PM
|
|
|
|
|
|
|
|
|