Skip to content

Commit 17f16bd

Browse files
committed
Bug fix follow up to #1530: The number of a Session's finalized result tabs do not appear in SQuirreL's logs anymore
but in the "Session garbage collection status", see button on the left of the garbage collection button.
1 parent e2642d1 commit 17f16bd

File tree

8 files changed

+59
-26
lines changed

8 files changed

+59
-26
lines changed

sql12/core/doc/changes.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ Table cell data popup now offers find, Xml/Json-reformatting and export function
7676

7777
Bug fixes:
7878

79+
Follow up to #1530: The number of a Session's finalized result tabs do not appear in SQuirreL's logs anymore
80+
but in the "Session garbage collection status", see button on the left of the garbage collection button.
81+
7982
Follow up to https://github.com/squirrel-sql-client/squirrel-sql-code/issues/46
8083
SQL result and table export to MS-Excel files: The options to make header rows bold and centered did not
8184
work for MS-Excel but for Libre Office only.

sql12/core/src/net/sourceforge/squirrel_sql/client/gui/I18NStrings.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ MemoryPanel.memSize={0} of {1} MB
8787
MemoryPanel.gcStatus={0}\n\nSessions waiting for garbage collection:\n==================================================\n{1}\nSessions open:\n==================================================\n{2}\nSessions garbage collected:\n==================================================\n{3}\n
8888

8989
MemoryPanel.statusDialogTitle=Session garbage collection status
90-
MemoryPanel.sessionInfo.toString1=Session: ID={0}, Alias={1}: created at {2}, closed at {3}
91-
MemoryPanel.sessionInfo.toString2=Session: ID={0}, Alias={1}: created at {2}
92-
MemoryPanel.sessionInfo.toString3=Session: ID={0}, Alias={1}: created at {2}, closed at {3}, finalized at {4}
90+
MemoryPanel.sessionInfo.toString1.incl.res.tab=Session: ID={0}, Alias={1}: created at {2}, closed at {4}, number of finalized result tabs while open {3}
91+
MemoryPanel.sessionInfo.toString2.incl.res.tab=Session: ID={0}, Alias={1}: created at {2}, number of finalized result tabs while open {3}
92+
MemoryPanel.sessionInfo.toString3.incl.res.tab=Session: ID={0}, Alias={1}: created at {2}, closed at {4}, finalized at {5}, number of finalized result tabs while open {3}
9393

9494
ThreadPanel.refresh=Refresh

sql12/core/src/net/sourceforge/squirrel_sql/client/gui/MemoryPanel.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,7 @@ public void actionPerformed(ActionEvent e)
126126
public void sessionClosed(SessionEvent evt)
127127
{
128128
IIdentifier id = evt.getSession().getIdentifier();
129-
MemorySessionInfo msi = _sessionInfosBySessionIDs.get(id);
130-
if(null == msi)
131-
{
132-
throw new IllegalStateException("A session with ID " + id + " has not been created");
133-
}
129+
MemorySessionInfo msi = getMemorySessionInfo(id);
134130
msi.closed = new Date();
135131
updateGcStatus();
136132
}
@@ -149,14 +145,16 @@ public void sessionConnected(SessionEvent evt)
149145

150146
public void sessionFinalized(IIdentifier sessionId)
151147
{
152-
MemorySessionInfo msi = _sessionInfosBySessionIDs.get(sessionId);
153-
if(null == msi)
154-
{
155-
throw new IllegalStateException("A session with ID " + sessionId + " has not been created");
156-
}
148+
MemorySessionInfo msi = getMemorySessionInfo(sessionId);
157149
msi.finalized = new Date();
158150
updateGcStatus();
159151
}
152+
153+
@Override
154+
public void resultTabOfOpenSessionFinalized(IIdentifier sessionId)
155+
{
156+
++getMemorySessionInfo(sessionId).countFinalizedResultTabsWhileSessionOpen;
157+
}
160158
});
161159

162160
Timer t = new Timer(500, new ActionListener()
@@ -170,6 +168,16 @@ public void actionPerformed(ActionEvent e)
170168

171169
}
172170

171+
private MemorySessionInfo getMemorySessionInfo(IIdentifier id)
172+
{
173+
MemorySessionInfo msi = _sessionInfosBySessionIDs.get(id);
174+
if(null == msi)
175+
{
176+
throw new IllegalStateException("A session with ID " + id + " has not been created");
177+
}
178+
return msi;
179+
}
180+
173181
private void updateGcStatus()
174182
{
175183
SessionGCStatus gcStat = getSessionGCStatus();

sql12/core/src/net/sourceforge/squirrel_sql/client/gui/MemorySessionInfo.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class MemorySessionInfo implements Comparable<MemorySessionInfo>
2222
java.util.Date created = new Date();
2323
Date closed;
2424
Date finalized;
25+
int countFinalizedResultTabsWhileSessionOpen;
2526

2627
public String toString()
2728
{
@@ -32,24 +33,22 @@ public String toString()
3233
sessionId,
3334
aliasName,
3435
df.format(created),
36+
countFinalizedResultTabsWhileSessionOpen,
3537
null == closed ? "" : df.format(closed),
36-
null == finalized ? "" : df.format(finalized)
38+
null == finalized ? "" : df.format(finalized),
3739
};
3840

3941
if (null != closed && null == finalized)
4042
{
41-
// i18n[MemoryPanel.sessionInfo.toString1=Session: ID={0}, Alias={1}: created at {2}, closed at {3}]
42-
return s_stringMgr.getString("MemoryPanel.sessionInfo.toString1", params);
43+
return s_stringMgr.getString("MemoryPanel.sessionInfo.toString1.incl.res.tab", params);
4344
}
4445
else if (null == closed)
4546
{
46-
// i18n[MemoryPanel.sessionInfo.toString2=Session: ID={0}, Alias={1}: created at {2}]
47-
return s_stringMgr.getString("MemoryPanel.sessionInfo.toString2", params);
47+
return s_stringMgr.getString("MemoryPanel.sessionInfo.toString2.incl.res.tab", params);
4848
}
4949
else if (null != finalized)
5050
{
51-
// i18n[MemoryPanel.sessionInfo.toString3=Session: ID={0}, Alias={1}: created at {2}, closed at {3}, finalized at {4}]
52-
return s_stringMgr.getString("MemoryPanel.sessionInfo.toString3", params);
51+
return s_stringMgr.getString("MemoryPanel.sessionInfo.toString3.incl.res.tab", params);
5352
}
5453
else
5554
{

sql12/core/src/net/sourceforge/squirrel_sql/client/session/SessionManager.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,9 +571,27 @@ public void run()
571571
}
572572
}
573573
});
574+
}
574575

576+
public void fireResultTabOfOpenSessionFinalized(IIdentifier sessionIdentifier)
577+
{
578+
SwingUtilities.invokeLater(new Runnable()
579+
{
580+
public void run()
581+
{
582+
Object[] listeners = listenerList.getListenerList();
583+
for (int i = listeners.length - 2; i >= 0; i -= 2)
584+
{
585+
if (listeners[i] == ISessionListener.class)
586+
{
587+
((ISessionListener)listeners[i + 1]).resultTabOfOpenSessionFinalized(sessionIdentifier);
588+
}
589+
}
590+
}
591+
});
575592
}
576593

594+
577595
public void addAllowedSchemaChecker(IAllowedSchemaChecker allowedSchemaChecker)
578596
{
579597
_allowedSchemaCheckers.add(allowedSchemaChecker);

sql12/core/src/net/sourceforge/squirrel_sql/client/session/event/ISessionListener.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,6 @@ public interface ISessionListener extends EventListener
6666
void reconnectFailed(SessionEvent evt);
6767

6868
void sessionFinalized(IIdentifier sessionIdentifier);
69+
70+
void resultTabOfOpenSessionFinalized(IIdentifier sessionIdentifier);
6971
}

sql12/core/src/net/sourceforge/squirrel_sql/client/session/event/SessionAdapter.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,30 +36,25 @@ public class SessionAdapter implements ISessionListener
3636
*/
3737
public void sessionClosed(SessionEvent evt)
3838
{
39-
// Empty body.
4039
}
4140

4241
public void allSessionsClosed()
4342
{
44-
//Empty body
4543
}
4644

4745
/**
4846
* The session is about to close
4947
*/
5048
public void sessionClosing(SessionEvent evt)
5149
{
52-
//Empty Bbody
5350
}
5451

5552
public void sessionConnected(SessionEvent evt)
5653
{
57-
//Empty Body
5854
}
5955

6056
public void sessionActivated(SessionEvent evt)
6157
{
62-
//Empty Body
6358
}
6459

6560
public void connectionClosedForReconnect(SessionEvent evt)
@@ -77,4 +72,9 @@ public void reconnectFailed(SessionEvent evt)
7772
public void sessionFinalized(IIdentifier sessionIdentifier)
7873
{
7974
}
75+
76+
@Override
77+
public void resultTabOfOpenSessionFinalized(IIdentifier sessionIdentifier)
78+
{
79+
}
8080
}

sql12/core/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2424
*/
2525

26+
import net.sourceforge.squirrel_sql.client.Main;
2627
import net.sourceforge.squirrel_sql.client.gui.builders.UIFactory;
2728
import net.sourceforge.squirrel_sql.client.session.DataModelImplementationDetails;
2829
import net.sourceforge.squirrel_sql.client.session.EditableSqlCheck;
@@ -788,7 +789,9 @@ protected void finalize()
788789
{
789790
if(false == _session.isClosed())
790791
{
791-
s_log.info("Result tab finalized for open Session \"" + _session.getTitle() + "\" with id=" + _session.getIdentifier());
792+
//s_log.info("Result tab finalized for open Session \"" + _session.getTitle() + "\" with id=" + _session.getIdentifier());
793+
Main.getApplication().getSessionManager().fireResultTabOfOpenSessionFinalized(_session.getIdentifier());
794+
792795
}
793796
}
794797
}

0 commit comments

Comments
 (0)