Article View: pl.comp.lang.java
Article #154028(Java) SQLException: ResultSet is Close
From: J-23
Date: Fri, 20 Jun 2014 22:49
Date: Fri, 20 Jun 2014 22:49
195 lines
8908 bytes
8908 bytes
Witam.
Mam klasę w EXT-GWT używam jej do dynamicznego wczytania SQL, wszystko
działa poprawnie, (pomimo że dostaje wyjątek)
public class LoaderDataHandler implements ActionHandler<LoaderData,
LoaderDataResult> {
private List<ModelData> LoaderDataLive(Boolean
commitAfterTransaction, DBAction action, String sSQL) {
List<ModelData> record = new ArrayList<ModelData>();
Statement stat = null;
ResultSet result = null;
try {
List<NaviSoftRealMeta> FieldName = null;
NaviSoftToolInformation.getConnection(commitAfterTransaction, action);
if (commitAfterTransaction) {
if (NaviSoftToolInformation.getNocommitConnection() ==
null || NaviSoftToolInformation.getNocommitConnection().isClosed()) {
switch (action) {
case SELECT:
FieldName =
NaviSoftToolsServer.getMetaData(sSQL);
stat =
NaviSoftToolInformation.getConnectionDataSQL().createStatement();
break;
case INSERT:
FieldName =
NaviSoftToolsServer.getMetaData(sSQL);
stat =
NaviSoftToolInformation.getConnectionDataSQLINSERT().createStatement();
break;
case UPDATE:
FieldName =
NaviSoftToolsServer.getMetaData(sSQL);
stat =
NaviSoftToolInformation.getConnectionDataSQLUPDATE().createStatement();
break;
case DELETE:
FieldName =
NaviSoftToolsServer.getMetaData(sSQL);
stat =
NaviSoftToolInformation.getConnectionDataSQLDELETE().createStatement();
break;
}
} else {
FieldName = NaviSoftToolsServer.getMetaData(sSQL);
stat =
NaviSoftToolInformation.getNocommitConnection().createStatement();
}
} else {
FieldName = NaviSoftToolsServer.getMetaData(sSQL);
stat =
NaviSoftToolInformation.getNocommitConnection().createStatement();
}
result = stat.executeQuery(sSQL);
while (result.next()) {
BaseModel MDR = new BaseModel();
for (int i = 0; i < FieldName.size(); i++) {
MDR.set(FieldName.get(i).getAliasFieldName().toUpperCase(),
result.getString(FieldName.get(i).getAliasFieldName().toUpperCase())); -
tutaj jest wyjątek a się tyczy tego że przy przewijaniu Grida dostaję
wyjątek że ResultSet is Close
}
record.add(MDR);
}
} catch (SQLException ex) {
Logger.getLogger(LoaderDataHandler.class.getName()).log(Level.SEVERE,
null, ex);
} catch (JSQLParserException ex) {
Logger.getLogger(LoaderDataHandler.class.getName()).log(Level.SEVERE,
null, ex);
} finally {
if (stat != null) {
try {
stat.close();
} catch (SQLException ex) {
Logger.getLogger(LoaderDataHandler.class.getName()).log(Level.SEVERE,
null, ex);
}
}
}
return record;
}
@Override
public Class<LoaderData> getActionType() {
return LoaderData.class;
}
@Override
public LoaderDataResult execute(LoaderData action, ExecutionContext
context) throws NaviSoftDataLiveException {
List<ModelData> record = new ArrayList<ModelData>();
List<ModelData> tmpRecord =
LoaderDataLive(action.getCommitAfterTransaction(), action.getAction(),
action.getSQL());;
int start = action.getConfig().getOffset();
int limit = tmpRecord.size();
if (action.getConfig().getLimit() > 0) {
limit = Math.min(start + action.getConfig().getLimit(), limit);
}
for (int i = action.getConfig().getOffset(); i < limit; i++) {
record.add(tmpRecord.get(i));
}
return new LoaderDataResult(new
BasePagingLoadResult<ModelData>(record, action.getConfig().getOffset(),
record.size()));
}
@Override
public void rollback(LoaderData action, LoaderDataResult result,
ExecutionContext context) throws DispatchException {
throw new UnsupportedOperationException("Not supported yet.");
}
}
Wyjątek:
cze 21, 2014 12:34:43 AM
pl.cba.lukaszbaczek.server.Handler.LoaderDataHandler LoaderDataLive
SEVERE: null
org.firebirdsql.jdbc.FBSQLException: The resultSet is closed
at
org.firebirdsql.jdbc.AbstractResultSet.getField(AbstractResultSet.java:687)
at
org.firebirdsql.jdbc.AbstractResultSet.getString(AbstractResultSet.java:747)
at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.firebirdsql.pool.ResultSetHandler.invoke(ResultSetHandler.java:70)
at $Proxy36.getString(Unknown Source)
at
pl.cba.lukaszbaczek.server.Handler.LoaderDataHandler.LoaderDataLive(LoaderDataHandler.java:75)
at
pl.cba.lukaszbaczek.server.Handler.LoaderDataHandler.execute(LoaderDataHandler.java:103)
at
pl.cba.lukaszbaczek.server.Handler.LoaderDataHandler.execute(LoaderDataHandler.java:34)
at
net.customware.gwt.dispatch.server.AbstractDispatch.doExecute(AbstractDispatch.java:81)
at
net.customware.gwt.dispatch.server.AbstractDispatch.execute(AbstractDispatch.java:68)
at
pl.cba.lukaszbaczek.server.NaviSoftDispatchServlet.execute(NaviSoftDispatchServlet.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
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.handle(ServletHandler.java:362)
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:211)
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)
Jeżeli nie przewijam suwakiem grida, wszystko jest ok.
Pozdrawiam
Technical Details
Message-ID:
<lo2dp4$lip$1@node1.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: J-23 <baczeklu@o2.pl> Newsgroups: pl.comp.lang.delphi,pl.comp.lang.java Subject: (Java) SQLException: ResultSet is Close Date: Sat, 21 Jun 2014 00:49:07 +0200 Organization: ATMAN - ATM S.A. Lines: 196 Message-ID: <lo2dp4$lip$1@node1.news.atman.pl> NNTP-Posting-Host: 77-255-40-198.adsl.inetia.pl Mime-Version: 1.0 X-Trace: node1.news.atman.pl 1403304548 22105 77.255.40.198 (20 Jun 2014 22:49:08 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Fri, 20 Jun 2014 22:49:08 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit