Thread: Re: [Squirrel-sql-users] [Squirrel-sql-develop] Release planning
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Gerd W. <ger...@t-...> - 2008-12-25 19:28:50
|
Hi all, on our web page you can find some forecast information about the next SQuirreL version. See: http://squirrel-sql.sourceforge.net/squirrel30/SQuirreL30UILayout.html Merry Christmas to everyone Gerd Robert Manning wrote: > All, > > Gerd and I recently made some decisions about the next major release > of SQuirreL. > (This doesn't apply to 2.6.9 which is a minor release and may be > released soon). > We have been adding enhancements to the trunk which have only been available in > the snapshot builds for the entire year of 2008. The enhancements involve many > areas of the code and will give SQuirreL a new look as well as new > features. Also, > some of the UI changes leverage Java APIs that are only available in > Java6. There > are also enhanced JDBC APIs that will be used going forward that are also only > available in Java6. We dropped support for 1.4 on 12/31/2006 with the > 2.4 release and > moved to Java5 then. While dropping support for Java5 in this upcoming release > may not be well received by some users, we believe that is the best > way forward for > SQuirreL. Given that there are so many changes, rather than calling > the next release 2.7, > we decided it would be more appropriate to call the release 3.0. As > far as timing, we > are currently planning an end of January release date - although that > is not set in stone. > Let us know of any development or translation concerns on the > appropriate mailing > list as soon as you can. > > Rob > > ------------------------------------------------------------------------------ > _______________________________________________ > Squirrel-sql-develop mailing list > Squ...@li... > https://lists.sourceforge.net/lists/listinfo/squirrel-sql-develop > |
From: Matthew D. <mda...@ja...> - 2008-12-29 22:25:56
|
Hi all, I was inspired by Rob and Gerd's last email update to install the latest snapshot. But I don't seem to get the plugins. Is this a known issue? Or user error? During the install I choose to install some plugins. It appears to work. In the directory where SQquirreL is installed I see the plugins subdirectory, and it has the appropriate plugins. But from the GUI the Plugins menu shows me no plugins. The window "SQuirreL SQL Client Plugin Summary" shows the correct plugins location... but it shows no plugins. My first guess was that my old preferences from v2.6 somehow were causing trouble. But I deleted those and reinstalled. I get the same results. I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's nothing fishy in squirrel-sql.log. Any thoughts? Is it just one of the perils of using a snapshot build? -Matt |
From: Robert M. <rob...@gm...> - 2008-12-29 23:08:09
|
Hi, I just copied the installer to a VM with WinXP (home) and installed with 4 plugins. They appear in the plugin summary fine for me. Old preferences should have no impact on new installations. We strive to make migration from older releases easy with regard to preferences. Did you install into a fresh directory? Rob On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman <mda...@ja...> wrote: > Hi all, > > I was inspired by Rob and Gerd's last email update to install the latest > snapshot. But I don't seem to get the plugins. Is this a known issue? Or > user error? > > During the install I choose to install some plugins. It appears to work. > In the directory where SQquirreL is installed I see the plugins > subdirectory, and it has the appropriate plugins. But from the GUI the > Plugins menu shows me no plugins. The window "SQuirreL SQL Client Plugin > Summary" shows the correct plugins location... but it shows no plugins. > > My first guess was that my old preferences from v2.6 somehow were causing > trouble. But I deleted those and reinstalled. I get the same results. > > I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's nothing > fishy in squirrel-sql.log. > > Any thoughts? Is it just one of the perils of using a snapshot build? > > -Matt > > ------------------------------------------------------------------------------ > _______________________________________________ > Squirrel-sql-users mailing list > Squ...@li... > https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users > |
From: Matthew D. <mda...@ja...> - 2008-12-30 18:00:24
|
Rob, thanks for the confirmation that the old preferences should have no impact on this issue. It helped. Sorry for the lengthy email. Read on for a description of the problem and my solution. Next I tried Help -> Software Update. It correctly connects and tells me that I have the most recent version. Then I see the Update Summary with all the plugins and i18n artifacts. It indicates that none are installed. I set the Action to INSTALL for one of them and Apply Changes. It successfully downloads the plugin and indicates that "Requested updates will be installed when SQuirreL is restarted". I close and then restart SQuirreL. Now I get a JVM error: Could not find the main class. Program will exit. But after that goes away, then SQuirreL starts. As before it works fine, but I have no plugins. Today I had a bit more time to investigate. I see that the first error comes after this line: "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program Files\SQuirreL SQL Client 3.0 snapshot\update\downloads\core\squirrel-sql.jar" -Dlog4j.defaultInitOverride=true -Dprompt=true net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp plication It's odd that squirrel-sql.jar is in the classpath twice, but it's not really a problem. After running with java instead of javaw I see that it fails to find some classes: Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext So it seems that there is a bug in squirrel-sql.bat. In squirrel-sql.sh I see that it adds the jars from the lib directory to the classpath. But squirrel-sql.bat mistakenly adds the jars from update/downloads/core (again). I modified squirrel-sql.bat to pick up the correct classpath. Now when re-launching SQuirreL it prompts indicating "Updates are ready to be installed. Install them now?" I choose Yes and it appears to work... But after SQuirreL launches I still have no plugins in the summary window. Last idea: I reinstall but this time I override the default installation path "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with no spaces. Everything works correctly!! I see the default plugins like codecompletion, etc. Well, not quite everything works. I still cannot install more plugins because of the bug in squirrel-sql.bat listed above. But after manually fixing the bat file then everything really works. In summary there are 2 problems. 1) This snapshot does not quite work in the default location with spaces in the path. 2) squirrel-sql.bat has a bug setting up the classpath for the update feature. Here is the fix for #2: Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" Fixed Lines 19 & 20 in squirrel-sql.bat: dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" -Matt -----Original Message----- From: Robert Manning [mailto:rob...@gm...] Sent: Monday, 29 December, 2008 15:08 To: Matthew Dahlman Cc: SQuirreL Users List Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 Hi, I just copied the installer to a VM with WinXP (home) and installed with 4 plugins. They appear in the plugin summary fine for me. Old preferences should have no impact on new installations. We strive to make migration from older releases easy with regard to preferences. Did you install into a fresh directory? Rob On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman <mda...@ja...> wrote: > Hi all, > > I was inspired by Rob and Gerd's last email update to install the > latest snapshot. But I don't seem to get the plugins. Is this a known > issue? Or user error? > > During the install I choose to install some plugins. It appears to work. > In the directory where SQquirreL is installed I see the plugins > subdirectory, and it has the appropriate plugins. But from the GUI the > Plugins menu shows me no plugins. The window "SQuirreL SQL Client > Plugin Summary" shows the correct plugins location... but it shows no plugins. > > My first guess was that my old preferences from v2.6 somehow were > causing trouble. But I deleted those and reinstalled. I get the same results. > > I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's > nothing fishy in squirrel-sql.log. > > Any thoughts? Is it just one of the perils of using a snapshot build? > > -Matt > > ---------------------------------------------------------------------- > -------- _______________________________________________ > Squirrel-sql-users mailing list > Squ...@li... > https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users > |
From: Robert M. <rob...@gm...> - 2008-12-30 20:14:56
|
Matt, I'll take a look when I have some more time. The key issue that I see with your proposed change is that it uses the old (rather previously installed) jars instead of the newly downloaded ones. The downloaded ones contain updates that should be preferred over the installed jars (since we might be fixing a bug in the update application itself.) Thanks for the tip about spaces in the path. I tend not to use them, so perhaps that will help me track down the problem. Rob On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman <mda...@ja...> wrote: > Rob, thanks for the confirmation that the old preferences should have no > impact on this issue. It helped. > > Sorry for the lengthy email. Read on for a description of the problem and > my solution. > > Next I tried Help -> Software Update. It correctly connects and tells me > that I have the most recent version. Then I see the Update Summary with > all the plugins and i18n artifacts. It indicates that none are installed. > > I set the Action to INSTALL for one of them and Apply Changes. It > successfully downloads the plugin and indicates that "Requested updates > will be installed when SQuirreL is restarted". > > I close and then restart SQuirreL. Now I get a JVM error: Could not find > the main class. Program will exit. But after that goes away, then SQuirreL > starts. As before it works fine, but I have no plugins. > > Today I had a bit more time to investigate. I see that the first error > comes after this line: > "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program > Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar" > -Dlog4j.defaultInitOverride=true -Dprompt=true > net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp > plication > > It's odd that squirrel-sql.jar is in the classpath twice, but it's not > really a problem. After running with java instead of javaw I see that it > fails to find some classes: > Exception in thread "main" java.lang.NoClassDefFoundError: > org/springframework/context/ApplicationContext > > So it seems that there is a bug in squirrel-sql.bat. In squirrel-sql.sh I > see that it adds the jars from the lib directory to the classpath. But > squirrel-sql.bat mistakenly adds the jars from update/downloads/core > (again). > > I modified squirrel-sql.bat to pick up the correct classpath. Now when > re-launching SQuirreL it prompts indicating "Updates are ready to be > installed. Install them now?" I choose Yes and it appears to work... > > But after SQuirreL launches I still have no plugins in the summary window. > > Last idea: > I reinstall but this time I override the default installation path > "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with no > spaces. > > Everything works correctly!! I see the default plugins like > codecompletion, etc. > > Well, not quite everything works. I still cannot install more plugins > because of the bug in squirrel-sql.bat listed above. But after manually > fixing the bat file then everything really works. > > In summary there are 2 problems. > 1) This snapshot does not quite work in the default location with spaces > in the path. > 2) squirrel-sql.bat has a bug setting up the classpath for the update > feature. > > Here is the fix for #2: > > Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: > dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" > "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" > > Fixed Lines 19 & 20 in squirrel-sql.bat: > dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" > > -Matt > > > -----Original Message----- > From: Robert Manning [mailto:rob...@gm...] > Sent: Monday, 29 December, 2008 15:08 > To: Matthew Dahlman > Cc: SQuirreL Users List > Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 > > Hi, > > I just copied the installer to a VM with WinXP (home) and installed with 4 > plugins. They appear in the plugin summary fine for me. Old preferences > should have no impact on new installations. We strive to make migration > from older releases easy with regard to preferences. > Did you install into a fresh > directory? > > Rob > > On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman <mda...@ja...> > wrote: >> Hi all, >> >> I was inspired by Rob and Gerd's last email update to install the >> latest snapshot. But I don't seem to get the plugins. Is this a known >> issue? Or user error? >> >> During the install I choose to install some plugins. It appears to work. >> In the directory where SQquirreL is installed I see the plugins >> subdirectory, and it has the appropriate plugins. But from the GUI the >> Plugins menu shows me no plugins. The window "SQuirreL SQL Client >> Plugin Summary" shows the correct plugins location... but it shows no > plugins. >> >> My first guess was that my old preferences from v2.6 somehow were >> causing trouble. But I deleted those and reinstalled. I get the same > results. >> >> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >> nothing fishy in squirrel-sql.log. >> >> Any thoughts? Is it just one of the perils of using a snapshot build? >> >> -Matt >> >> ---------------------------------------------------------------------- >> -------- _______________________________________________ >> Squirrel-sql-users mailing list >> Squ...@li... >> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >> > |
From: Robert M. <rob...@gm...> - 2008-12-31 02:14:01
|
Oh and one other thing; from the command-line : echo %JAVA_HOME% It's pointing to where 1.6 is installed, right ? Rob On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman <mda...@ja...> wrote: > Rob, thanks for the confirmation that the old preferences should have no > impact on this issue. It helped. > > Sorry for the lengthy email. Read on for a description of the problem and > my solution. > > Next I tried Help -> Software Update. It correctly connects and tells me > that I have the most recent version. Then I see the Update Summary with > all the plugins and i18n artifacts. It indicates that none are installed. > > I set the Action to INSTALL for one of them and Apply Changes. It > successfully downloads the plugin and indicates that "Requested updates > will be installed when SQuirreL is restarted". > > I close and then restart SQuirreL. Now I get a JVM error: Could not find > the main class. Program will exit. But after that goes away, then SQuirreL > starts. As before it works fine, but I have no plugins. > > Today I had a bit more time to investigate. I see that the first error > comes after this line: > "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program > Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar" > -Dlog4j.defaultInitOverride=true -Dprompt=true > net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp > plication > > It's odd that squirrel-sql.jar is in the classpath twice, but it's not > really a problem. After running with java instead of javaw I see that it > fails to find some classes: > Exception in thread "main" java.lang.NoClassDefFoundError: > org/springframework/context/ApplicationContext > > So it seems that there is a bug in squirrel-sql.bat. In squirrel-sql.sh I > see that it adds the jars from the lib directory to the classpath. But > squirrel-sql.bat mistakenly adds the jars from update/downloads/core > (again). > > I modified squirrel-sql.bat to pick up the correct classpath. Now when > re-launching SQuirreL it prompts indicating "Updates are ready to be > installed. Install them now?" I choose Yes and it appears to work... > > But after SQuirreL launches I still have no plugins in the summary window. > > Last idea: > I reinstall but this time I override the default installation path > "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with no > spaces. > > Everything works correctly!! I see the default plugins like > codecompletion, etc. > > Well, not quite everything works. I still cannot install more plugins > because of the bug in squirrel-sql.bat listed above. But after manually > fixing the bat file then everything really works. > > In summary there are 2 problems. > 1) This snapshot does not quite work in the default location with spaces > in the path. > 2) squirrel-sql.bat has a bug setting up the classpath for the update > feature. > > Here is the fix for #2: > > Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: > dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" > "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" > > Fixed Lines 19 & 20 in squirrel-sql.bat: > dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" > > -Matt > > > -----Original Message----- > From: Robert Manning [mailto:rob...@gm...] > Sent: Monday, 29 December, 2008 15:08 > To: Matthew Dahlman > Cc: SQuirreL Users List > Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 > > Hi, > > I just copied the installer to a VM with WinXP (home) and installed with 4 > plugins. They appear in the plugin summary fine for me. Old preferences > should have no impact on new installations. We strive to make migration > from older releases easy with regard to preferences. > Did you install into a fresh > directory? > > Rob > > On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman <mda...@ja...> > wrote: >> Hi all, >> >> I was inspired by Rob and Gerd's last email update to install the >> latest snapshot. But I don't seem to get the plugins. Is this a known >> issue? Or user error? >> >> During the install I choose to install some plugins. It appears to work. >> In the directory where SQquirreL is installed I see the plugins >> subdirectory, and it has the appropriate plugins. But from the GUI the >> Plugins menu shows me no plugins. The window "SQuirreL SQL Client >> Plugin Summary" shows the correct plugins location... but it shows no > plugins. >> >> My first guess was that my old preferences from v2.6 somehow were >> causing trouble. But I deleted those and reinstalled. I get the same > results. >> >> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >> nothing fishy in squirrel-sql.log. >> >> Any thoughts? Is it just one of the perils of using a snapshot build? >> >> -Matt >> >> ---------------------------------------------------------------------- >> -------- _______________________________________________ >> Squirrel-sql-users mailing list >> Squ...@li... >> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >> > |
From: Robert M. <rob...@gm...> - 2008-12-31 12:37:08
|
Matt, I had a little more time to re-examine the batch file. Let me explain what it is trying to do. First - and I found this out the hard way - Windows will not let an application overwrite a file that is in use. Period. Not even if that file happens to be in use by the application trying to overwrite it. All of the jars in the CLASSPATH of a running JVM are "in Use" as far as Windows is concerned. So, the script builds two classpath variables - UPDATE_CP and SQUIRREL_CP. UPDATE_CP is only built if the "%SQUIRREL_SQL_HOME%\update\changeList.xml" is present. This file should only ever be present if the update feature in SQuirreL successfully downloaded all of the updates (including core files) that are necessary for the Updater to run. Those update files are located under update/downloads/ and must be used as the classpath for the Updater and will overwrite the files that SQuirreL uses when it is launched, which are *not* used by the Updater. That is how the script gets around the problem of overwriting files in the current applications classpath - it never does. I'm a bit puzzled why you would have had a changeList.xml file, without first having downloaded all of the update files (giving the Spring classnotfound exception). Also, I'm pretty certain that the "Main class not found. Program will exit" is an old JRE issue. I recently added 1.6 to my Windows test machine, and from the command-line java -version yielded 1.6. However, I had an environment variable (JAVA_HOME) still pointing to Java5 - so I saw the same thing until I corrected that. Rob On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman <mda...@ja...> wrote: > Rob, thanks for the confirmation that the old preferences should have no > impact on this issue. It helped. > > Sorry for the lengthy email. Read on for a description of the problem and > my solution. > > Next I tried Help -> Software Update. It correctly connects and tells me > that I have the most recent version. Then I see the Update Summary with > all the plugins and i18n artifacts. It indicates that none are installed. > > I set the Action to INSTALL for one of them and Apply Changes. It > successfully downloads the plugin and indicates that "Requested updates > will be installed when SQuirreL is restarted". > > I close and then restart SQuirreL. Now I get a JVM error: Could not find > the main class. Program will exit. But after that goes away, then SQuirreL > starts. As before it works fine, but I have no plugins. > > Today I had a bit more time to investigate. I see that the first error > comes after this line: > "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program > Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar" > -Dlog4j.defaultInitOverride=true -Dprompt=true > net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp > plication > > It's odd that squirrel-sql.jar is in the classpath twice, but it's not > really a problem. After running with java instead of javaw I see that it > fails to find some classes: > Exception in thread "main" java.lang.NoClassDefFoundError: > org/springframework/context/ApplicationContext > > So it seems that there is a bug in squirrel-sql.bat. In squirrel-sql.sh I > see that it adds the jars from the lib directory to the classpath. But > squirrel-sql.bat mistakenly adds the jars from update/downloads/core > (again). > > I modified squirrel-sql.bat to pick up the correct classpath. Now when > re-launching SQuirreL it prompts indicating "Updates are ready to be > installed. Install them now?" I choose Yes and it appears to work... > > But after SQuirreL launches I still have no plugins in the summary window. > > Last idea: > I reinstall but this time I override the default installation path > "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with no > spaces. > > Everything works correctly!! I see the default plugins like > codecompletion, etc. > > Well, not quite everything works. I still cannot install more plugins > because of the bug in squirrel-sql.bat listed above. But after manually > fixing the bat file then everything really works. > > In summary there are 2 problems. > 1) This snapshot does not quite work in the default location with spaces > in the path. > 2) squirrel-sql.bat has a bug setting up the classpath for the update > feature. > > Here is the fix for #2: > > Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: > dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" > "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" > > Fixed Lines 19 & 20 in squirrel-sql.bat: > dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" > > -Matt > > > -----Original Message----- > From: Robert Manning [mailto:rob...@gm...] > Sent: Monday, 29 December, 2008 15:08 > To: Matthew Dahlman > Cc: SQuirreL Users List > Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 > > Hi, > > I just copied the installer to a VM with WinXP (home) and installed with 4 > plugins. They appear in the plugin summary fine for me. Old preferences > should have no impact on new installations. We strive to make migration > from older releases easy with regard to preferences. > Did you install into a fresh > directory? > > Rob > > On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman <mda...@ja...> > wrote: >> Hi all, >> >> I was inspired by Rob and Gerd's last email update to install the >> latest snapshot. But I don't seem to get the plugins. Is this a known >> issue? Or user error? >> >> During the install I choose to install some plugins. It appears to work. >> In the directory where SQquirreL is installed I see the plugins >> subdirectory, and it has the appropriate plugins. But from the GUI the >> Plugins menu shows me no plugins. The window "SQuirreL SQL Client >> Plugin Summary" shows the correct plugins location... but it shows no > plugins. >> >> My first guess was that my old preferences from v2.6 somehow were >> causing trouble. But I deleted those and reinstalled. I get the same > results. >> >> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >> nothing fishy in squirrel-sql.log. >> >> Any thoughts? Is it just one of the perils of using a snapshot build? >> >> -Matt >> >> ---------------------------------------------------------------------- >> -------- _______________________________________________ >> Squirrel-sql-users mailing list >> Squ...@li... >> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >> > |
From: Robert M. <rob...@gm...> - 2008-12-31 22:21:47
|
Matt, Just to let you know - I reproduced the problem. I spent the afternoon uninstalling and re-installing java6 in various locations and the defaults for both Java and SQuirreL (which is in Program Files) leads to this problem that you described. I'll look into it and get back to you. Rob On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman <mda...@ja...> wrote: > Rob, thanks for the confirmation that the old preferences should have no > impact on this issue. It helped. > > Sorry for the lengthy email. Read on for a description of the problem and > my solution. > > Next I tried Help -> Software Update. It correctly connects and tells me > that I have the most recent version. Then I see the Update Summary with > all the plugins and i18n artifacts. It indicates that none are installed. > > I set the Action to INSTALL for one of them and Apply Changes. It > successfully downloads the plugin and indicates that "Requested updates > will be installed when SQuirreL is restarted". > > I close and then restart SQuirreL. Now I get a JVM error: Could not find > the main class. Program will exit. But after that goes away, then SQuirreL > starts. As before it works fine, but I have no plugins. > > Today I had a bit more time to investigate. I see that the first error > comes after this line: > "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program > Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar" > -Dlog4j.defaultInitOverride=true -Dprompt=true > net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp > plication > > It's odd that squirrel-sql.jar is in the classpath twice, but it's not > really a problem. After running with java instead of javaw I see that it > fails to find some classes: > Exception in thread "main" java.lang.NoClassDefFoundError: > org/springframework/context/ApplicationContext > > So it seems that there is a bug in squirrel-sql.bat. In squirrel-sql.sh I > see that it adds the jars from the lib directory to the classpath. But > squirrel-sql.bat mistakenly adds the jars from update/downloads/core > (again). > > I modified squirrel-sql.bat to pick up the correct classpath. Now when > re-launching SQuirreL it prompts indicating "Updates are ready to be > installed. Install them now?" I choose Yes and it appears to work... > > But after SQuirreL launches I still have no plugins in the summary window. > > Last idea: > I reinstall but this time I override the default installation path > "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with no > spaces. > > Everything works correctly!! I see the default plugins like > codecompletion, etc. > > Well, not quite everything works. I still cannot install more plugins > because of the bug in squirrel-sql.bat listed above. But after manually > fixing the bat file then everything really works. > > In summary there are 2 problems. > 1) This snapshot does not quite work in the default location with spaces > in the path. > 2) squirrel-sql.bat has a bug setting up the classpath for the update > feature. > > Here is the fix for #2: > > Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: > dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" > "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" > > Fixed Lines 19 & 20 in squirrel-sql.bat: > dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" > > -Matt > > > -----Original Message----- > From: Robert Manning [mailto:rob...@gm...] > Sent: Monday, 29 December, 2008 15:08 > To: Matthew Dahlman > Cc: SQuirreL Users List > Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 > > Hi, > > I just copied the installer to a VM with WinXP (home) and installed with 4 > plugins. They appear in the plugin summary fine for me. Old preferences > should have no impact on new installations. We strive to make migration > from older releases easy with regard to preferences. > Did you install into a fresh > directory? > > Rob > > On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman <mda...@ja...> > wrote: >> Hi all, >> >> I was inspired by Rob and Gerd's last email update to install the >> latest snapshot. But I don't seem to get the plugins. Is this a known >> issue? Or user error? >> >> During the install I choose to install some plugins. It appears to work. >> In the directory where SQquirreL is installed I see the plugins >> subdirectory, and it has the appropriate plugins. But from the GUI the >> Plugins menu shows me no plugins. The window "SQuirreL SQL Client >> Plugin Summary" shows the correct plugins location... but it shows no > plugins. >> >> My first guess was that my old preferences from v2.6 somehow were >> causing trouble. But I deleted those and reinstalled. I get the same > results. >> >> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >> nothing fishy in squirrel-sql.log. >> >> Any thoughts? Is it just one of the perils of using a snapshot build? >> >> -Matt >> >> ---------------------------------------------------------------------- >> -------- _______________________________________________ >> Squirrel-sql-users mailing list >> Squ...@li... >> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >> > |
From: Robert M. <rob...@gm...> - 2009-01-01 07:10:36
|
This looks like a bug in our code to me. It's odd that it hasn't turned up before now (Perhaps Sun fixed a bug in Java 6 that this bug was relying on). It has to do with how we transform File objects into URIs, then back into File objects again. In case you are looking for it in the code, MyURLClassLoader at line 111 returns false for both exists() and canRead() for C:/Program%20Files/SQuirreL%20SQL%20Client/plugins/codecompletion.jar when I hit that breakpoint with the debugger. I wrote a small test that demonstrates in the fewest lines of code what we do with plugin jar files. The test driver takes a single argument which should be an absolute path to a file (don't forget quotes around paths with spaces). If you give it a path to a file without spaces, it reports that the file exists and a file built from it's URI also exists. However, if you give it a path to a file where spaces are in the path (for example, C:\Program Files), the file is reported to exist, but a file built from it's URI does not. You may notice that it encodes %20 for spaces to make a valid URI. My guess is the File API doesn't know how to deal with that. The bug ticket I created for this is here: https://sourceforge.net/tracker2/?func=detail&aid=2480365&group_id=28383&atid=393414 I would attach the test driver, except that the last time I tried that the mailing list rejected it - so it follows: Rob import java.io.File; import java.net.URL; public class FileUriTest { public static void main(String args[]) throws Exception { File f = new File(args[0]); if (f.exists()) { System.out.println("File ("+args[0]+") exists"); } else { System.out.println("File ("+args[0]+") does not exist"); } URL url = f.toURI().toURL(); File f2 = new File(url.getFile()); if (f2.exists()) { System.out.println("File from URI ("+url.getFile()+") exists"); } else { System.out.println("File from URI ("+url.getFile()+") does not exist"); } } } On Wed, Dec 31, 2008 at 5:21 PM, Robert Manning <rob...@gm...> wrote: > Matt, > > Just to let you know - I reproduced the problem. I spent the > afternoon uninstalling and > re-installing java6 in various locations and the defaults for both > Java and SQuirreL (which > is in Program Files) leads to this problem that you described. I'll > look into it and get back to you. > > Rob > > On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman > <mda...@ja...> wrote: >> Rob, thanks for the confirmation that the old preferences should have no >> impact on this issue. It helped. >> >> Sorry for the lengthy email. Read on for a description of the problem and >> my solution. >> >> Next I tried Help -> Software Update. It correctly connects and tells me >> that I have the most recent version. Then I see the Update Summary with >> all the plugins and i18n artifacts. It indicates that none are installed. >> >> I set the Action to INSTALL for one of them and Apply Changes. It >> successfully downloads the plugin and indicates that "Requested updates >> will be installed when SQuirreL is restarted". >> >> I close and then restart SQuirreL. Now I get a JVM error: Could not find >> the main class. Program will exit. But after that goes away, then SQuirreL >> starts. As before it works fine, but I have no plugins. >> >> Today I had a bit more time to investigate. I see that the first error >> comes after this line: >> "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 >> snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program >> Files\SQuirreL SQL Client 3.0 >> snapshot\update\downloads\core\squirrel-sql.jar" >> -Dlog4j.defaultInitOverride=true -Dprompt=true >> net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp >> plication >> >> It's odd that squirrel-sql.jar is in the classpath twice, but it's not >> really a problem. After running with java instead of javaw I see that it >> fails to find some classes: >> Exception in thread "main" java.lang.NoClassDefFoundError: >> org/springframework/context/ApplicationContext >> >> So it seems that there is a bug in squirrel-sql.bat. In squirrel-sql.sh I >> see that it adds the jars from the lib directory to the classpath. But >> squirrel-sql.bat mistakenly adds the jars from update/downloads/core >> (again). >> >> I modified squirrel-sql.bat to pick up the correct classpath. Now when >> re-launching SQuirreL it prompts indicating "Updates are ready to be >> installed. Install them now?" I choose Yes and it appears to work... >> >> But after SQuirreL launches I still have no plugins in the summary window. >> >> Last idea: >> I reinstall but this time I override the default installation path >> "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with no >> spaces. >> >> Everything works correctly!! I see the default plugins like >> codecompletion, etc. >> >> Well, not quite everything works. I still cannot install more plugins >> because of the bug in squirrel-sql.bat listed above. But after manually >> fixing the bat file then everything really works. >> >> In summary there are 2 problems. >> 1) This snapshot does not quite work in the default location with spaces >> in the path. >> 2) squirrel-sql.bat has a bug setting up the classpath for the update >> feature. >> >> Here is the fix for #2: >> >> Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: >> dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > >> %TEMP%\update-lib.tmp >> FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL >> "%SQUIRREL_SQL_HOME%\addpath.bat" >> "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" >> >> Fixed Lines 19 & 20 in squirrel-sql.bat: >> dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp >> FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL >> "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" >> >> -Matt >> >> >> -----Original Message----- >> From: Robert Manning [mailto:rob...@gm...] >> Sent: Monday, 29 December, 2008 15:08 >> To: Matthew Dahlman >> Cc: SQuirreL Users List >> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >> >> Hi, >> >> I just copied the installer to a VM with WinXP (home) and installed with 4 >> plugins. They appear in the plugin summary fine for me. Old preferences >> should have no impact on new installations. We strive to make migration >> from older releases easy with regard to preferences. >> Did you install into a fresh >> directory? >> >> Rob >> >> On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman <mda...@ja...> >> wrote: >>> Hi all, >>> >>> I was inspired by Rob and Gerd's last email update to install the >>> latest snapshot. But I don't seem to get the plugins. Is this a known >>> issue? Or user error? >>> >>> During the install I choose to install some plugins. It appears to work. >>> In the directory where SQquirreL is installed I see the plugins >>> subdirectory, and it has the appropriate plugins. But from the GUI the >>> Plugins menu shows me no plugins. The window "SQuirreL SQL Client >>> Plugin Summary" shows the correct plugins location... but it shows no >> plugins. >>> >>> My first guess was that my old preferences from v2.6 somehow were >>> causing trouble. But I deleted those and reinstalled. I get the same >> results. >>> >>> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >>> nothing fishy in squirrel-sql.log. >>> >>> Any thoughts? Is it just one of the perils of using a snapshot build? >>> >>> -Matt >>> >>> ---------------------------------------------------------------------- >>> -------- _______________________________________________ >>> Squirrel-sql-users mailing list >>> Squ...@li... >>> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >>> >> > |
From: Matthew D. <mda...@ja...> - 2009-01-02 22:42:05
|
Rob, It sounds like you fully solved the spaces in the path issue. (I'll test soon.) I'm not sure if I understand your point about .bat file. squirrel-sql.sh has this: # Then add all library jars to the classpath. for a in $UNIX_STYLE_HOME/lib/*; do TMP_CP="$TMP_CP":"$a"; done ... UPDATE_CP=$TMP_CP Therefore it has squirrel-sql.jar (plus other downloaded jars) plus about 32 .jar files from lib in the classpath. But squirrel-sql.bat doesn't get any of these .jars in the CLASSPATH for the updater. It gets squirrel-sql.jar (plus other downloaded jars) plus squirrel-sql.jar a second time. Because of that it's missing lots of classes that it needs. The first time I launch SQuirreL there are no symptoms (since I don't have changeList.xml). But then I download a plugin successfully and restart SQuirreL. Then the updater fails to launch, but SQuirreL itself is OK. I've been pretty careful with JVM issues. JAVA_HOME is pointing to the correct java 1.6 JDK. -Matt -----Original Message----- From: Robert Manning [mailto:rob...@gm...] Sent: Wednesday, 31 December, 2008 4:37 To: Matthew Dahlman Cc: SQuirreL Users List Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 Matt, I had a little more time to re-examine the batch file. Let me explain what it is trying to do. First - and I found this out the hard way - Windows will not let an application overwrite a file that is in use. Period. Not even if that file happens to be in use by the application trying to overwrite it. All of the jars in the CLASSPATH of a running JVM are "in Use" as far as Windows is concerned. So, the script builds two classpath variables - UPDATE_CP and SQUIRREL_CP. UPDATE_CP is only built if the "%SQUIRREL_SQL_HOME%\update\changeList.xml" is present. This file should only ever be present if the update feature in SQuirreL successfully downloaded all of the updates (including core files) that are necessary for the Updater to run. Those update files are located under update/downloads/ and must be used as the classpath for the Updater and will overwrite the files that SQuirreL uses when it is launched, which are *not* used by the Updater. That is how the script gets around the problem of overwriting files in the current applications classpath - it never does. I'm a bit puzzled why you would have had a changeList.xml file, without first having downloaded all of the update files (giving the Spring classnotfound exception). Also, I'm pretty certain that the "Main class not found. Program will exit" is an old JRE issue. I recently added 1.6 to my Windows test machine, and from the command-line java -version yielded 1.6. However, I had an environment variable (JAVA_HOME) still pointing to Java5 - so I saw the same thing until I corrected that. Rob On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman <mda...@ja...> wrote: > Rob, thanks for the confirmation that the old preferences should have > no impact on this issue. It helped. > > Sorry for the lengthy email. Read on for a description of the problem > and my solution. > > Next I tried Help -> Software Update. It correctly connects and tells > me that I have the most recent version. Then I see the Update Summary > with all the plugins and i18n artifacts. It indicates that none are installed. > > I set the Action to INSTALL for one of them and Apply Changes. It > successfully downloads the plugin and indicates that "Requested > updates will be installed when SQuirreL is restarted". > > I close and then restart SQuirreL. Now I get a JVM error: Could not > find the main class. Program will exit. But after that goes away, then > SQuirreL starts. As before it works fine, but I have no plugins. > > Today I had a bit more time to investigate. I see that the first error > comes after this line: > "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program > Files\SQuirreL SQL Client 3.0 > snapshot\update\downloads\core\squirrel-sql.jar" > -Dlog4j.defaultInitOverride=true -Dprompt=true > net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpda > teAp > plication > > It's odd that squirrel-sql.jar is in the classpath twice, but it's not > really a problem. After running with java instead of javaw I see that > it fails to find some classes: > Exception in thread "main" java.lang.NoClassDefFoundError: > org/springframework/context/ApplicationContext > > So it seems that there is a bug in squirrel-sql.bat. In > squirrel-sql.sh I see that it adds the jars from the lib directory to > the classpath. But squirrel-sql.bat mistakenly adds the jars from > update/downloads/core (again). > > I modified squirrel-sql.bat to pick up the correct classpath. Now when > re-launching SQuirreL it prompts indicating "Updates are ready to be > installed. Install them now?" I choose Yes and it appears to work... > > But after SQuirreL launches I still have no plugins in the summary window. > > Last idea: > I reinstall but this time I override the default installation path > "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with > no spaces. > > Everything works correctly!! I see the default plugins like > codecompletion, etc. > > Well, not quite everything works. I still cannot install more plugins > because of the bug in squirrel-sql.bat listed above. But after > manually fixing the bat file then everything really works. > > In summary there are 2 problems. > 1) This snapshot does not quite work in the default location with > spaces in the path. > 2) squirrel-sql.bat has a bug setting up the classpath for the update > feature. > > Here is the fix for #2: > > Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: > dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > > %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" > "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" > > Fixed Lines 19 & 20 in squirrel-sql.bat: > dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp FOR /F > %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" > > -Matt > > > -----Original Message----- > From: Robert Manning [mailto:rob...@gm...] > Sent: Monday, 29 December, 2008 15:08 > To: Matthew Dahlman > Cc: SQuirreL Users List > Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 > > Hi, > > I just copied the installer to a VM with WinXP (home) and installed > with 4 plugins. They appear in the plugin summary fine for me. Old > preferences should have no impact on new installations. We strive to > make migration from older releases easy with regard to preferences. > Did you install into a fresh > directory? > > Rob > > On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman > <mda...@ja...> > wrote: >> Hi all, >> >> I was inspired by Rob and Gerd's last email update to install the >> latest snapshot. But I don't seem to get the plugins. Is this a known >> issue? Or user error? >> >> During the install I choose to install some plugins. It appears to work. >> In the directory where SQquirreL is installed I see the plugins >> subdirectory, and it has the appropriate plugins. But from the GUI >> the Plugins menu shows me no plugins. The window "SQuirreL SQL Client >> Plugin Summary" shows the correct plugins location... but it shows no > plugins. >> >> My first guess was that my old preferences from v2.6 somehow were >> causing trouble. But I deleted those and reinstalled. I get the same > results. >> >> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >> nothing fishy in squirrel-sql.log. >> >> Any thoughts? Is it just one of the perils of using a snapshot build? >> >> -Matt >> >> --------------------------------------------------------------------- >> - >> -------- _______________________________________________ >> Squirrel-sql-users mailing list >> Squ...@li... >> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >> > |
From: Robert M. <rob...@gm...> - 2009-01-03 13:56:31
|
Matt, Below is the section in squirrel-sql.bat for the updater. It is only run if the changeList.xml file is found, and that should only occur when downloads/** directories are fully populated with the entire set of jars for the new release. All updated core jars are found %SQUIRREL_SQL_HOME%\update\downloads\core\*.jar. It starts by setting TMP_CP to %SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar. Then it adds all jars in %SQUIRREL_SQL_HOME%\update\downloads\core\ (which presumably is where the second copy of squirrel-sql.jar appears in TMP_CP. It's ok since it is the same as the first copy). This section which builds the CLASSPATH and launches the updater is designed specifically to *prevent* any of the jars from the %SQUIRREL_SQL_HOME%\lib from being added to the updater's CLASSPATH. If you use any jar from SQuirreL's CLASSPATH in the updater's CLASSPATH, you will not be able to update those jars using the updater, rendering it broken. (only on Windows - it's not a problem for UNIX) if not exist "%SQUIRREL_SQL_HOME%\update\changeList.xml" goto launchsquirrel SET TMP_CP="%SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar" if not exist %TMP_CP% goto launchsquirrel dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" SET UPDATE_CP=%TMP_CP% SET UPDATE_PARMS=--log-config-file "%SQUIRREL_SQL_HOME%\update-log4j.properties" --squirrel-home "%SQUIRREL_SQL_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9 "%LOCAL_JAVA%w" -cp %UPDATE_CP% -Dlog4j.defaultInitOverride=true -Dprompt=true net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateApplication %UPDATE_PARAMS% Now, given that, the only way I can explain missing jars in the updater CLASSPATH is if the changeList.xml was generated (meaning the update feature inside of SQuirreL was used to download updates) , but not all of the downloaded jars were present during the next launch. Can you check your %SQUIRREL_SQL_HOME%\update\downloads\core\ directory to see if you have all of the jars necessary to launch the updater? It should have the same number of jars as %SQUIRREL_SQL_HOME%\lib and the additional squirrel-sql.jar. Rob On Fri, Jan 2, 2009 at 5:41 PM, Matthew Dahlman <mda...@ja...> wrote: > Rob, > > It sounds like you fully solved the spaces in the path issue. (I'll test > soon.) > > I'm not sure if I understand your point about .bat file. > > squirrel-sql.sh has this: > # Then add all library jars to the classpath. > for a in $UNIX_STYLE_HOME/lib/*; do > TMP_CP="$TMP_CP":"$a"; > done > ... > UPDATE_CP=$TMP_CP > > Therefore it has squirrel-sql.jar (plus other downloaded jars) plus about > 32 .jar files from lib in the classpath. > > But squirrel-sql.bat doesn't get any of these .jars in the CLASSPATH for > the updater. It gets squirrel-sql.jar (plus other downloaded jars) plus > squirrel-sql.jar a second time. Because of that it's missing lots of > classes that it needs. > > The first time I launch SQuirreL there are no symptoms (since I don't have > changeList.xml). But then I download a plugin successfully and restart > SQuirreL. Then the updater fails to launch, but SQuirreL itself is OK. > > I've been pretty careful with JVM issues. JAVA_HOME is pointing to the > correct java 1.6 JDK. > > -Matt > > -----Original Message----- > From: Robert Manning [mailto:rob...@gm...] > Sent: Wednesday, 31 December, 2008 4:37 > To: Matthew Dahlman > Cc: SQuirreL Users List > Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 > > Matt, > > I had a little more time to re-examine the batch file. Let me explain > what it is trying to do. First - and I found this out the hard way - > Windows will not let an application overwrite a file that is in use. > Period. Not even if that file happens to be in use by the application > trying to overwrite it. All of the jars in the CLASSPATH of a running JVM > are "in Use" as far as Windows is concerned. So, the script builds two > classpath variables - UPDATE_CP and SQUIRREL_CP. UPDATE_CP is only built > if the "%SQUIRREL_SQL_HOME%\update\changeList.xml" is present. This file > should only ever be present if the update feature in SQuirreL successfully > downloaded all of the updates (including core files) that are necessary > for the Updater to run. Those update files are located under > update/downloads/ and must be used as the classpath for the Updater and > will overwrite the files that SQuirreL uses when it is launched, which are > *not* used by the Updater. That is how the script gets around the problem > of overwriting files in the current applications classpath - it never > does. I'm a bit puzzled why you would have had a changeList.xml file, > without first having downloaded all of the update files (giving the Spring > classnotfound exception). Also, I'm pretty certain that the "Main class > not found. Program will exit" is an old JRE issue. I recently added > 1.6 to my Windows test machine, and from the command-line java -version > yielded 1.6. However, I had an environment variable (JAVA_HOME) still > pointing to Java5 - so I saw the same thing until I corrected that. > > Rob > > On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman <mda...@ja...> > wrote: >> Rob, thanks for the confirmation that the old preferences should have >> no impact on this issue. It helped. >> >> Sorry for the lengthy email. Read on for a description of the problem >> and my solution. >> >> Next I tried Help -> Software Update. It correctly connects and tells >> me that I have the most recent version. Then I see the Update Summary >> with all the plugins and i18n artifacts. It indicates that none are > installed. >> >> I set the Action to INSTALL for one of them and Apply Changes. It >> successfully downloads the plugin and indicates that "Requested >> updates will be installed when SQuirreL is restarted". >> >> I close and then restart SQuirreL. Now I get a JVM error: Could not >> find the main class. Program will exit. But after that goes away, then >> SQuirreL starts. As before it works fine, but I have no plugins. >> >> Today I had a bit more time to investigate. I see that the first error >> comes after this line: >> "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 >> snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program >> Files\SQuirreL SQL Client 3.0 >> snapshot\update\downloads\core\squirrel-sql.jar" >> -Dlog4j.defaultInitOverride=true -Dprompt=true >> net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpda >> teAp >> plication >> >> It's odd that squirrel-sql.jar is in the classpath twice, but it's not >> really a problem. After running with java instead of javaw I see that >> it fails to find some classes: >> Exception in thread "main" java.lang.NoClassDefFoundError: >> org/springframework/context/ApplicationContext >> >> So it seems that there is a bug in squirrel-sql.bat. In >> squirrel-sql.sh I see that it adds the jars from the lib directory to >> the classpath. But squirrel-sql.bat mistakenly adds the jars from >> update/downloads/core (again). >> >> I modified squirrel-sql.bat to pick up the correct classpath. Now when >> re-launching SQuirreL it prompts indicating "Updates are ready to be >> installed. Install them now?" I choose Yes and it appears to work... >> >> But after SQuirreL launches I still have no plugins in the summary > window. >> >> Last idea: >> I reinstall but this time I override the default installation path >> "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with >> no spaces. >> >> Everything works correctly!! I see the default plugins like >> codecompletion, etc. >> >> Well, not quite everything works. I still cannot install more plugins >> because of the bug in squirrel-sql.bat listed above. But after >> manually fixing the bat file then everything really works. >> >> In summary there are 2 problems. >> 1) This snapshot does not quite work in the default location with >> spaces in the path. >> 2) squirrel-sql.bat has a bug setting up the classpath for the update >> feature. >> >> Here is the fix for #2: >> >> Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: >> dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > >> %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL >> "%SQUIRREL_SQL_HOME%\addpath.bat" >> "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" >> >> Fixed Lines 19 & 20 in squirrel-sql.bat: >> dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp FOR /F >> %%I IN (%TEMP%\update-lib.tmp) DO CALL >> "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" >> >> -Matt >> >> >> -----Original Message----- >> From: Robert Manning [mailto:rob...@gm...] >> Sent: Monday, 29 December, 2008 15:08 >> To: Matthew Dahlman >> Cc: SQuirreL Users List >> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >> >> Hi, >> >> I just copied the installer to a VM with WinXP (home) and installed >> with 4 plugins. They appear in the plugin summary fine for me. Old >> preferences should have no impact on new installations. We strive to >> make migration from older releases easy with regard to preferences. >> Did you install into a fresh >> directory? >> >> Rob >> >> On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman >> <mda...@ja...> >> wrote: >>> Hi all, >>> >>> I was inspired by Rob and Gerd's last email update to install the >>> latest snapshot. But I don't seem to get the plugins. Is this a known >>> issue? Or user error? >>> >>> During the install I choose to install some plugins. It appears to > work. >>> In the directory where SQquirreL is installed I see the plugins >>> subdirectory, and it has the appropriate plugins. But from the GUI >>> the Plugins menu shows me no plugins. The window "SQuirreL SQL Client >>> Plugin Summary" shows the correct plugins location... but it shows no >> plugins. >>> >>> My first guess was that my old preferences from v2.6 somehow were >>> causing trouble. But I deleted those and reinstalled. I get the same >> results. >>> >>> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >>> nothing fishy in squirrel-sql.log. >>> >>> Any thoughts? Is it just one of the perils of using a snapshot build? >>> >>> -Matt >>> >>> --------------------------------------------------------------------- >>> - >>> -------- _______________________________________________ >>> Squirrel-sql-users mailing list >>> Squ...@li... >>> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >>> >> > |
From: Matthew D. <mda...@ja...> - 2009-01-06 00:53:15
|
Rob, My directory %SQUIRREL_SQL_HOME%\update\downloads\core contains only one file: squirrel-sql.jar It seems that I'm missing all jars. So for now I suppose a simple workaround will be to copy all of the jars into that directory. In my case changeList.xml is generated when I choose to install a plugin. I chose to install the mysql plugin and SQuirreL downloaded mysql.zip into the plugin directory. But it did not download a copy of all of the other SQuirreL jar files. Are you saying that it should have downloaded all of these jars when I chose to install a plugin? -Matt -----Original Message----- From: Robert Manning [mailto:rob...@gm...] Sent: Saturday, 03 January, 2009 5:56 To: Matthew Dahlman Cc: SQuirreL Users List Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 Matt, Below is the section in squirrel-sql.bat for the updater. It is only run if the changeList.xml file is found, and that should only occur when downloads/** directories are fully populated with the entire set of jars for the new release. All updated core jars are found %SQUIRREL_SQL_HOME%\update\downloads\core\*.jar. It starts by setting TMP_CP to %SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar. Then it adds all jars in %SQUIRREL_SQL_HOME%\update\downloads\core\ (which presumably is where the second copy of squirrel-sql.jar appears in TMP_CP. It's ok since it is the same as the first copy). This section which builds the CLASSPATH and launches the updater is designed specifically to *prevent* any of the jars from the %SQUIRREL_SQL_HOME%\lib from being added to the updater's CLASSPATH. If you use any jar from SQuirreL's CLASSPATH in the updater's CLASSPATH, you will not be able to update those jars using the updater, rendering it broken. (only on Windows - it's not a problem for UNIX) if not exist "%SQUIRREL_SQL_HOME%\update\changeList.xml" goto launchsquirrel SET TMP_CP="%SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar" if not exist %TMP_CP% goto launchsquirrel dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" SET UPDATE_CP=%TMP_CP% SET UPDATE_PARMS=--log-config-file "%SQUIRREL_SQL_HOME%\update-log4j.properties" --squirrel-home "%SQUIRREL_SQL_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9 "%LOCAL_JAVA%w" -cp %UPDATE_CP% -Dlog4j.defaultInitOverride=true -Dprompt=true net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp plication %UPDATE_PARAMS% Now, given that, the only way I can explain missing jars in the updater CLASSPATH is if the changeList.xml was generated (meaning the update feature inside of SQuirreL was used to download updates) , but not all of the downloaded jars were present during the next launch. Can you check your %SQUIRREL_SQL_HOME%\update\downloads\core\ directory to see if you have all of the jars necessary to launch the updater? It should have the same number of jars as %SQUIRREL_SQL_HOME%\lib and the additional squirrel-sql.jar. Rob On Fri, Jan 2, 2009 at 5:41 PM, Matthew Dahlman <mda...@ja...> wrote: > Rob, > > It sounds like you fully solved the spaces in the path issue. (I'll > test > soon.) > > I'm not sure if I understand your point about .bat file. > > squirrel-sql.sh has this: > # Then add all library jars to the classpath. > for a in $UNIX_STYLE_HOME/lib/*; do > TMP_CP="$TMP_CP":"$a"; > done > ... > UPDATE_CP=$TMP_CP > > Therefore it has squirrel-sql.jar (plus other downloaded jars) plus > about > 32 .jar files from lib in the classpath. > > But squirrel-sql.bat doesn't get any of these .jars in the CLASSPATH > for the updater. It gets squirrel-sql.jar (plus other downloaded jars) > plus squirrel-sql.jar a second time. Because of that it's missing lots > of classes that it needs. > > The first time I launch SQuirreL there are no symptoms (since I don't > have changeList.xml). But then I download a plugin successfully and > restart SQuirreL. Then the updater fails to launch, but SQuirreL itself is OK. > > I've been pretty careful with JVM issues. JAVA_HOME is pointing to the > correct java 1.6 JDK. > > -Matt > > -----Original Message----- > From: Robert Manning [mailto:rob...@gm...] > Sent: Wednesday, 31 December, 2008 4:37 > To: Matthew Dahlman > Cc: SQuirreL Users List > Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 > > Matt, > > I had a little more time to re-examine the batch file. Let me explain > what it is trying to do. First - and I found this out the hard way - > Windows will not let an application overwrite a file that is in use. > Period. Not even if that file happens to be in use by the application > trying to overwrite it. All of the jars in the CLASSPATH of a running > JVM are "in Use" as far as Windows is concerned. So, the script builds > two classpath variables - UPDATE_CP and SQUIRREL_CP. UPDATE_CP is only > built if the "%SQUIRREL_SQL_HOME%\update\changeList.xml" is present. > This file should only ever be present if the update feature in > SQuirreL successfully downloaded all of the updates (including core > files) that are necessary for the Updater to run. Those update files > are located under update/downloads/ and must be used as the classpath > for the Updater and will overwrite the files that SQuirreL uses when > it is launched, which are > *not* used by the Updater. That is how the script gets around the > problem of overwriting files in the current applications classpath - > it never does. I'm a bit puzzled why you would have had a > changeList.xml file, without first having downloaded all of the update > files (giving the Spring classnotfound exception). Also, I'm pretty > certain that the "Main class not found. Program will exit" is an old > JRE issue. I recently added > 1.6 to my Windows test machine, and from the command-line java > -version yielded 1.6. However, I had an environment variable > (JAVA_HOME) still pointing to Java5 - so I saw the same thing until I corrected that. > > Rob > > On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman > <mda...@ja...> > wrote: >> Rob, thanks for the confirmation that the old preferences should have >> no impact on this issue. It helped. >> >> Sorry for the lengthy email. Read on for a description of the problem >> and my solution. >> >> Next I tried Help -> Software Update. It correctly connects and tells >> me that I have the most recent version. Then I see the Update Summary >> with all the plugins and i18n artifacts. It indicates that none are > installed. >> >> I set the Action to INSTALL for one of them and Apply Changes. It >> successfully downloads the plugin and indicates that "Requested >> updates will be installed when SQuirreL is restarted". >> >> I close and then restart SQuirreL. Now I get a JVM error: Could not >> find the main class. Program will exit. But after that goes away, >> then SQuirreL starts. As before it works fine, but I have no plugins. >> >> Today I had a bit more time to investigate. I see that the first >> error comes after this line: >> "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 >> snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program >> Files\SQuirreL SQL Client 3.0 >> snapshot\update\downloads\core\squirrel-sql.jar" >> -Dlog4j.defaultInitOverride=true -Dprompt=true >> net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpd >> a >> teAp >> plication >> >> It's odd that squirrel-sql.jar is in the classpath twice, but it's >> not really a problem. After running with java instead of javaw I see >> that it fails to find some classes: >> Exception in thread "main" java.lang.NoClassDefFoundError: >> org/springframework/context/ApplicationContext >> >> So it seems that there is a bug in squirrel-sql.bat. In >> squirrel-sql.sh I see that it adds the jars from the lib directory to >> the classpath. But squirrel-sql.bat mistakenly adds the jars from >> update/downloads/core (again). >> >> I modified squirrel-sql.bat to pick up the correct classpath. Now >> when re-launching SQuirreL it prompts indicating "Updates are ready >> to be installed. Install them now?" I choose Yes and it appears to work... >> >> But after SQuirreL launches I still have no plugins in the summary > window. >> >> Last idea: >> I reinstall but this time I override the default installation path >> "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with >> no spaces. >> >> Everything works correctly!! I see the default plugins like >> codecompletion, etc. >> >> Well, not quite everything works. I still cannot install more plugins >> because of the bug in squirrel-sql.bat listed above. But after >> manually fixing the bat file then everything really works. >> >> In summary there are 2 problems. >> 1) This snapshot does not quite work in the default location with >> spaces in the path. >> 2) squirrel-sql.bat has a bug setting up the classpath for the update >> feature. >> >> Here is the fix for #2: >> >> Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: >> dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > >> %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL >> "%SQUIRREL_SQL_HOME%\addpath.bat" >> "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" >> >> Fixed Lines 19 & 20 in squirrel-sql.bat: >> dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp FOR /F >> %%I IN (%TEMP%\update-lib.tmp) DO CALL >> "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" >> >> -Matt >> >> >> -----Original Message----- >> From: Robert Manning [mailto:rob...@gm...] >> Sent: Monday, 29 December, 2008 15:08 >> To: Matthew Dahlman >> Cc: SQuirreL Users List >> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >> >> Hi, >> >> I just copied the installer to a VM with WinXP (home) and installed >> with 4 plugins. They appear in the plugin summary fine for me. Old >> preferences should have no impact on new installations. We strive to >> make migration from older releases easy with regard to preferences. >> Did you install into a fresh >> directory? >> >> Rob >> >> On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman >> <mda...@ja...> >> wrote: >>> Hi all, >>> >>> I was inspired by Rob and Gerd's last email update to install the >>> latest snapshot. But I don't seem to get the plugins. Is this a >>> known issue? Or user error? >>> >>> During the install I choose to install some plugins. It appears to > work. >>> In the directory where SQquirreL is installed I see the plugins >>> subdirectory, and it has the appropriate plugins. But from the GUI >>> the Plugins menu shows me no plugins. The window "SQuirreL SQL >>> Client Plugin Summary" shows the correct plugins location... but it >>> shows no >> plugins. >>> >>> My first guess was that my old preferences from v2.6 somehow were >>> causing trouble. But I deleted those and reinstalled. I get the same >> results. >>> >>> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >>> nothing fishy in squirrel-sql.log. >>> >>> Any thoughts? Is it just one of the perils of using a snapshot build? >>> >>> -Matt >>> >>> -------------------------------------------------------------------- >>> - >>> - >>> -------- _______________________________________________ >>> Squirrel-sql-users mailing list >>> Squ...@li... >>> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >>> >> > |
From: Robert M. <rob...@gm...> - 2009-01-06 02:03:12
|
Matt, Due to the restriction that Windows impose where in-use files may not be overwritten, the answer to your question is yes all of the core jar files must be in %SQUIRREL_SQL_HOME%\update\downloads\core so that they can be used for the classpath of the updater application. I thought that I had added that logic (to force downloading core jars) when I bumped into this restriction a while back. It could be that in this case - installing one plugin after initial installation - isn't properly handled. However, now that you mention it, re-downloading files that already exist in %SQUIRREL_HOME%\lib sounds inefficient. The installer could very easily copy them there during installation and that would save the initial download. I'll look into both issues. In your case, since you have a snapshot build, and since there have been new snapshots approximately every day (over the last week), I would suspect you no longer have the latest snapshot version. So, you could simply run SQuirreL and choose to update again - this should trigger a download of every core artifact and the problem would not occur the next time you startup (rather, you should get the prompt to install updates that you previously downloaded). Let me know how that works, and I'll verify the logic and update the installer. Rob On Mon, Jan 5, 2009 at 8:53 PM, Matthew Dahlman <mda...@ja...> wrote: > Rob, > > My directory %SQUIRREL_SQL_HOME%\update\downloads\core contains only one > file: > squirrel-sql.jar > > It seems that I'm missing all jars. So for now I suppose a simple > workaround will be to copy all of the jars into that directory. > > In my case changeList.xml is generated when I choose to install a plugin. > I chose to install the mysql plugin and SQuirreL downloaded mysql.zip into > the plugin directory. But it did not download a copy of all of the other > SQuirreL jar files. Are you saying that it should have downloaded all of > these jars when I chose to install a plugin? > > -Matt > > > -----Original Message----- > From: Robert Manning [mailto:rob...@gm...] > Sent: Saturday, 03 January, 2009 5:56 > To: Matthew Dahlman > Cc: SQuirreL Users List > Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 > > Matt, > > Below is the section in squirrel-sql.bat for the updater. It is only run > if the changeList.xml file is found, and that should only occur when > downloads/** directories are fully populated with the entire set of jars > for the new release. All updated core jars are found > %SQUIRREL_SQL_HOME%\update\downloads\core\*.jar. It starts by setting > TMP_CP to %SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar. > Then it adds all jars in %SQUIRREL_SQL_HOME%\update\downloads\core\ > (which presumably is where the second copy of squirrel-sql.jar appears in > TMP_CP. It's ok since it is the same as the first copy). This section > which builds the CLASSPATH and launches the updater is designed > specifically to *prevent* any of the jars from the %SQUIRREL_SQL_HOME%\lib > from being added to the updater's CLASSPATH. > If you use any jar from SQuirreL's CLASSPATH in the updater's CLASSPATH, > you will not be able to update those jars using the updater, rendering it > broken. (only on Windows - it's not a problem for UNIX) > > if not exist "%SQUIRREL_SQL_HOME%\update\changeList.xml" goto > launchsquirrel SET > TMP_CP="%SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar" > if not exist %TMP_CP% goto launchsquirrel dir /b > "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" > "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" > SET UPDATE_CP=%TMP_CP% > SET UPDATE_PARMS=--log-config-file > "%SQUIRREL_SQL_HOME%\update-log4j.properties" --squirrel-home > "%SQUIRREL_SQL_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9 "%LOCAL_JAVA%w" -cp > %UPDATE_CP% -Dlog4j.defaultInitOverride=true -Dprompt=true > net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp > plication > %UPDATE_PARAMS% > > Now, given that, the only way I can explain missing jars in the updater > CLASSPATH is if the changeList.xml was generated (meaning the update > feature inside of SQuirreL was used to download updates) , but not all of > the downloaded jars were present during the next launch. > Can you check your %SQUIRREL_SQL_HOME%\update\downloads\core\ > directory to see if you have all of the jars necessary to launch the > updater? It should have the same number of jars as > %SQUIRREL_SQL_HOME%\lib and the additional squirrel-sql.jar. > > Rob > > > On Fri, Jan 2, 2009 at 5:41 PM, Matthew Dahlman <mda...@ja...> > wrote: >> Rob, >> >> It sounds like you fully solved the spaces in the path issue. (I'll >> test >> soon.) >> >> I'm not sure if I understand your point about .bat file. >> >> squirrel-sql.sh has this: >> # Then add all library jars to the classpath. >> for a in $UNIX_STYLE_HOME/lib/*; do >> TMP_CP="$TMP_CP":"$a"; >> done >> ... >> UPDATE_CP=$TMP_CP >> >> Therefore it has squirrel-sql.jar (plus other downloaded jars) plus >> about >> 32 .jar files from lib in the classpath. >> >> But squirrel-sql.bat doesn't get any of these .jars in the CLASSPATH >> for the updater. It gets squirrel-sql.jar (plus other downloaded jars) >> plus squirrel-sql.jar a second time. Because of that it's missing lots >> of classes that it needs. >> >> The first time I launch SQuirreL there are no symptoms (since I don't >> have changeList.xml). But then I download a plugin successfully and >> restart SQuirreL. Then the updater fails to launch, but SQuirreL itself > is OK. >> >> I've been pretty careful with JVM issues. JAVA_HOME is pointing to the >> correct java 1.6 JDK. >> >> -Matt >> >> -----Original Message----- >> From: Robert Manning [mailto:rob...@gm...] >> Sent: Wednesday, 31 December, 2008 4:37 >> To: Matthew Dahlman >> Cc: SQuirreL Users List >> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >> >> Matt, >> >> I had a little more time to re-examine the batch file. Let me explain >> what it is trying to do. First - and I found this out the hard way - >> Windows will not let an application overwrite a file that is in use. >> Period. Not even if that file happens to be in use by the application >> trying to overwrite it. All of the jars in the CLASSPATH of a running >> JVM are "in Use" as far as Windows is concerned. So, the script builds >> two classpath variables - UPDATE_CP and SQUIRREL_CP. UPDATE_CP is only >> built if the "%SQUIRREL_SQL_HOME%\update\changeList.xml" is present. >> This file should only ever be present if the update feature in >> SQuirreL successfully downloaded all of the updates (including core >> files) that are necessary for the Updater to run. Those update files >> are located under update/downloads/ and must be used as the classpath >> for the Updater and will overwrite the files that SQuirreL uses when >> it is launched, which are >> *not* used by the Updater. That is how the script gets around the >> problem of overwriting files in the current applications classpath - >> it never does. I'm a bit puzzled why you would have had a >> changeList.xml file, without first having downloaded all of the update >> files (giving the Spring classnotfound exception). Also, I'm pretty >> certain that the "Main class not found. Program will exit" is an old >> JRE issue. I recently added >> 1.6 to my Windows test machine, and from the command-line java >> -version yielded 1.6. However, I had an environment variable >> (JAVA_HOME) still pointing to Java5 - so I saw the same thing until I > corrected that. >> >> Rob >> >> On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman >> <mda...@ja...> >> wrote: >>> Rob, thanks for the confirmation that the old preferences should have >>> no impact on this issue. It helped. >>> >>> Sorry for the lengthy email. Read on for a description of the problem >>> and my solution. >>> >>> Next I tried Help -> Software Update. It correctly connects and tells >>> me that I have the most recent version. Then I see the Update Summary >>> with all the plugins and i18n artifacts. It indicates that none are >> installed. >>> >>> I set the Action to INSTALL for one of them and Apply Changes. It >>> successfully downloads the plugin and indicates that "Requested >>> updates will be installed when SQuirreL is restarted". >>> >>> I close and then restart SQuirreL. Now I get a JVM error: Could not >>> find the main class. Program will exit. But after that goes away, >>> then SQuirreL starts. As before it works fine, but I have no plugins. >>> >>> Today I had a bit more time to investigate. I see that the first >>> error comes after this line: >>> "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 >>> snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program >>> Files\SQuirreL SQL Client 3.0 >>> snapshot\update\downloads\core\squirrel-sql.jar" >>> -Dlog4j.defaultInitOverride=true -Dprompt=true >>> net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpd >>> a >>> teAp >>> plication >>> >>> It's odd that squirrel-sql.jar is in the classpath twice, but it's >>> not really a problem. After running with java instead of javaw I see >>> that it fails to find some classes: >>> Exception in thread "main" java.lang.NoClassDefFoundError: >>> org/springframework/context/ApplicationContext >>> >>> So it seems that there is a bug in squirrel-sql.bat. In >>> squirrel-sql.sh I see that it adds the jars from the lib directory to >>> the classpath. But squirrel-sql.bat mistakenly adds the jars from >>> update/downloads/core (again). >>> >>> I modified squirrel-sql.bat to pick up the correct classpath. Now >>> when re-launching SQuirreL it prompts indicating "Updates are ready >>> to be installed. Install them now?" I choose Yes and it appears to > work... >>> >>> But after SQuirreL launches I still have no plugins in the summary >> window. >>> >>> Last idea: >>> I reinstall but this time I override the default installation path >>> "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with >>> no spaces. >>> >>> Everything works correctly!! I see the default plugins like >>> codecompletion, etc. >>> >>> Well, not quite everything works. I still cannot install more plugins >>> because of the bug in squirrel-sql.bat listed above. But after >>> manually fixing the bat file then everything really works. >>> >>> In summary there are 2 problems. >>> 1) This snapshot does not quite work in the default location with >>> spaces in the path. >>> 2) squirrel-sql.bat has a bug setting up the classpath for the update >>> feature. >>> >>> Here is the fix for #2: >>> >>> Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: >>> dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > >>> %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL >>> "%SQUIRREL_SQL_HOME%\addpath.bat" >>> "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" >>> >>> Fixed Lines 19 & 20 in squirrel-sql.bat: >>> dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp FOR /F >>> %%I IN (%TEMP%\update-lib.tmp) DO CALL >>> "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" >>> >>> -Matt >>> >>> >>> -----Original Message----- >>> From: Robert Manning [mailto:rob...@gm...] >>> Sent: Monday, 29 December, 2008 15:08 >>> To: Matthew Dahlman >>> Cc: SQuirreL Users List >>> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >>> >>> Hi, >>> >>> I just copied the installer to a VM with WinXP (home) and installed >>> with 4 plugins. They appear in the plugin summary fine for me. Old >>> preferences should have no impact on new installations. We strive to >>> make migration from older releases easy with regard to preferences. >>> Did you install into a fresh >>> directory? >>> >>> Rob >>> >>> On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman >>> <mda...@ja...> >>> wrote: >>>> Hi all, >>>> >>>> I was inspired by Rob and Gerd's last email update to install the >>>> latest snapshot. But I don't seem to get the plugins. Is this a >>>> known issue? Or user error? >>>> >>>> During the install I choose to install some plugins. It appears to >> work. >>>> In the directory where SQquirreL is installed I see the plugins >>>> subdirectory, and it has the appropriate plugins. But from the GUI >>>> the Plugins menu shows me no plugins. The window "SQuirreL SQL >>>> Client Plugin Summary" shows the correct plugins location... but it >>>> shows no >>> plugins. >>>> >>>> My first guess was that my old preferences from v2.6 somehow were >>>> causing trouble. But I deleted those and reinstalled. I get the same >>> results. >>>> >>>> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >>>> nothing fishy in squirrel-sql.log. >>>> >>>> Any thoughts? Is it just one of the perils of using a snapshot build? >>>> >>>> -Matt >>>> >>>> -------------------------------------------------------------------- >>>> - >>>> - >>>> -------- _______________________________________________ >>>> Squirrel-sql-users mailing list >>>> Squ...@li... >>>> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >>>> >>> >> > |
From: Robert M. <rob...@gm...> - 2009-01-06 12:08:26
|
Matt, I found that you are correct, after initial install, and before the update site contains new core files, any changes to plugins using the update feature will cause the updater to launch but fail since it doesn't have the required core jars. The work-around is to wait for a new release to be posted, or copy the files manually. I could address this by copying files to the downloads directory with the installer, but this would increase the footprint, and would be pointless to the user that isn't using the update feature before the next release is posted. This would also still be a problem if the user decides to "trim" the downloads in update folder at all. So, I'll add the logic to check for this case where the release doesn't change but an update is being requested. Thanks for bringing this to my attention ! Rob On Mon, Jan 5, 2009 at 8:53 PM, Matthew Dahlman <mda...@ja...> wrote: > Rob, > > My directory %SQUIRREL_SQL_HOME%\update\downloads\core contains only one > file: > squirrel-sql.jar > > It seems that I'm missing all jars. So for now I suppose a simple > workaround will be to copy all of the jars into that directory. > > In my case changeList.xml is generated when I choose to install a plugin. > I chose to install the mysql plugin and SQuirreL downloaded mysql.zip into > the plugin directory. But it did not download a copy of all of the other > SQuirreL jar files. Are you saying that it should have downloaded all of > these jars when I chose to install a plugin? > > -Matt > > > -----Original Message----- > From: Robert Manning [mailto:rob...@gm...] > Sent: Saturday, 03 January, 2009 5:56 > To: Matthew Dahlman > Cc: SQuirreL Users List > Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 > > Matt, > > Below is the section in squirrel-sql.bat for the updater. It is only run > if the changeList.xml file is found, and that should only occur when > downloads/** directories are fully populated with the entire set of jars > for the new release. All updated core jars are found > %SQUIRREL_SQL_HOME%\update\downloads\core\*.jar. It starts by setting > TMP_CP to %SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar. > Then it adds all jars in %SQUIRREL_SQL_HOME%\update\downloads\core\ > (which presumably is where the second copy of squirrel-sql.jar appears in > TMP_CP. It's ok since it is the same as the first copy). This section > which builds the CLASSPATH and launches the updater is designed > specifically to *prevent* any of the jars from the %SQUIRREL_SQL_HOME%\lib > from being added to the updater's CLASSPATH. > If you use any jar from SQuirreL's CLASSPATH in the updater's CLASSPATH, > you will not be able to update those jars using the updater, rendering it > broken. (only on Windows - it's not a problem for UNIX) > > if not exist "%SQUIRREL_SQL_HOME%\update\changeList.xml" goto > launchsquirrel SET > TMP_CP="%SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar" > if not exist %TMP_CP% goto launchsquirrel dir /b > "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > %TEMP%\update-lib.tmp > FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL > "%SQUIRREL_SQL_HOME%\addpath.bat" > "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" > SET UPDATE_CP=%TMP_CP% > SET UPDATE_PARMS=--log-config-file > "%SQUIRREL_SQL_HOME%\update-log4j.properties" --squirrel-home > "%SQUIRREL_SQL_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9 "%LOCAL_JAVA%w" -cp > %UPDATE_CP% -Dlog4j.defaultInitOverride=true -Dprompt=true > net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp > plication > %UPDATE_PARAMS% > > Now, given that, the only way I can explain missing jars in the updater > CLASSPATH is if the changeList.xml was generated (meaning the update > feature inside of SQuirreL was used to download updates) , but not all of > the downloaded jars were present during the next launch. > Can you check your %SQUIRREL_SQL_HOME%\update\downloads\core\ > directory to see if you have all of the jars necessary to launch the > updater? It should have the same number of jars as > %SQUIRREL_SQL_HOME%\lib and the additional squirrel-sql.jar. > > Rob > > > On Fri, Jan 2, 2009 at 5:41 PM, Matthew Dahlman <mda...@ja...> > wrote: >> Rob, >> >> It sounds like you fully solved the spaces in the path issue. (I'll >> test >> soon.) >> >> I'm not sure if I understand your point about .bat file. >> >> squirrel-sql.sh has this: >> # Then add all library jars to the classpath. >> for a in $UNIX_STYLE_HOME/lib/*; do >> TMP_CP="$TMP_CP":"$a"; >> done >> ... >> UPDATE_CP=$TMP_CP >> >> Therefore it has squirrel-sql.jar (plus other downloaded jars) plus >> about >> 32 .jar files from lib in the classpath. >> >> But squirrel-sql.bat doesn't get any of these .jars in the CLASSPATH >> for the updater. It gets squirrel-sql.jar (plus other downloaded jars) >> plus squirrel-sql.jar a second time. Because of that it's missing lots >> of classes that it needs. >> >> The first time I launch SQuirreL there are no symptoms (since I don't >> have changeList.xml). But then I download a plugin successfully and >> restart SQuirreL. Then the updater fails to launch, but SQuirreL itself > is OK. >> >> I've been pretty careful with JVM issues. JAVA_HOME is pointing to the >> correct java 1.6 JDK. >> >> -Matt >> >> -----Original Message----- >> From: Robert Manning [mailto:rob...@gm...] >> Sent: Wednesday, 31 December, 2008 4:37 >> To: Matthew Dahlman >> Cc: SQuirreL Users List >> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >> >> Matt, >> >> I had a little more time to re-examine the batch file. Let me explain >> what it is trying to do. First - and I found this out the hard way - >> Windows will not let an application overwrite a file that is in use. >> Period. Not even if that file happens to be in use by the application >> trying to overwrite it. All of the jars in the CLASSPATH of a running >> JVM are "in Use" as far as Windows is concerned. So, the script builds >> two classpath variables - UPDATE_CP and SQUIRREL_CP. UPDATE_CP is only >> built if the "%SQUIRREL_SQL_HOME%\update\changeList.xml" is present. >> This file should only ever be present if the update feature in >> SQuirreL successfully downloaded all of the updates (including core >> files) that are necessary for the Updater to run. Those update files >> are located under update/downloads/ and must be used as the classpath >> for the Updater and will overwrite the files that SQuirreL uses when >> it is launched, which are >> *not* used by the Updater. That is how the script gets around the >> problem of overwriting files in the current applications classpath - >> it never does. I'm a bit puzzled why you would have had a >> changeList.xml file, without first having downloaded all of the update >> files (giving the Spring classnotfound exception). Also, I'm pretty >> certain that the "Main class not found. Program will exit" is an old >> JRE issue. I recently added >> 1.6 to my Windows test machine, and from the command-line java >> -version yielded 1.6. However, I had an environment variable >> (JAVA_HOME) still pointing to Java5 - so I saw the same thing until I > corrected that. >> >> Rob >> >> On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman >> <mda...@ja...> >> wrote: >>> Rob, thanks for the confirmation that the old preferences should have >>> no impact on this issue. It helped. >>> >>> Sorry for the lengthy email. Read on for a description of the problem >>> and my solution. >>> >>> Next I tried Help -> Software Update. It correctly connects and tells >>> me that I have the most recent version. Then I see the Update Summary >>> with all the plugins and i18n artifacts. It indicates that none are >> installed. >>> >>> I set the Action to INSTALL for one of them and Apply Changes. It >>> successfully downloads the plugin and indicates that "Requested >>> updates will be installed when SQuirreL is restarted". >>> >>> I close and then restart SQuirreL. Now I get a JVM error: Could not >>> find the main class. Program will exit. But after that goes away, >>> then SQuirreL starts. As before it works fine, but I have no plugins. >>> >>> Today I had a bit more time to investigate. I see that the first >>> error comes after this line: >>> "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 >>> snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program >>> Files\SQuirreL SQL Client 3.0 >>> snapshot\update\downloads\core\squirrel-sql.jar" >>> -Dlog4j.defaultInitOverride=true -Dprompt=true >>> net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpd >>> a >>> teAp >>> plication >>> >>> It's odd that squirrel-sql.jar is in the classpath twice, but it's >>> not really a problem. After running with java instead of javaw I see >>> that it fails to find some classes: >>> Exception in thread "main" java.lang.NoClassDefFoundError: >>> org/springframework/context/ApplicationContext >>> >>> So it seems that there is a bug in squirrel-sql.bat. In >>> squirrel-sql.sh I see that it adds the jars from the lib directory to >>> the classpath. But squirrel-sql.bat mistakenly adds the jars from >>> update/downloads/core (again). >>> >>> I modified squirrel-sql.bat to pick up the correct classpath. Now >>> when re-launching SQuirreL it prompts indicating "Updates are ready >>> to be installed. Install them now?" I choose Yes and it appears to > work... >>> >>> But after SQuirreL launches I still have no plugins in the summary >> window. >>> >>> Last idea: >>> I reinstall but this time I override the default installation path >>> "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with >>> no spaces. >>> >>> Everything works correctly!! I see the default plugins like >>> codecompletion, etc. >>> >>> Well, not quite everything works. I still cannot install more plugins >>> because of the bug in squirrel-sql.bat listed above. But after >>> manually fixing the bat file then everything really works. >>> >>> In summary there are 2 problems. >>> 1) This snapshot does not quite work in the default location with >>> spaces in the path. >>> 2) squirrel-sql.bat has a bug setting up the classpath for the update >>> feature. >>> >>> Here is the fix for #2: >>> >>> Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: >>> dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > >>> %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL >>> "%SQUIRREL_SQL_HOME%\addpath.bat" >>> "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" >>> >>> Fixed Lines 19 & 20 in squirrel-sql.bat: >>> dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp FOR /F >>> %%I IN (%TEMP%\update-lib.tmp) DO CALL >>> "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" >>> >>> -Matt >>> >>> >>> -----Original Message----- >>> From: Robert Manning [mailto:rob...@gm...] >>> Sent: Monday, 29 December, 2008 15:08 >>> To: Matthew Dahlman >>> Cc: SQuirreL Users List >>> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >>> >>> Hi, >>> >>> I just copied the installer to a VM with WinXP (home) and installed >>> with 4 plugins. They appear in the plugin summary fine for me. Old >>> preferences should have no impact on new installations. We strive to >>> make migration from older releases easy with regard to preferences. >>> Did you install into a fresh >>> directory? >>> >>> Rob >>> >>> On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman >>> <mda...@ja...> >>> wrote: >>>> Hi all, >>>> >>>> I was inspired by Rob and Gerd's last email update to install the >>>> latest snapshot. But I don't seem to get the plugins. Is this a >>>> known issue? Or user error? >>>> >>>> During the install I choose to install some plugins. It appears to >> work. >>>> In the directory where SQquirreL is installed I see the plugins >>>> subdirectory, and it has the appropriate plugins. But from the GUI >>>> the Plugins menu shows me no plugins. The window "SQuirreL SQL >>>> Client Plugin Summary" shows the correct plugins location... but it >>>> shows no >>> plugins. >>>> >>>> My first guess was that my old preferences from v2.6 somehow were >>>> causing trouble. But I deleted those and reinstalled. I get the same >>> results. >>>> >>>> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >>>> nothing fishy in squirrel-sql.log. >>>> >>>> Any thoughts? Is it just one of the perils of using a snapshot build? >>>> >>>> -Matt >>>> >>>> -------------------------------------------------------------------- >>>> - >>>> - >>>> -------- _______________________________________________ >>>> Squirrel-sql-users mailing list >>>> Squ...@li... >>>> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >>>> >>> >> > |
From: Robert M. <rob...@gm...> - 2009-01-07 12:33:57
|
The problem was a flaw in the logic that copied the core files to downloads/core if the release was current and a change was made using the update feature. That has been fixed in snapshot Snapshot-20090107_1205 which is available here: https://sourceforge.net/project/showfiles.php?group_id=28383&package_id=158128&release_id=652025 Rob On Tue, Jan 6, 2009 at 6:46 AM, Robert Manning <rob...@gm...> wrote: > Matt, > > I found that you are correct, after initial install, and before the > update site contains new core files, any changes to plugins using the > update feature will cause the updater to launch but fail since it > doesn't have the required core jars. The work-around is to wait for a > new release to be posted, or copy the files manually. I could address > this by copying files to the downloads directory with the installer, > but this would increase the footprint, and would be pointless to the > user that isn't using the update feature before the next release is > posted. This would also still be a problem if the user decides to > "trim" the downloads in update folder at all. So, I'll add the logic > to check for this case where the release doesn't change but an update > is being requested. Thanks for bringing this to my attention ! > > Rob > > On Mon, Jan 5, 2009 at 8:53 PM, Matthew Dahlman <mda...@ja...> wrote: >> Rob, >> >> My directory %SQUIRREL_SQL_HOME%\update\downloads\core contains only one >> file: >> squirrel-sql.jar >> >> It seems that I'm missing all jars. So for now I suppose a simple >> workaround will be to copy all of the jars into that directory. >> >> In my case changeList.xml is generated when I choose to install a plugin. >> I chose to install the mysql plugin and SQuirreL downloaded mysql.zip into >> the plugin directory. But it did not download a copy of all of the other >> SQuirreL jar files. Are you saying that it should have downloaded all of >> these jars when I chose to install a plugin? >> >> -Matt >> >> >> -----Original Message----- >> From: Robert Manning [mailto:rob...@gm...] >> Sent: Saturday, 03 January, 2009 5:56 >> To: Matthew Dahlman >> Cc: SQuirreL Users List >> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >> >> Matt, >> >> Below is the section in squirrel-sql.bat for the updater. It is only run >> if the changeList.xml file is found, and that should only occur when >> downloads/** directories are fully populated with the entire set of jars >> for the new release. All updated core jars are found >> %SQUIRREL_SQL_HOME%\update\downloads\core\*.jar. It starts by setting >> TMP_CP to %SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar. >> Then it adds all jars in %SQUIRREL_SQL_HOME%\update\downloads\core\ >> (which presumably is where the second copy of squirrel-sql.jar appears in >> TMP_CP. It's ok since it is the same as the first copy). This section >> which builds the CLASSPATH and launches the updater is designed >> specifically to *prevent* any of the jars from the %SQUIRREL_SQL_HOME%\lib >> from being added to the updater's CLASSPATH. >> If you use any jar from SQuirreL's CLASSPATH in the updater's CLASSPATH, >> you will not be able to update those jars using the updater, rendering it >> broken. (only on Windows - it's not a problem for UNIX) >> >> if not exist "%SQUIRREL_SQL_HOME%\update\changeList.xml" goto >> launchsquirrel SET >> TMP_CP="%SQUIRREL_SQL_HOME%\update\downloads\core\squirrel-sql.jar" >> if not exist %TMP_CP% goto launchsquirrel dir /b >> "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > %TEMP%\update-lib.tmp >> FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL >> "%SQUIRREL_SQL_HOME%\addpath.bat" >> "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" >> SET UPDATE_CP=%TMP_CP% >> SET UPDATE_PARMS=--log-config-file >> "%SQUIRREL_SQL_HOME%\update-log4j.properties" --squirrel-home >> "%SQUIRREL_SQL_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9 "%LOCAL_JAVA%w" -cp >> %UPDATE_CP% -Dlog4j.defaultInitOverride=true -Dprompt=true >> net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpdateAp >> plication >> %UPDATE_PARAMS% >> >> Now, given that, the only way I can explain missing jars in the updater >> CLASSPATH is if the changeList.xml was generated (meaning the update >> feature inside of SQuirreL was used to download updates) , but not all of >> the downloaded jars were present during the next launch. >> Can you check your %SQUIRREL_SQL_HOME%\update\downloads\core\ >> directory to see if you have all of the jars necessary to launch the >> updater? It should have the same number of jars as >> %SQUIRREL_SQL_HOME%\lib and the additional squirrel-sql.jar. >> >> Rob >> >> >> On Fri, Jan 2, 2009 at 5:41 PM, Matthew Dahlman <mda...@ja...> >> wrote: >>> Rob, >>> >>> It sounds like you fully solved the spaces in the path issue. (I'll >>> test >>> soon.) >>> >>> I'm not sure if I understand your point about .bat file. >>> >>> squirrel-sql.sh has this: >>> # Then add all library jars to the classpath. >>> for a in $UNIX_STYLE_HOME/lib/*; do >>> TMP_CP="$TMP_CP":"$a"; >>> done >>> ... >>> UPDATE_CP=$TMP_CP >>> >>> Therefore it has squirrel-sql.jar (plus other downloaded jars) plus >>> about >>> 32 .jar files from lib in the classpath. >>> >>> But squirrel-sql.bat doesn't get any of these .jars in the CLASSPATH >>> for the updater. It gets squirrel-sql.jar (plus other downloaded jars) >>> plus squirrel-sql.jar a second time. Because of that it's missing lots >>> of classes that it needs. >>> >>> The first time I launch SQuirreL there are no symptoms (since I don't >>> have changeList.xml). But then I download a plugin successfully and >>> restart SQuirreL. Then the updater fails to launch, but SQuirreL itself >> is OK. >>> >>> I've been pretty careful with JVM issues. JAVA_HOME is pointing to the >>> correct java 1.6 JDK. >>> >>> -Matt >>> >>> -----Original Message----- >>> From: Robert Manning [mailto:rob...@gm...] >>> Sent: Wednesday, 31 December, 2008 4:37 >>> To: Matthew Dahlman >>> Cc: SQuirreL Users List >>> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >>> >>> Matt, >>> >>> I had a little more time to re-examine the batch file. Let me explain >>> what it is trying to do. First - and I found this out the hard way - >>> Windows will not let an application overwrite a file that is in use. >>> Period. Not even if that file happens to be in use by the application >>> trying to overwrite it. All of the jars in the CLASSPATH of a running >>> JVM are "in Use" as far as Windows is concerned. So, the script builds >>> two classpath variables - UPDATE_CP and SQUIRREL_CP. UPDATE_CP is only >>> built if the "%SQUIRREL_SQL_HOME%\update\changeList.xml" is present. >>> This file should only ever be present if the update feature in >>> SQuirreL successfully downloaded all of the updates (including core >>> files) that are necessary for the Updater to run. Those update files >>> are located under update/downloads/ and must be used as the classpath >>> for the Updater and will overwrite the files that SQuirreL uses when >>> it is launched, which are >>> *not* used by the Updater. That is how the script gets around the >>> problem of overwriting files in the current applications classpath - >>> it never does. I'm a bit puzzled why you would have had a >>> changeList.xml file, without first having downloaded all of the update >>> files (giving the Spring classnotfound exception). Also, I'm pretty >>> certain that the "Main class not found. Program will exit" is an old >>> JRE issue. I recently added >>> 1.6 to my Windows test machine, and from the command-line java >>> -version yielded 1.6. However, I had an environment variable >>> (JAVA_HOME) still pointing to Java5 - so I saw the same thing until I >> corrected that. >>> >>> Rob >>> >>> On Tue, Dec 30, 2008 at 1:00 PM, Matthew Dahlman >>> <mda...@ja...> >>> wrote: >>>> Rob, thanks for the confirmation that the old preferences should have >>>> no impact on this issue. It helped. >>>> >>>> Sorry for the lengthy email. Read on for a description of the problem >>>> and my solution. >>>> >>>> Next I tried Help -> Software Update. It correctly connects and tells >>>> me that I have the most recent version. Then I see the Update Summary >>>> with all the plugins and i18n artifacts. It indicates that none are >>> installed. >>>> >>>> I set the Action to INSTALL for one of them and Apply Changes. It >>>> successfully downloads the plugin and indicates that "Requested >>>> updates will be installed when SQuirreL is restarted". >>>> >>>> I close and then restart SQuirreL. Now I get a JVM error: Could not >>>> find the main class. Program will exit. But after that goes away, >>>> then SQuirreL starts. As before it works fine, but I have no plugins. >>>> >>>> Today I had a bit more time to investigate. I see that the first >>>> error comes after this line: >>>> "javaw" -cp "C:\Program Files\SQuirreL SQL Client 3.0 >>>> snapshot\update\downloads\core\squirrel-sql.jar";"C:\Program >>>> Files\SQuirreL SQL Client 3.0 >>>> snapshot\update\downloads\core\squirrel-sql.jar" >>>> -Dlog4j.defaultInitOverride=true -Dprompt=true >>>> net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchUpd >>>> a >>>> teAp >>>> plication >>>> >>>> It's odd that squirrel-sql.jar is in the classpath twice, but it's >>>> not really a problem. After running with java instead of javaw I see >>>> that it fails to find some classes: >>>> Exception in thread "main" java.lang.NoClassDefFoundError: >>>> org/springframework/context/ApplicationContext >>>> >>>> So it seems that there is a bug in squirrel-sql.bat. In >>>> squirrel-sql.sh I see that it adds the jars from the lib directory to >>>> the classpath. But squirrel-sql.bat mistakenly adds the jars from >>>> update/downloads/core (again). >>>> >>>> I modified squirrel-sql.bat to pick up the correct classpath. Now >>>> when re-launching SQuirreL it prompts indicating "Updates are ready >>>> to be installed. Install them now?" I choose Yes and it appears to >> work... >>>> >>>> But after SQuirreL launches I still have no plugins in the summary >>> window. >>>> >>>> Last idea: >>>> I reinstall but this time I override the default installation path >>>> "C:\Program Files\SQuirreL SQL Client". Instead I choose a path with >>>> no spaces. >>>> >>>> Everything works correctly!! I see the default plugins like >>>> codecompletion, etc. >>>> >>>> Well, not quite everything works. I still cannot install more plugins >>>> because of the bug in squirrel-sql.bat listed above. But after >>>> manually fixing the bat file then everything really works. >>>> >>>> In summary there are 2 problems. >>>> 1) This snapshot does not quite work in the default location with >>>> spaces in the path. >>>> 2) squirrel-sql.bat has a bug setting up the classpath for the update >>>> feature. >>>> >>>> Here is the fix for #2: >>>> >>>> Lines 19 & 20 in squirrel-sql.bat in snapshot-20081229_1318: >>>> dir /b "%SQUIRREL_SQL_HOME%\update\downloads\core\*.*" > >>>> %TEMP%\update-lib.tmp FOR /F %%I IN (%TEMP%\update-lib.tmp) DO CALL >>>> "%SQUIRREL_SQL_HOME%\addpath.bat" >>>> "%SQUIRREL_SQL_HOME%\update\downloads\core\%%I" >>>> >>>> Fixed Lines 19 & 20 in squirrel-sql.bat: >>>> dir /b "%SQUIRREL_SQL_HOME%\lib\*.*" > %TEMP%\update-lib.tmp FOR /F >>>> %%I IN (%TEMP%\update-lib.tmp) DO CALL >>>> "%SQUIRREL_SQL_HOME%\addpath.bat" "%SQUIRREL_SQL_HOME%\lib\%%I" >>>> >>>> -Matt >>>> >>>> >>>> -----Original Message----- >>>> From: Robert Manning [mailto:rob...@gm...] >>>> Sent: Monday, 29 December, 2008 15:08 >>>> To: Matthew Dahlman >>>> Cc: SQuirreL Users List >>>> Subject: Re: [Squirrel-sql-users] Plugins in snapshot-20081229_1318 >>>> >>>> Hi, >>>> >>>> I just copied the installer to a VM with WinXP (home) and installed >>>> with 4 plugins. They appear in the plugin summary fine for me. Old >>>> preferences should have no impact on new installations. We strive to >>>> make migration from older releases easy with regard to preferences. >>>> Did you install into a fresh >>>> directory? >>>> >>>> Rob >>>> >>>> On Mon, Dec 29, 2008 at 4:26 PM, Matthew Dahlman >>>> <mda...@ja...> >>>> wrote: >>>>> Hi all, >>>>> >>>>> I was inspired by Rob and Gerd's last email update to install the >>>>> latest snapshot. But I don't seem to get the plugins. Is this a >>>>> known issue? Or user error? >>>>> >>>>> During the install I choose to install some plugins. It appears to >>> work. >>>>> In the directory where SQquirreL is installed I see the plugins >>>>> subdirectory, and it has the appropriate plugins. But from the GUI >>>>> the Plugins menu shows me no plugins. The window "SQuirreL SQL >>>>> Client Plugin Summary" shows the correct plugins location... but it >>>>> shows no >>>> plugins. >>>>> >>>>> My first guess was that my old preferences from v2.6 somehow were >>>>> causing trouble. But I deleted those and reinstalled. I get the same >>>> results. >>>>> >>>>> I'm using java.runtime.version 1.6.0_01-b06 on Windows XP. There's >>>>> nothing fishy in squirrel-sql.log. >>>>> >>>>> Any thoughts? Is it just one of the perils of using a snapshot build? >>>>> >>>>> -Matt >>>>> >>>>> -------------------------------------------------------------------- >>>>> - >>>>> - >>>>> -------- _______________________________________________ >>>>> Squirrel-sql-users mailing list >>>>> Squ...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/squirrel-sql-users >>>>> >>>> >>> >> > |