NullPointerException in addChart()

Hello,

We are getting NPE in this code:

Chart graf = ws.getCharts().addChart(ChartType.COLUMN_STACKED, 0, 0, 0, 0, 1500, 800);

This code works in our development enviroment (single WebSphere server), but in customers enviroment doesn´t (clustered WebSphere servers with ITCAM monitoring). That´s pretty strange behavior..

Could you tell me, what´s happening in this method and what can possibly cause NPE?

Aspose Cells v 2.1.0.13

Full stack trace:

Exception type:

class java.lang.NullPointerException



Exception message:

null



Stack trace:

com.aspose.cells.Row.b(Unknown Source)

com.aspose.cells.Cells.b(Unknown Source)

com.aspose.cells.Cells.a(Unknown Source)

com.aspose.cells.N.b(Unknown Source)

com.aspose.cells.N.a(Unknown Source)

com.aspose.cells.ChartShape.(Unknown Source)

com.aspose.cells.Chart.(Unknown Source)

com.aspose.cells.Charts.addChart(Unknown Source)

cz.tigra.agos.prognose.vystupy.SestavaVyvojPrognozyDleSkoda.createSheetGraf(SestavaVyvojPrognozyDleSkoda.java:183)

cz.tigra.agos.prognose.vystupy.SestavaVyvojPrognozyDleSkoda.generovatXls(SestavaVyvojPrognozyDleSkoda.java:140)

cz.tigra.agos.prognose.wicket.page.vystupy.VystupyUtils.vygenerovatSestavuWithDownload(VystupyUtils.java:64)

cz.tigra.agos.prognose.wicket.page.vystupy.VystupVyvojPrognozyDleSkodaPage.generovatSestavu(VystupVyvojPrognozyDleSkodaPage.java:229)

cz.tigra.agos.prognose.wicket.page.vystupy.VystupVyvojPrognozyDleSkodaPage.access$0(VystupVyvojPrognozyDleSkodaPage.java:204)

cz.tigra.agos.prognose.wicket.page.vystupy.VystupVyvojPrognozyDleSkodaPage$GenerovatButton$1.onOk(VystupVyvojPrognozyDleSkodaPage.java:265)

cz.tigra.agos.prognose.wicket.panel.DialogPanel.onOk(DialogPanel.java:301)

cz.tigra.agos.prognose.wicket.panel.DialogPanel.ok(DialogPanel.java:276)

cz.tigra.agos.prognose.wicket.panel.DialogPanel.access$1(DialogPanel.java:275)

cz.tigra.agos.prognose.wicket.panel.DialogPanel$5.onSubmit(DialogPanel.java:159)

org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onSubmit(AjaxButton.java:102)

org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)

org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)

org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:299)

org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:113)

org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)

org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)

org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)

org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)

org.apache.wicket.RequestCycle.request(RequestCycle.java:545)

org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456)

org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)

javax.servlet.http.HttpServlet.service(HttpServlet.java:763)

javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1146)

com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1087)

com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)

com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)

com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)

com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:837)

com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:680)

com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:588)

com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:524)

com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)

com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:751)

com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478)

com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:125)

com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)

com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)

com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)

com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1818)

com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)

com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)

com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)

com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)

com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)

com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:751)

com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)

com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)

Hi,

Thank you for sharing the exception stack trace.

We will look into your issue and get back to you soon.

Thank You & Best Regards,

Hi - I have some new info about this..

All problems causes IBM JDK 5 which is part of WebSphere server..

Could you try some test with IBM JDK? - its downloadable from www.ibm.com

More info - problem is in version 2.1.0 - version 2.0.1 works fine..

For this moment we use older version, but there are some new features / fixes, that we´d like to use. So please try to find changes between these 2 versions, that causes problems on IBM JDK..

Thanks

Hi,

Thank you for sharing the further details about your issue which will help us figure out the issue soon. Also, can you give a try to the attached latest version of Aspose.Cells for Java and check if it works fine with IBM JDK.

Thank You & Best Regards,

Still doesn´t work..

But in this version is another exception:

com.aspose.cells.CellsException: Formula error. Cell[List1!I2]: Formula error: need more parameters[1]
at com.aspose.cells.Cell.getFormula(Unknown Source)
at com.aspose.cells.Cell.a(Unknown Source)
at com.aspose.cells.Row.a(Unknown Source)
at com.aspose.cells.Rows.a(Unknown Source)
at com.aspose.cells.Worksheet.copy(Unknown Source)
at cz.tigra.agos.prognose.vystupy.prognoza.standardni.PrehledSystemuSestava.addPrehledSheet(PrehledSystemuSestava.java:87)
at cz.tigra.agos.prognose.vystupy.prognoza.standardni.SestavaPrognozaSet.generovatXlsPrehledSystemu(SestavaPrognozaSet.java:660)
at cz.tigra.agos.prognose.vystupy.prognoza.standardni.SestavaPrognozaSet.generovatXls(SestavaPrognozaSet.java:223)
at cz.tigra.agos.prognose.wicket.page.vystupy.VystupyPrognozaPage.generovatVystupy(VystupyPrognozaPage.java:652)
at cz.tigra.agos.prognose.wicket.page.vystupy.VystupyPrognozaPage.access$0(VystupyPrognozaPage.java:590)
at cz.tigra.agos.prognose.wicket.page.vystupy.VystupyPrognozaPage$1.onSubmit(VystupyPrognozaPage.java:170)
at org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onSubmit(AjaxButton.java:102)
at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)
at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:299)
at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:113)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456)
at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:907)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:696)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:641)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:475)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:92)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:193)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:725)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:847)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)

Hi,

We are investigating to trace the similar IBM’s JDK issue with another user in his thread: <a href="https://forum.aspose.com/t/71768

We will update you here if there is any resolution for the issue.



Thanks for your understanding!

Hi,

Thank you for being patient.
After further investigation, we come to know this issue is because of IBM's JDK that sometimes does not recognize instances of some special classes correctly. Anyways, we have changed some internal logic in our code to try to avoid such situation. Please try this new fix (attached) and let us know whether it can solve your problem.

Thank you.

Hi,

It didn't solved the problem. But there are more details in exception message.

In attached file there is designer template, which is used to generate sheet, that is copied in cz.tigra.agos.prognose.vystupy.prognoza.standardni.PrehledSystemuSestava.addPrehledSheet(PrehledSystemuSestava.java:87)

In cell I2 is formula, but on Sun JDK works perfect.

com.aspose.cells.CellsException: Formula error. Cell[List1!I2]: Formula error: need more parameters[T:1, need 2 but was 0]
at com.aspose.cells.Cell.getFormula(Unknown Source)
at com.aspose.cells.Cell.a(Unknown Source)
at com.aspose.cells.Row.a(Unknown Source)
at com.aspose.cells.Rows.a(Unknown Source)
at com.aspose.cells.Worksheet.copy(Unknown Source)
at cz.tigra.agos.prognose.vystupy.prognoza.standardni.PrehledSystemuSestava.addPrehledSheet(PrehledSystemuSestava.java:87)
at cz.tigra.agos.prognose.vystupy.prognoza.standardni.SestavaPrognozaSet.generovatXlsPrehledSystemu(SestavaPrognozaSet.java:670)
at cz.tigra.agos.prognose.vystupy.prognoza.standardni.SestavaPrognozaSet.generovatXls(SestavaPrognozaSet.java:226)
at cz.tigra.agos.prognose.wicket.page.vystupy.VystupyPrognozaPage.generovatVystupy(VystupyPrognozaPage.java:600)
at cz.tigra.agos.prognose.wicket.page.vystupy.VystupyPrognozaPage.access$0(VystupyPrognozaPage.java:537)
at cz.tigra.agos.prognose.wicket.page.vystupy.VystupyPrognozaPage$GenerovatButton.onSubmit(VystupyPrognozaPage.java:843)
at org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onSubmit(AjaxButton.java:102)
at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)
at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:299)
at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:113)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456)
at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:907)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:696)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:641)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:475)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:92)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:193)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:725)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:847)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)


I've also encountered another problem - on IBM JDK this report is created, but when I open it in Excel it says data are corrupted. Report with corrupted data is in attachement report.zip.


Thanks

Hi,

Thank you for sharing the template file.

We will further look into it and get back to you soon.

Thank You & Best Regards,

Hi,

Thank you for considering Aspose.

Please try the attached latest fix and let us know if it resolves your issue.

Thank You & Best Regards,

Hello,

Formula error is resolved - didn't show up anymore.

But there is bigger problem. In all reports, numeric cells have corrupted numbers. (for example 4,02531290779989E+202 instead of 462).

On tomcat using Sun JDK 1.6.0_12 - everything is fine.

On WebSphere using IBM JDK 1.5 - numbers corrupted.

But first time I render report on WebSphere the output is ok. Just click on button second time and the report have wrong numbers.

In attachment there are 2 sample reports, each generated from tomcat (right state) and from websphere (first time ok, second time bad).

Application, Aspose Cells library and data are same. Aspose version 2.1.0.32

Thanks for help

Hi,

Thank you for your feedback.

We will look into your issue and get back to you soon.

Thank You & Best Regards,

Hi,

Please try this debug version (attached). We have added some debug codes at where we think it may cause such an issue. Please send us the printed debug messages if there is any.

Thank you.

Hi,

I've tried debug version, and at first look it seem to be working. I'll test it for some time, but for now it's ok. Ouput from SystemOut after rendering some reports:

[9.11.09 10:15:26:552 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:253.7
[9.11.09 10:15:54:115 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:253.7
[9.11.09 10:16:20:740 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:253.7
[9.11.09 10:16:21:443 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.2
[9.11.09 10:23:55:620 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:253.7
[9.11.09 10:25:45:993 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.6
[9.11.09 10:25:46:571 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.6
[9.11.09 10:25:47:071 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.3
[9.11.09 10:25:47:071 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.5
[9.11.09 10:25:47:508 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.8
[9.11.09 10:25:48:383 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:5.8
[9.11.09 10:25:48:883 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.0
[9.11.09 10:25:49:930 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.1
[9.11.09 10:25:50:414 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.1
[9.11.09 10:25:50:992 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.5
[9.11.09 10:25:51:477 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:25:51:992 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.5
[9.11.09 10:25:51:992 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.6
[9.11.09 10:25:52:539 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.4
[9.11.09 10:25:53:117 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.2
[9.11.09 10:25:53:117 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.2
[9.11.09 10:25:53:617 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.9
[9.11.09 10:25:54:086 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:25:54:555 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.7
[9.11.09 10:25:55:164 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.7
[9.11.09 10:25:55:680 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.0
[9.11.09 10:25:55:680 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:9.6
[9.11.09 10:25:56:133 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.3
[9.11.09 10:25:56:742 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.3
[9.11.09 10:25:57:914 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.4
[9.11.09 10:25:58:945 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.9
[9.11.09 10:25:59:461 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.6
[9.11.09 10:25:59:461 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.9
[9.11.09 10:26:00:023 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:14.3
[9.11.09 10:26:00:570 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.6
[9.11.09 10:26:01:039 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:01:539 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.9
[9.11.09 10:26:02:055 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.2
[9.11.09 10:26:02:602 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.2
[9.11.09 10:26:03:070 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.9
[9.11.09 10:26:03:555 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.4
[9.11.09 10:26:04:102 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.7
[9.11.09 10:26:04:664 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:5.6
[9.11.09 10:26:05:273 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.9
[9.11.09 10:26:05:726 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:06:211 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.7
[9.11.09 10:26:06:742 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.4
[9.11.09 10:26:11:617 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:253.7
[9.11.09 10:26:12:101 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:12:601 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.2
[9.11.09 10:26:13:195 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.3
[9.11.09 10:26:13:195 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.0
[9.11.09 10:26:13:742 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:8.9
[9.11.09 10:26:14:242 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.3
[9.11.09 10:26:14:711 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:15:242 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.3
[9.11.09 10:26:15:242 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:10.7
[9.11.09 10:26:16:320 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.9
[9.11.09 10:26:17:054 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.6
[9.11.09 10:26:18:617 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.5
[9.11.09 10:26:19:085 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.3
[9.11.09 10:26:19:820 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:5.0
[9.11.09 10:26:20:335 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:20:898 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.8
[9.11.09 10:26:21:382 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.3
[9.11.09 10:26:21:851 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:9.6
[9.11.09 10:26:22:382 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.2
[9.11.09 10:26:22:960 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.6
[9.11.09 10:26:22:960 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:4.5
[9.11.09 10:26:23:414 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:5.6
[9.11.09 10:26:23:898 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:24:445 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.6
[9.11.09 10:26:24:960 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.2
[9.11.09 10:26:24:960 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:4.0
[9.11.09 10:26:25:538 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.4
[9.11.09 10:26:26:038 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:9.5
[9.11.09 10:26:27:538 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.9
[9.11.09 10:26:28:023 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:28:492 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:29:038 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:29:523 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.4
[9.11.09 10:26:30:038 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:4.8
[9.11.09 10:26:31:163 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:31:616 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:32:695 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.2
[9.11.09 10:26:33:226 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.8
[9.11.09 10:26:33:835 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:34:288 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:34:819 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.5
[9.11.09 10:26:35:335 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.1
[9.11.09 10:26:35:819 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.2
[9.11.09 10:26:36:398 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.3
[9.11.09 10:26:36:851 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:2.4
[9.11.09 10:26:37:351 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.4
[9.11.09 10:26:37:866 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.6
[9.11.09 10:26:38:335 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:38:788 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:5.7
[9.11.09 10:26:39:335 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:39:897 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:40:429 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.3
[9.11.09 10:26:40:897 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:8.4
[9.11.09 10:26:41:366 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:5.2
[9.11.09 10:26:41:944 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.9
[9.11.09 10:26:42:397 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.6
[9.11.09 10:26:42:882 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:6.6
[9.11.09 10:26:43:397 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:3.9
[9.11.09 10:26:43:929 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.3
[9.11.09 10:26:44:413 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.6
[9.11.09 10:26:44:944 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.0
[9.11.09 10:26:45:413 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.3
[9.11.09 10:26:45:413 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.3
[9.11.09 10:26:45:897 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:0.9
[9.11.09 10:26:45:913 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.3
[9.11.09 10:26:46:413 SEČ] 00000028 SystemOut O J7 bw:class java.lang.Double:1.9

Hi,

Thank you for considering Aspose.

It’s really strange, the only thing we have changed in the debug version is adding some System.out.println() codes. And from the debug information, we can see the values of Cells are right. We will wait for your result and confirmation based on more tests. Also, now as the debug version works fine, would you please try the attached latest fix again to check whether it works? This new fix changed nothing for saving Cells; we have only removed the debug code.

Thank You & Best Regards,

Hi,

This is really strange. Further tests confirmed that version 2.1.0.34d (debug) is ok. But I've tried version 35 and there it is wrong again. I just swapped aspose jar and redeployed app. If only difference is debug message, which calls value.getClass() and value.toString(), maybe those methods somehow resolves the issue. Can you create build with no System.out output of the debug message, that only creates debug message on background. I could try if it's working and this could point us to cause of issue.

Just for info - in attachment are reports generated by versions 34d and 35 of Asapose Cells.

Thanks

Hi,

Thank you for considering Aspose.

Yes, it is strange. We are sure that there is no other difference between two versions for saving cell values but print out the debug message. As you suggested, now we have built a new version for test. For this debug version, there is a new property (RKDEBUG) that can be added when you run your application. The value of this property can be 1 or 2. When its value is 1, we will call getClass() only without print it out. When its value is 2, we will print out the value of cell and the value of getClass(), that is same with what we have done in version 34d. For other values we do nothing when saving a cell value, which is same with version 35. To use this property, provide JVM arguments like:

-DRKDEBUG=1

Please try different value for this property to test whether it can give different result.

Thank You & Best Regards,

Hi,

I've tested this version with different values of RKDEBUG property. Here are the results:

value 1 - everything works

value 2 - everything works and in SystemOut are debug messages

value 55 - everything works and no debug messages

RKDEBUG not set - everything works and no debug messages


I can use this version because it works and by default there are no debug messages. But there is no objective resolution of issue..

Last think that can be different between version 35 and 36d without debug flag is I suppose build enviroment in which is library built.


Best regards

Hi,

Thank you for considering Aspose.

Now that this version works fine in your environment, you can take it as a common fix and use it. For the cause of issue, we still think it is a bug of IBM’s JDK. In fact it is the same issue with the prior one for formula (such as the Exception “need more parameter”). The root cause should be that sometimes IBM’s JDK cannot recognize some instances by “instanceof” operator. For the formula issue, we have changed many logics to avoid checking instances’ classes. For this issue of wrong cell values, the solution is similar but not exactly same (For the formula issue, simply calling getClass() can not remove the issue, but whether call getClass can change the executing flow with IBM’s JDK too). We are sure the build environment is same for version 35 and 36d. We think the only difference between version 35 and 36d is, in version 35 there is no code to invoke getClass() for instance but version 36d has such code, even though the code is in a “if” block.

Thank You & Best Regards,