- SGWT Version: SC_Snapshot-2011-05-14 (Power)
- Hosted mode
- gwt Version: 2.1.1, 2.2.0
- Browser: Firefox 4, IE8
- OS: Win 7 , Mac OS X
- DB: Oracle 10.2, Driver: ojdbc14
The CLOB-problem mentioned in http://forums.smartclient.com/showthread.php?t=14890 seems to be back again.
Test case:
Set up a small app where a SelectItem gets its options from a (sql) datasource. One of the fields should be a large textfield (CLOB in DB).
Our oberservation:
As long as the CLOB-field is declared in the ds.xml the app fails to load the Datasource correctly. SelectItem (or a Listgrid displaying all fields) show a "spinning wheel of death".
The Server log says "Getrennte Verbindung", which means "Connection closed". There is no such error if the CLOB field is commented in ds.xml. Everything's fine then.
Server Stack Trace:
Our DataSource
Stripped onModuleLoad (enough to recreate the error)
Client side log:
- Hosted mode
- gwt Version: 2.1.1, 2.2.0
- Browser: Firefox 4, IE8
- OS: Win 7 , Mac OS X
- DB: Oracle 10.2, Driver: ojdbc14
The CLOB-problem mentioned in http://forums.smartclient.com/showthread.php?t=14890 seems to be back again.
Test case:
Set up a small app where a SelectItem gets its options from a (sql) datasource. One of the fields should be a large textfield (CLOB in DB).
Our oberservation:
As long as the CLOB-field is declared in the ds.xml the app fails to load the Datasource correctly. SelectItem (or a Listgrid displaying all fields) show a "spinning wheel of death".
The Server log says "Getrennte Verbindung", which means "Connection closed". There is no such error if the CLOB field is commented in ds.xml. Everything's fine then.
Server Stack Trace:
Code:
=== 2011-05-16 19:09:46,840 [l0-4] INFO SQLDriver - [builtinApplication.VTM_FILTER_fetch] Executing SQL query on 'Oracle': SELECT VTM_FILTER.FILTER_SELECTED_FILTERRULES, VTM_FILTER.FILTER_ID, VTM_FILTER.FILTER_STRUCTURE_AS_JSON, VTM_FILTER.FILTER_NAME, VTM_FILTER.FILTER_STANDARD_FILTER, VTM_FILTER.FILTER_USER_ID FROM E2EFM_SCHEMA.VTM_FILTER WHERE ('1'='1')
=== 2011-05-16 19:09:46,893 [l0-4] INFO DSResponse - [builtinApplication.VTM_FILTER_fetch] DSResponse: List with 9 items
=== 2011-05-16 19:09:46,894 [l0-4] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
=== 2011-05-16 19:09:46,895 [l0-4] DEBUG RPCManager - non-DMI response, dropExtraFields: false
=== 2011-05-16 19:09:46,918 [l0-4] ERROR IDACall - Error executing operation: VTM_FILTER_fetch
java.io.IOException: Getrennte Verbindung
at oracle.jdbc.driver.DatabaseError.SQLToIOException(DatabaseError.java:764)
at oracle.jdbc.driver.OracleClobReader.needChars(OracleClobReader.java:232)
at oracle.jdbc.driver.OracleClobReader.read(OracleClobReader.java:178)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.read1(Unknown Source)
at java.io.BufferedReader.read(Unknown Source)
at java.io.Reader.read(Unknown Source)
at com.isomorphic.util.IOUtil.copyCharacterStreams(IOUtil.java:183)
at com.isomorphic.util.IOUtil.copyCharacterStreams(IOUtil.java:127)
at com.isomorphic.js.JSTranslater.convertReader(JSTranslater.java:762)
at com.isomorphic.js.JSTranslater.convertSimple(JSTranslater.java:675)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:533)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:511)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:502)
at com.isomorphic.js.JSTranslater.convertMap(JSTranslater.java:950)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:573)
at com.isomorphic.js.JSTranslater.convertIterator(JSTranslater.java:1110)
at com.isomorphic.js.JSTranslater.convertCollection(JSTranslater.java:1063)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:575)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:511)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:502)
at com.isomorphic.js.JSTranslater.convertMap(JSTranslater.java:950)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:573)
at com.isomorphic.js.JSTranslater.convertIterator(JSTranslater.java:1110)
at com.isomorphic.js.JSTranslater.convertCollection(JSTranslater.java:1063)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:575)
at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:511)
at com.isomorphic.js.JSTranslater.toJS(JSTranslater.java:473)
at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:1151)
at com.isomorphic.rpc.RPCManager.send(RPCManager.java:582)
at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:130)
at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:95)
at com.isomorphic.servlet.IDACall.doPost(IDACall.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
=== 2011-05-16 19:09:46,920 [l0-4] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
=== 2011-05-16 19:09:46,920 [l0-4] DEBUG RPCManager - non-DMI response, dropExtraFields: false
=== 2011-05-16 19:09:46,922 [l0-4] INFO Compression - /Sgwt25_checks/sc/IDACall: 4388 -> 940 bytes
Code:
<DataSource
schema="E2EFM_SCHEMA"
dbName="Oracle"
tableName="VTM_FILTER"
ID="VTM_FILTER"
dataSourceVersion="1"
serverType="sql"
>
<fields>
<field sqlType="decimal" primaryKey="true" sqlLength="22" name="FILTER_ID" type="sequence"></field>
<field sqlType="varchar" sqlLength="45" name="FILTER_NAME" length="100" type="text"></field>
<field sqlType="varchar" sqlLength="45" name="FILTER_SELECTED_FILTERRULES" length="45" type="text"></field>
<field sqlType="varchar" sqlLength="4000" name="FILTER_STRUCTURE_AS_JSON" length="4000" type="text"></field>
<field sqlType="varchar" sqlLength="45" name="FILTER_USER_ID" length="45" type="text"></field>
<field sqlType="char" sqlLength="5" name="FILTER_STANDARD_FILTER" length="5" type="text"></field>
</fields>
</DataSource>
Code:
public void onModuleLoad() {
final ToolStrip ts = new ToolStrip();
// Filter Selection
final SelectItem selectFilter = new SelectItem("FILTER_NAME","");
selectFilter.setAllowEmptyValue(true);
selectFilter.setEmptyDisplayValue("--- No filter selected ---");
selectFilter.setOptionDataSource(DataSource.get("VTM_FILTER"));
ts.addFormItem(selectFilter);
RootPanel.get("clobTest").add(ts);
}
Code:
19:09:46.956 [ERROR] [Sgwt25_checks] 19:09:46.953:XRP5:WARN:RPCManager:Error evaling structured RPC response: SyntaxError: '}' erwartet response text: [{endRow:9,queueStatus:0,totalRows:9,isDSResponse:true,invalidateCache:false,status:0,startRow:0//isc_RPCResponseStart-->[{queueStatus:-1,isDSResponse:true,invalidateCache:false,status:-1,data:"java.io.IOException: Getrennte Verbindung\r\n at oracle.jdbc.driver.DatabaseError.SQLToIOException(DatabaseError.java:764)\r\n at oracle.jdbc.driver.OracleClobReader.needChars(OracleClobReader.java:232)\r\n at oracle.jdbc.driver.OracleClobReader.read(OracleClobReader.java:178)\r\n at java.io.BufferedReader.fill(Unknown Source)\r\n at java.io.BufferedReader.read1(Unknown Source)\r\n at java.io.BufferedReader.read(Unknown Source)\r\n at java.io.Reader.read(Unknown Source)\r\n at com.isomorphic.util.IOUtil.copyCharacterStreams(IOUtil.java:183)\r\n at com.isomorphic.util.IOUtil.copyCharacterStreams(IOUtil.java:127)\r\n at com.isomorphic.js.JSTranslater.convertReader(JSTranslater.java:762)\r\n at com.isomorphic.js.JSTranslater.convertSimple(JSTranslater.java:675)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:533)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:511)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:502)\r\n at com.isomorphic.js.JSTranslater.convertMap(JSTranslater.java:950)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:573)\r\n at com.isomorphic.js.JSTranslater.convertIterator(JSTranslater.java:1110)\r\n at com.isomorphic.js.JSTranslater.convertCollection(JSTranslater.java:1063)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:575)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:511)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:502)\r\n at com.isomorphic.js.JSTranslater.convertMap(JSTranslater.java:950)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:573)\r\n at com.isomorphic.js.JSTranslater.convertIterator(JSTranslater.java:1110)\r\n at com.isomorphic.js.JSTranslater.convertCollection(JSTranslater.java:1063)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:575)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:511)\r\n at com.isomorphic.js.JSTranslater.toJS(JSTranslater.java:473)\r\n at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:1151)\r\n at com.isomorphic.rpc.RPCManager.send(RPCManager.java:582)\r\n at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:130)\r\n at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:95)\r\n at com.isomorphic.servlet.IDACall.doPost(IDACall.java:54)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)\r\n at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)\r\n at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)\r\n at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)\r\n at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)\r\n at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)\r\n at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)\r\n at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)\r\n at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)\r\n at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)\r\n at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)\r\n at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)\r\n at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)\r\n at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)\r\n at org.mortbay.jetty.Server.handle(Server.java:324)\r\n at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)\r\n at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)\r\n at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)\r\n at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)\r\n at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)\r\n at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)\r\n at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)\r\n"}]
com.smartgwt.client.core.JsObject$SGWT_WARN: 19:09:46.953:XRP5:WARN:RPCManager:Error evaling structured RPC response: SyntaxError: '}' erwartet response text: [{endRow:9,queueStatus:0,totalRows:9,isDSResponse:true,invalidateCache:false,status:0,startRow:0//isc_RPCResponseStart-->[{queueStatus:-1,isDSResponse:true,invalidateCache:false,status:-1,data:"java.io.IOException: Getrennte Verbindung\r\n at oracle.jdbc.driver.DatabaseError.SQLToIOException(DatabaseError.java:764)\r\n at oracle.jdbc.driver.OracleClobReader.needChars(OracleClobReader.java:232)\r\n at oracle.jdbc.driver.OracleClobReader.read(OracleClobReader.java:178)\r\n at java.io.BufferedReader.fill(Unknown Source)\r\n at java.io.BufferedReader.read1(Unknown Source)\r\n at java.io.BufferedReader.read(Unknown Source)\r\n at java.io.Reader.read(Unknown Source)\r\n at com.isomorphic.util.IOUtil.copyCharacterStreams(IOUtil.java:183)\r\n at com.isomorphic.util.IOUtil.copyCharacterStreams(IOUtil.java:127)\r\n at com.isomorphic.js.JSTranslater.convertReader(JSTranslater.java:762)\r\n at com.isomorphic.js.JSTranslater.convertSimple(JSTranslater.java:675)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:533)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:511)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:502)\r\n at com.isomorphic.js.JSTranslater.convertMap(JSTranslater.java:950)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:573)\r\n at com.isomorphic.js.JSTranslater.convertIterator(JSTranslater.java:1110)\r\n at com.isomorphic.js.JSTranslater.convertCollection(JSTranslater.java:1063)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:575)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:511)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:502)\r\n at com.isomorphic.js.JSTranslater.convertMap(JSTranslater.java:950)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:573)\r\n at com.isomorphic.js.JSTranslater.convertIterator(JSTranslater.java:1110)\r\n at com.isomorphic.js.JSTranslater.convertCollection(JSTranslater.java:1063)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:575)\r\n at com.isomorphic.js.JSTranslater.convert(JSTranslater.java:511)\r\n at com.isomorphic.js.JSTranslater.toJS(JSTranslater.java:473)\r\n at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:1151)\r\n at com.isomorphic.rpc.RPCManager.send(RPCManager.java:582)\r\n at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:130)\r\n at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:95)\r\n at com.isomorphic.servlet.IDACall.doPost(IDACall.java:54)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)\r\n at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)\r\n at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)\r\n at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)\r\n at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)\r\n at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)\r\n at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)\r\n at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)\r\n at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)\r\n at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)\r\n at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)\r\n at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)\r\n at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)\r\n at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)\r\n at org.mortbay.jetty.Server.handle(Server.java:324)\r\n at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)\r\n at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)\r\n at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)\r\n at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)\r\n at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)\r\n at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)\r\n at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)\r\n"}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:281)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:531)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
at java.lang.Thread.run(Unknown Source)
Comment