ddavisqa / google-refine

Automatically exported from code.google.com/p/google-refine
0 stars 0 forks source link

Error 500 STREAM on Excel export #351

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Open my project
2. Export -> Excel

What is the expected output? What do you see instead?

HTTP ERROR 500

Problem accessing /command/core/export-rows/mydata.xls. Reason:

    STREAM
Caused by:

java.lang.IllegalStateException: STREAM
    at org.mortbay.jetty.Response.getWriter(Response.java:616)
    at org.mortbay.servlet.GzipFilter$GZIPResponseWrapper.getWriter(GzipFilter.java:358)
    at com.google.refine.commands.Command.respond(Command.java:237)
    at com.google.refine.commands.Command.respondException(Command.java:305)
    at com.google.refine.commands.project.ExportRowsCommand.doPost(ExportRowsCommand.java:103)
    at com.google.refine.RefineServlet.service(RefineServlet.java:171)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:81)
    at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:132)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Powered by Jetty://

What version of Google Refine are you using?

SVN TRUNK

What operating system and browser are you using?

Windows XP, Chrome 10

Is this problem specific to the type of browser you're using or it happens
in all the browsers you tried?

I can't even get to the Export Excel function on IE8, I get an Error on Page 
icon in the status bar.  I'm not an IE, don't know what that means.

Please provide any additional information below.

I have 1400 rows, and some large cell fields.  Can't up the data for you, sorry.

Original issue reported on code.google.com by jma...@gmail.com on 18 Mar 2011 at 2:05

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
The Export Excel problem with IE (mentioned towards the end of the bug report) 
is that IE does not allow arbitrary values for the second argument of 
window.open (e.g., see discussion at 
http://stackoverflow.com/questions/710756/ie8-var-w-window-open-message-invalid-
argument).  Changing the value from "refine-export" to "_blank" should in 
theory fix this problem for IE.

Original comment by chima...@gmail.com on 19 Mar 2011 at 2:50

GoogleCodeExporter commented 8 years ago
Sounds the same as issue #122 
http://code.google.com/p/google-refine/issues/detail?id=122

Original comment by chima...@gmail.com on 19 Mar 2011 at 3:53

GoogleCodeExporter commented 8 years ago
Maybe not the same as issue #122; the SVN trunk already has the fix for #122.

Cannot reproduce this problem, tried on Windows XP with Chrome 10 (and Firefox 
3.6).

Original comment by chima...@gmail.com on 19 Mar 2011 at 4:03

GoogleCodeExporter commented 8 years ago
An exception is being thrown, but the error handling logic (respondException) 
has a bug; as a result, the stack trace shows the secondary exception, which 
does not provide any information on the cause of the original problem.

Please look at the console window and see if there are two stack traces there; 
if so, please post the first one.

Original comment by chima...@gmail.com on 19 Mar 2011 at 4:43

GoogleCodeExporter commented 8 years ago
Here is the output of the console:

12:45:08.343 [                  command] Exception caught (609ms)
java.lang.IllegalArgumentException: Invalid column index (256).  Allowable colum
n range for BIFF8 is (0..255) or ('A'..'IV')
        at org.apache.poi.hssf.usermodel.HSSFCell.checkBounds(HSSFCell.java:926)

        at org.apache.poi.hssf.usermodel.HSSFCell.<init>(HSSFCell.java:162)
        at org.apache.poi.hssf.usermodel.HSSFRow.createCell(HSSFRow.java:141)
        at org.apache.poi.hssf.usermodel.HSSFRow.createCell(HSSFRow.java:119)
        at org.apache.poi.hssf.usermodel.HSSFRow.createCell(HSSFRow.java:38)
        at com.google.refine.exporters.XlsExporter.export(XlsExporter.java:78)
        at com.google.refine.commands.project.ExportRowsCommand.doPost(ExportRow
sCommand.java:95)
        at com.google.refine.RefineServlet.service(RefineServlet.java:171)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511
)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet
Handler.java:1166)
        at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:81)

        at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:132)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet
Handler.java:1157)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
88)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav
a:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1
82)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7
65)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)

        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1
52)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:54
2)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnectio
n.java:938)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.
java:228)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
        at java.lang.Thread.run(Thread.java:662)
12:45:08.359 [          org.mortbay.log] /command/core/export-rows/2010-NS-PERIM
IETER-OPS-Incidents.xls (16ms)
java.lang.IllegalStateException: STREAM
        at org.mortbay.jetty.Response.getWriter(Response.java:616)
        at org.mortbay.servlet.GzipFilter$GZIPResponseWrapper.getWriter(GzipFilt
er.java:358)
        at com.google.refine.commands.Command.respond(Command.java:237)
        at com.google.refine.commands.Command.respondException(Command.java:305)

        at com.google.refine.commands.project.ExportRowsCommand.doPost(ExportRow
sCommand.java:103)
        at com.google.refine.RefineServlet.service(RefineServlet.java:171)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511
)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet
Handler.java:1166)
        at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:81)

        at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:132)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet
Handler.java:1157)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
88)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav
a:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1
82)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7
65)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)

        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1
52)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:54
2)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnectio
n.java:938)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.
java:228)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
        at java.lang.Thread.run(Thread.java:662)
12:45:08.718 [                butterfly] GET /favicon.ico [main] (359ms)

Looks like a problem with a maximum of 256 columns?

I confirmed that my data has 287, but that is not a limitation of Excel 2007.  
I did an XML import of my data into Excel and all 287 columns imported without 
issue.

Original comment by jma...@gmail.com on 19 Mar 2011 at 4:48

GoogleCodeExporter commented 8 years ago
Excel 2007 can support more than 256 columns, but XLS format cannot:

http://msdn.microsoft.com/en-us/library/aa730921%28v=office.12%29.aspx

http://en.wikipedia.org/wiki/Microsoft_Excel

Original comment by chima...@gmail.com on 19 Mar 2011 at 5:29

GoogleCodeExporter commented 8 years ago
I see.  Truncating the columns will have to suffice then.

I noticed that the patch for the similar issue #122 merely truncated large cell 
contents.  May I recommend displaying a notice anytime content is truncated 
(such as issue #122 and whatever patch ultimately fixes this bug)?

Original comment by jma...@gmail.com on 19 Mar 2011 at 5:37

GoogleCodeExporter commented 8 years ago
That would seem reasonable.  It might be best to file this as a separate issue.

Original comment by chima...@gmail.com on 19 Mar 2011 at 5:52

GoogleCodeExporter commented 8 years ago
Okay, I also filed issue #352.  Thanks.

Original comment by jma...@gmail.com on 19 Mar 2011 at 6:00

GoogleCodeExporter commented 8 years ago
So, to summarize, the Refine's Excel .xls format exporter needs to limit the 
export to the first 256 columns?

Has someone filed a bug report for the error reporting problem mentioned on 
Mar. 18?

Original comment by tfmorris on 21 Mar 2011 at 3:08

GoogleCodeExporter commented 8 years ago
Fixed in r2094.  We simply truncate without warning the user.  Better error 
reporting is the subject of issue 352.

The nested exception problem mentioned in comment 5 didn't appear to have an 
open issue for it, so I created issue 401 (now also fixed).

Original comment by tfmorris on 7 Jun 2011 at 11:56

GoogleCodeExporter commented 8 years ago

Original comment by tfmorris on 7 Jun 2011 at 11:58

GoogleCodeExporter commented 8 years ago

Original comment by tfmorris on 9 Jun 2011 at 7:58